Liechi

那净土的产品在我看来更像是 R 语言的整容

这个说得好极了。重写核基因组我觉得还没到那一步。R Markdown 是外向型的开疆拓土,tidyverse 是内向型的整风肃清。

    Liechi dapengde 三年前我参加 RStudio 大会时,有人在会场跟我说过类似的话,他说 R Markdown 是一种新的工作流程,不干涉语言本身(代码段内你想怎么写代码都无所谓),而 Tidyverse 几乎是一种新语言。

    哈神打个喷嚏,整个 R 社区就会感冒。我也许还有力量扛得住,换别的开发者,这种情况下真的是只能被秒杀了。开源社区有竞争确实是好事,问题就是竞争双方权力和威信极为不相称时,竞争可能会很不公平。

      yihui 确实如此,然而对这种势头,除了顺其自然,梦想着霸权自省之外,还能有什么办法。这种事史上并不少见。

      净土宗还不如另立门户,彻底放飞自我,摆脱 R 社区的束缚,比如就叫做 Q 语言好了。

      Cloud2016
      RStudio 的营利模式跟 Matlab, SPSS 等不一样。这后两家是卖咖啡冷饮的,而 RStudio 是咖啡免费(RStuido,R 和 R 包们),但进屋坐着喝需要收钱(提供服务器)。所以有多少人用 RStudio 旗下的包无所谓,激活 R 开发社区,扩大用户群体才符合他们的利益---社区越强大,R 用户越多,服务器的潜在使用者就越多。有明星产品当然好,但非自家产的明星产品也不和 RStudio 产生利益冲突,因为这些都是咖啡,反正是免费的。所以我很纳闷为什么 RStudio 不帮忙宣传下 data.table 等非自家产的神器,将这些好东西都纳入培训班,扩大 R 的影响力,而不是光扩大净土的影响力。

      大力支持开源,增加各种咖啡冷饮数量才符合 RStudio 的“商业逻辑”,他们做得不错,但还不够好

        Liechi 谢谢推荐好文。去年我在帖子里写:

        网上到处都是对 tidyverse 一片喝彩,几乎听不到任何负面的声音,这个现象我觉得很奇怪。

        现在听到的越来越多了。

        我对 tidyverse 没什么敌意,只要它不会将 data.frame 和 data.table 类型的数据对象强制转化成 tibble 类型,并且只能使用 tidyverse 去后续操作数据的话,我还是可以忍的,总之,只要它不妨碍我继续使用 Base R 函数(包括 data.table)我都不会去攻击它!

          Liechi 此文把 R Markdown 也拖下水了:

          This blind faith extends to other RStudio products, such as RMarkdown. On Tidy follower on Twitter, for example, mistakenly thought that one cannot write reproducible code -- code that give the same result no matter when or where it is run -- unless one uses RMarkdown. This of course is quite false; RMarkdown is neither necessary nor sufficient for reproducibility. But the poster had apparently heard "Use RMarkdown for reproducibilty," and took it more literally than even RStudio meant it.

          老实说,除了 R Markdown 和 Jupyter Notebook,我真不知道别的工具。

            dapengde
            这个例子有点挑少而极端的情况说事儿的嫌疑。
            我用 lyx 作过数据记录,这个软件是基于 latex 的,支持织入 R 代码和结果,不过后来发现了 RStudio 和 Rmarkdown,迅速转移阵地。

              dapengde 我知道有些人对 Markdown 反对意见比较强烈,所以我在书中特意为这些”硬核“用户安排了两节:

              只要你愿意敲那些冗长的反斜杠命令以及尖括号标签,用这些文档格式也毫无问题,RStudio 都支持。

              Liechi 不知道现在还有多少人记得当年大明湖畔的 Sweave 呢?我的感觉是现在很大一部分 R Markdown 用户不知道 R Markdown 背后是 knitr 驱动的,而 knitr 的用户中可能更少人知道 knitr 和 Sweave 的渊源。然后更更少的人知道 LyX 里嵌入 R 代码的脚本是谢大贡献的,以及更更更少的人知道 LyX 的中文界面还是谢大翻译的。😂

              其实开源社区真心需要一些史官来把很多埋藏在软件背后的历史梳理一下。

                Ihavenothing 你要是不提,说实话连我自己都快忘了。史上两大默默无闻的良心编辑器:LyX 和 TeXmacs。原来我还帮忙翻译过 LyX 界面,突然深感骄傲,哈哈!这么说来,RGui 的界面我也掺和过,我曾经辣么厉害我家里人造嘛!

                我早该重新写一篇 LaTeX 与 Markdown 对比的博文了,得为 LaTeX 正正名。尽管我的本意不是要污蔑 LaTeX,但 Markdown 的盛行间接造成了污蔑 LaTeX 的结果。这也是开源界的开发者们名声太不对等的结果,我的影响力可能比 LaTeX 开发者大多了(瞧瞧这些惨淡的星标数和粉丝数)。

                dapengde reticulate 如果支持 bokeh 等动态图形库的话,就没 Jupyter 什么事了

                8 天 后

                yihui

                的确如此,一升级就出错,一出错看半天。所以今年下半年转战 data.table 了。

                我还没有系统学习过tidyverse,看来要考虑要不要先观望一下,先入data.table的坑呢😂

                  F-test

                  逻辑是这样:tidyverse目前可以看成还在不断开发,活跃度很高,代价就是代码容易变来变去。从目前坛友经验看,tidyverse的旧版本兼容性不好,个人怀疑是测试不充分。

                  结论就是: 看工作性质, 做做一次性/探索性的数据分析的话推荐用tidyverse,做R包开发,追求稳定性的话尽量避开tidyverse。

                    tctcab henrywangnl 感谢回复和建议,我的意思是想着自己还是学生,先学习一下看起来比较稳定的data.table,然后一边看看tidyverse的开发情况,最后当然希望的是“我全都要”😂

                    1 个月 后

                    今天我终于憋着一口气跟哈神开了个会,这件破事儿真是让我太费神了;为了开这个会,我还得仔细看他到底在 hugodown 里捣鼓了些什么东西。总之这件事的起因是 blogdown 不让点 Knit 按钮(这在文档中从一开始就强调了),然后 blogdown::serve_site() 有时候会误编译旧的 Rmd 文件(因为 git 设置文件修改时间不靠谱导致 blogdown 误以为有些 Rmd 文件需要重新编译)。这事儿我也是有苦衷的,主要是 RStudio 编辑器无法给我 Knit 按钮的自定义行为(bookdown 可以做到,因为 bookdown 的 Rmd 文件都在根目录下,而 blogdown 则在子目录下,而 RStudio 不支持对子目录下的 Rmd 文件自定义 Knit 按钮行为)。这个问题我从一开始就知道,而且也给编辑器团队反映过,但后来不了了之了。哈神上来不问来由,只顾赶紧解决自己的不适,便开始悄悄重造轮子。解决了 Knit 按钮问题之后,便一发不可收拾,把 blogdown 活生生重写了一大半,两个包里面重叠的函数一大堆,都是他重写的。等到我从另一个人那里得知 hugodown 的存在时,我发现已经拉不住这匹野马了,加上当时我正在疯赶进度以写完我手头的一本书,我也顾不上他。

                    当然,我表示强烈抗议之后,哈神是连连道歉了,但我有点怀疑这种一党独大、人挡杀人佛挡杀佛的势头是否能遏制住。毕竟程序员很容易变成控制狂,包括我在内。不知道我这顿拳头能否让他停下来反思一下。

                    不管他接下来怎么办,既然那边单方面宣战了,我也只能硬着头皮上了,把 hugodown 解决的问题在 blogdown 里重新解决一遍(很多问题并不难解决),免得那些这么快就倒戈的群众继续妖言惑众,搞得大家将来不知道到底该选哪个。

                    哦,这期间还有个大大出乎我意料的故事,刷新了我对官僚主义的认识。当我问起倒戈群众中的一位为什么选择 hugodown 时,她说因为他们公司的 IT 见了 blogdown 这个包名感觉它跟社交媒体有关,所以不许用它,而 hugodown 这个名字看起来很中性,似乎没有什么威胁,所以就放行了,于是公司里只能安装 hugodown 而不能装 blogdown。我特么真是无语问苍天。

                      yihui 我还以为会早开了,因为我发现 Github 上 hugodown 似乎停下来了