从用户角度看如果两个包应用场景一致或能覆盖自己需求,选择上只会感到糊涂,用户不会管技术层差异只会管能不能快速做个网站出来。R作为高级语言,用某个包就是实现某个功能,多数都不愿去理解底层依赖与调用关系,目的性很强,即使这两个包底层有差异,但如果实现结果甚至过程都差不多,就很容易造成用户分化。R这个用户基数,一个功能两个包都能实现且都持续更新,长时间累积差异很容易让看重稳定性与可重复性的用户一个都不用,然后转去另一种解决方案。
举个有点类似的例子,最近尝试重新运行一些 tidyverse
的代码,结果发现很多函数生命周期都终结了,很多包功能相似但用法又不一样,我理解这属于技术框架限制需要重新定义一些东西,但我不认为那些拿到代码的人同样理解,他们只会说 “哎呀,有提醒,有红字,是不是错了?你这换来换去不靠谱”,所以我就把 tidyverse
代码全都转成 base
版的了,然后又踩了个 4.0 把因子变量默认不转换的坑,然后加急把之前所有的读入函数里都加了对 stringsAsFactors
的控制。