dapengde
既然开始了,那就讨论一下。
其实我提出在 BT 擂台里加入 data.table
,和站队无关,而是因为想起了 @Cloud2016 转发的 Mattlof 的文章。对文中的观点我不全认同,但是认为 data.table
值得拥有更多人知道这点,我无保留地支持。既然 BT 擂台“不是要他们分输赢,而是通过比较来强化我们对他们的理解和消化”,我想,在这个精神的指导下,加入 data.table
于比较的行列是件两全其美的好事:一来丰富了比较的多样性,让各系统的优劣充分展现;二来可以让更多人的了解 data.table
这个有很多优点的包。我觉得在数据整理部分为 data.table
单开一栏并无不可,不必拘泥于比较的对称性,即同时考虑作图和数据整理。不过既然考虑了这点,我想按照 data.table
的设计精神,将其划入 Base R 是自然的。如同建立系统发生树,总有合理的算法将“物种”聚类的。这个提议的初衷和站队无关,如果我觉得 data.table
和极乐净土更接近,也会毫不犹豫地提议将其划入 T 方案。
定义是重要的,在你举的 Thanos 的例子里,就算默认生命这个概念是自明的,但“一半”如何处理?是一个细菌等价于一个人这样算一半,还是按照体积或重量算的一半?如果现在设计一个函数帮助 Thanos 完成任务,定义的不清楚或许会让程序设计出现问题。你提出了你对 B 和 T 方案的定义,我想这表明你也至少部分认同定义边界是重要的。
我认同你对 T 方案的定义(考虑到极乐净土在一直囊括新包,不断扩张,其实这定义对 B 方案来说是不公平的;另外,管道这样本来中性的函数为管道所独占也不合理,它本不是专为 T 设计的,不过这些暂且先忽略),但我觉得 B 方案的定义太狭窄。在极乐净土出来之前,大家对 Base R 的理解和现在是很不同的。我想现在大家对 Base R 的理解一般为 “非 Tidyverse”。不过如果按照非 T 来理解 B 方案的话,似乎使得 B 方案有了无限可能,这有点耍赖:)会引发很多的问题,比如 lattice
作图要不要放到 B 方案里?但是我觉得加上一个设计精神源于 Base R,且功能强大,值得推广的 data.table
到 B 方案里应该是合理且有益的事情。
哈哈,突然想起最近看《西游记》时的一个感慨,“或许在天上佛道已然一家亲了,只苦了“愚昧”的世人,还在下界痴痴地守着分别心。”不过想想,世上很多事情都是由分辨始,至融汇终的(取其优点,秉承“拿来主义”),这也算世事的一个常态吧。