前段时间更新RStudio的Daily Builds,意外发现了厂长弄了个新的玩意叫Quarto 。但是,我没太明白这个和R Markdown的本质区别,只能肤浅地感受到这个Quarto支持命令行,默认主题还比较好看。

本质区别是不是Quarto支持命令行,所以它可以完全脱离R?所以它是一个更为“通用”的R Markdown?

我的理解对么?

Quarto 应该是一个更为通用的科研出版系统。虽然RStudio实际可以支持Python啥的,但还是被认为R的IDE。反观jupyter notebook,现在也支持R,但也被认为是个 Python 的工作平台。这个Quarto应该是打算重启炉灶做个不依赖特定编程语言的科研用出版系统,用户可以通过qmd文档的yaml自由选择文档代码的语言来编译文档,避开语言之争并把markdown编译锁死到pandoc这一种对科研友好的方言上。

感觉上是为了科研用户特意打包的一个工具,现在支持knitr、jupyter跟obsevable,如果后续加上julia的支持,起码对大多数不开发只应用的科研用户来说够了。不过因为事实上还是个缝合怪与妥协的产物,现在一篇文档含多种编程语言混搭编译实际上还应该是knitr在做,理想状态应该是不用指定yaml,直接靠chunk来判断,但这就相当于给knitr加壳换皮了。

    为了一统天下,四海归一。乐见每个 *nix 发行版自带 Quarto。目前,对使用 RStudio 的 R Markdown 用户来说这个软件的边际价值几乎为 0。

    话说 Rmd 文档整成 qmd 文档,那么RStudio 会不会改成 QStudio?

      dapengde 不明觉厉。

      ecce::translate_full("quarto")
      #> $phonetic
      #> [1] "ˈkwɔːrtoʊ"
      #> 
      #> $explains
      #> [1] "n. 四开,四开本"                 "n. (Quarto)人名;(意)夸尔托"
      #> 
      #> $web
      #> [1] "夸尔托" "四开本" "四开"   "客房"

        Jupyter 是真的强,抱住 Python 这条粗腿,搭上深度学习这辆高速列车,目前已经成为各大厂的标配,数以千计的工程师在使用它。

        斗胆 AT @yihui 也许能回答楼主的问题 🤣

        chuxinyuan 所说,是为了一桶浆糊。RStudio、R Markdown 都带着 R 的胎记,哪怕它们也支持别的语言;就像若干年前 IPython 重新命名 Jupyter 一样,换汤不换药,主要还是为了去掉 Python 的胎记、便于宣传这是个缝合多种语言的大一统工具,但就算换了名字,这 Python 胎记也根深蒂固了(从多语言角度来说,窃以为 Jupyter 对 R 的支持力度是不如 R Markdown 对 Python 的支持力度的)。

        Quarto 的字面意思是四开本,取其印刷意。它主要基于 TypeScript 开发。如 yufree 所说,它是想一统科研用户江湖的,基本上会囊括所有 R Markdown 的功能(报告、幻灯片、网站、论文、书籍等);blogdown 可能是唯一的例外,不会被重新发明,因为用 TypeScript 重写 Hugo 不值当,但 Quarto 会有类似 distill 的网站功能。

        美工方面也是花了大力气的。比如幻灯片选了 reveal.js 作为底层框架,但对默认主题做了很大的调整,让它不要那么花哨。网页格式的输出都是基于 Bootstrap 定制的。

        以 Q 开头只是个巧合。最早是 S 语言,然后是 R 语言,再往前进一个字母就是 Q 了。

        简单说来,就当是结合过去八年的经验全盘重写 R Markdown 吧,底层不变,仍然是 Pandoc 和 knitr(以支持 R),但也收入了 Jupyter(以支持 Python)以及 Observable 作底层支持。

          从论坛上第一次看到我就用上了,因为我觉得他一些语法特别好记忆(当然后来我看到谢大 knitr 升级后也支持了),还有谢大说的,他美工确实很养眼。不过之前我遇到两次次升级后在有一部分内容原本没问题,编译 qmd 的 book最初没错误,升级后出错的问题,感觉他报错很不清晰,找错有点费事,我是基本一直用的最新的 Rstudio 测试版。reveal.js 我也在试用,我觉得默认的主题都挺不错的。

          yihui 好奇下,Quarto应该可以在没有R的情况下运行吧,所以knitr就只有在用R的时候才启用了?

            shrektan 简单研究了下,貌似真是个彻底的重写啊~ 就是为了脱离R语言才能运行的依赖吧

              shrektan 是的,如果文档里不用 R 代码,就不需要装 R。它打包了 Pandoc 来转换文档,R、Python 那些都是可选的,不用就可以不装。