撰文 James Somers
翻译 贾晓璇
编辑 魏潇
斯蒂芬·沃尔弗罗姆(Stephen Wolfram)发表第一篇论文的时候只有 15 岁。到大学毕业的时候,他已经发表了 10 篇论文。1980 年,年仅 20 岁的沃尔弗罗姆取得了加州理工学院(California Institute of Technology)的粒子物理学博士学位。他的法宝是计算机,而当时大多数科学家对使用计算机工作不屑一顾。他在一次谈话中提到,“我觉得,那时我是世界上最大的计算机代数用户了。用计算机很容易完成这些计算,而且生成的结果特别简洁。所以那会儿我很喜欢在我的物理论文里使用一些超级复杂的公式。”
随着研究的深入,他发现现有的软件渐渐地不再能满足他的需要了。为了完成一个编程项目,他得使用数个编程工具。“把这些软件串在一起花了我大把的时间,”他说。“我最后决定,自己建立一个能不断深入开发的系统来满足所有需求。”于是沃尔弗罗姆结束了学者生涯,转行创办了沃尔弗罗姆科研公司(Wolfram Research),致力为科学家提供良好的计算环境。这一消息登上了 1988 年 4 月 18 日的《福布斯》杂志头条:“物理学奇才进军商业圈。”
沃尔弗罗姆科研公司的旗舰产品—— Mathematica 软件的核心,是一个“笔记本式”的文档界面。在第一行输入命令,下一行就能看到结果。比如输入“1/6 + 2/5”,软件就会显示“17/30”。让它分解多项式,它就能给出多项式的因子。
Mathematica 不仅可以解决微积分、数论、几何和代数问题,还能计算化学物质如何反应、过滤基因组数据。软件的数据库包含了伦勃朗几乎所有的绘画,也可以给出一个他的调色板随时间变化的散点图。软件内置有轨道力学模型,可以告诉你如果一架 F/A-18 大黄蜂的引擎在 32,000 英尺的高度发生故障,飞机还能滑翔多远。Mathematica的笔记本式文档记录的不仅是用户的计算结果,还有他们与专家级数据库的整个“讨论”过程。沃尔弗罗姆把精心编写的 Mathematica 笔记本式文档称为“计算论文(computational essays)”。
Mathematica 笔记式文档的界面
笔记本式文档的界面设计出自西奥多·格雷(Theodore Gray)之手,他的灵感来源于一次使用旧版苹果代码编译器的经历。在大多数编程环境下,一次要么只能运行一行代码,要么就运行所有的代码。而苹果公司的编译器可以允许你高亮标出代码的任一部分,然后仅运行这一部分。格雷将相同的理念带入 Mathematica 软件中,史蒂夫·乔布斯(Steve Jobs)也为软件的优化提供了帮助。笔记式文档能将科学编程转化为一种交互式练习,个人命令可能会被调整、返回几十次或几百次。同时作者能通过一些小的计算实验,对数据有更深入的理解。
Mathematica 的笔记式文档不仅能够绘制图表、图片和漂亮的数学公式,输出时还能针对代码的变化进行动态响应。在 Mathematica 软件中你可以输入一段音频,对其进行复杂的数字滤波,然后使其可视化;点两下鼠标,调整几个参数,你就可以使声波变形,边玩边找出效果最好的滤波器。Mathematica 软件这种在一个简洁的界面中流畅地处理不同计算的功能,就像格雷所说,“是人类几百年智慧的结晶。”
沃尔弗罗姆在许多演讲、博客、视频和新闻发布中都反复强调,创办公司的目的不仅仅是为了能设计出一款好用的软件,他更希望能为科技企业带来一个转折点。17 世纪中叶,戈特弗里德·莱布尼茨(Gottfried Leibniz)发明了微分和积分(即我们熟悉的 ∫ 和 dx/dt),使得一切复杂的计算问题程序化。莱布尼茨认为,将微积分推广到其他领域,就能够创造出一种“思维的代数”。从那时起,逻辑学家和语言学家都在追寻这种表达明确、能将各类学科的复杂问题全部转化为一种计算形式的语言。
沃尔弗罗姆在他的职业生涯中,一直在努力将世界上的所有知识都吸收进 Mathematica 软件中,这样用户就可以通过公司的“计算知识引擎”Wolfram Alpha 获取这些信息。Wolfram Alpha 引擎也在为 Siri 和 Alexa 的许多智能问答功能提供支持。他在尝试着自己创立一种计算机和人类都能理解的通用语言(Interlingua)——一种囊括一切的代数学。
这是个野心勃勃的计划。20 世纪 90 年代,沃尔弗罗姆偶尔会在公开评论中打趣,说自己在创办公司的同时,也在默默致力于一个革命性科学项目的研究——耗时多年,有望建成。后来研究成果终于问世:一本像砖块一样又大又沉的书,上面写着一个跨时代风格的标题——《一种新科学》(A New Kind of Science)。
《一种新科学》呈现出的研究结果是一个由简单计算结果生成的复杂模式,即元胞自动机(cellular automata,一种时间、空间、状态都离散,空间相互作用和时间因果关系为局部的网格动力学模型,具有模拟复杂系统时空演化过程的能力),并且能够以 Mathematica 笔记式文档的形式呈现。这个结果还是一种理解像龙卷风、软体动物壳上的花纹等等自然界中由简单规则构成的复杂现象的方式。沃尔弗罗姆发布这些结果的时候没有经过同行评议,书里每隔几页他就会强调一次这些结果是多么的重要。
沃尔弗罗姆的自我吹捧让人有些厌烦,而这也没有必要。即使不夸大自己,他的成就也不言而喻。Mathematica 自其推出以来就十分成功:用户需求十分广阔,它很快就像 Microsoft Word 一样风靡校园。反过来,沃尔弗罗姆用这些稳定的收益来聘请更多的工程师和专业人员,为 Mathematica 的数据库输入更多的知识。如今 Mathematica 不仅知道脚的解剖结构和物理定律,还了解音乐、针叶树的分类,甚至第一次世界大战中的主要战役。沃尔弗罗姆本人也在“教” Mathematica 学会古希腊的数字符号。
所有这些知识都是“可计算的”:如果你有兴趣,可以把索姆河战役(一战中规模最大、军队死亡人数众多的一次战役)的位置设为“x”,把日降雨量设为“y”,然后用Mathematica算算在 1960 年,该点 30 英里的范围内,大雨会使一战的死亡人数增加还是减少。
包罗万象的Mathematica 来源:沃尔弗罗姆的博客
“我发现了一个有趣的趋势,”沃尔弗罗姆在博客中写到,“任何一个领域 X,无论是考古学还是动物学,要么是现在就存在一个‘可计算的 x ’,要么不久之后就会出现,而这恰恰是该领域未来的发展方向。”随着该领域的从业者对计算科学的精通,他们能发现的东西会越来越多。Mathematica 笔记本文档可以传播这样一种新的思维方法,从而加速科学的发展。他认为,“真正让人兴奋的是,它带来的改变就像 17 世纪人们开始阅读数学符号时一样。这是一种“能运行”的交流形式。
这种“论文”允许把那些动态图表插入到文本当中。而且生成这些图表的代码和数据都随论文附上,以便读者体验和思索。沃尔弗罗姆说:“坦率来讲,当你在笔记式文档中使用的都是简洁的 Wolfram 语言时,就不会出现造假。数据是什么样就是什么样,能出什么结果就是什么结果,谁都不能伪造。”
用 Mathematica 笔记式文档写论文,在展示出结果和思路的同时,也能呈现出作者已发表的论文和做过的工作。这样不仅会让读者更容易理解你做了什么,还能让他们更容易重复(或不重复)你的工作。世界上数以百万的学者都在为科学做贡献,而如果别人能在他们的基础之上深入研究,这些贡献就能创造出巨大的价值。沃尔弗罗姆认为:“用计算论文呈现科学就能做到这点。”
西奥多·格雷(Theodore Gray)现在已经离开了沃尔弗罗姆科研公司,成了一名全职作家。他在采访中表示,自己对笔记本文档的研发很大程度上是出于一种感觉,一种在上个世纪 90 年代早期就已经形成的感觉,即“很明显所有的科学交流,所有包含数据、建模、表格或图片的技术文件,不应该仅仅停留在纸面上。这在 1990 年就已经显而易见了。”
“过去二十九年来,这给我们带来了许多困扰。虽然有少数人意识到了这一点,但整个社会还不能真正接受这种看法,”他说道。“这到底造成了多大的损失,浪费了我们多少时间,歪曲了多少研究结果,真的是算也算不清了。”
2001 年初,费尔南多·佩雷斯(Fernando Pérez)发现他的境遇和 20 年前的沃尔弗罗姆相似:作为一名年轻的物理学研究生,他也受到了软件工具的限制。他用过的系统有一大堆,其中也包括 Mathematica,感觉几乎每做一个项目,都要在软件之间来回切换。那时他桌子上堆了六七本编程书。他急切需要一个统一的科学计算环境。
但他并没有像沃尔弗罗姆那样辍学去创办公司,而是和大洋彼岸两名在思考同样问题的科学家——一位德国海洋学家和一位加州理工的计算机科学研究生进行合作。他们都喜欢使用 Python 这种开源的通用编程语言,并且都已经在独立创建一个能更好地为科学家服务的软件工具。这种软件工具可以让人们更方便地管理数据集、绘制图表,并且支持更具探索性的编程风格。
佩雷斯将三人的项目合成一个,成为了团队的领头人。从一开始,这个叫做 IPython 的项目(I 代表交互,interactive)就是开源的:不仅软件是免费的,而且任何人都能检查和调试代码,并上传他们的改动。来自哥伦比亚的佩雷斯在接受采访时表示,这个决定是经过深思熟虑的,“我愿意把我的工作与大家分享,这么做是出于两方面的考虑。”一方面,“在哥伦比亚,专业软件很难获得”,另一方面,他认为科学本身就是一项开放的事业,所以其辅助工具也应该是开放的。科学就是要揭示自然界的规律,而那些商业软件正“与科学的理念背道而驰”。
这就是 Python 的魅力所在。Python 能够“开箱即用”,比支持 Mathematica 的 Wolfram 语言功能更为强大。虽然 Mathematica 背后有沃尔弗罗姆科研公司强大的技术团队,Python 只是由一群社区开源开发者义务创建而成,但与之相比,Python 具有许多附加功能,比如处理图像、制作音乐、构建 AI、分析语言、绘制数据集。正是因为像佩雷斯这样的开源开发者为 Python 计算提供了有力工具,Python 成了科学计算领域一个约定俗成的标准,吸引了越来越多的开源开发者。像其他任何社交网络一样,编程语言社区的生存之本也正来自这些反馈循环。
IPython 笔记式文档的界面设计来源于 Mathematica。佩雷斯对 Mathematica 这一支持人们以探索性方式写作的界面大加赞赏。“你在思考问题的时候,可能会想要涂涂画画,把自己的思路记下来”而他认为计算型文档“能让我们看到这些生动的过程……你可以在写作的过程中思考,你还能把计算机当成一个计算伙伴或者思考伙伴来有效使用。”
IPython 团队并没有花很长时间将它做成一个专业化的独立应用,而是又吸纳了新的成员——圣路易斯奥比斯波(San Luis Obispo)的加州理工大学物理教授布莱恩·格兰杰(Brian Granger)和加州大学伯克利分校的计算物理博士明·拉根·凯利(Min Ragan-Kelley)——把他们的笔记式文档做成简单的网页。网页界面没有像 Mathematica 那样经过乔布斯的润色,因此略显青涩。但是, IPython 因此得到了许多免费劳动力:谷歌、苹果或者随便某个编程者在任何时候都可以开放新的绘图工具,或者发布更优秀的代码,这些改进都会融入 IPython 中。佩雷斯表示:“ IPython 得到了丰厚的回报”。
首次确认探查到引力波的那篇论文,是以传统的方式,也就是 PDF 形式发表的,但是附上了一个 IPython 笔记式文档。文档详细记录了论文中每个数据的获得过程。任何人都可以自己运行代码,或者按他们认为合适的方式调整代码,边玩边算以对论文中的工作有更深入的了解。在笔记文档中,产生引力波的信号被做成了音频,你可以在浏览器上播放这段音频,听听科学家们一开始听到的两个黑洞撞击的声音。
黑洞撞击的音频
西奥多在谈到佩雷斯的团队时表示:“我认为 IPython 作为普遍使用的工具,已经得到了科学界的广泛认可”,“ Mathematica 到目前为止还未能真正实现这一目标”。现如今,在 Github 网站上公开发布的 IPython 笔记式文档有 130 万篇。使用者包括谷歌、彭博新闻社(Bloomberg)、NASA(美国宇航局),有音乐家,有教师,还有人工智能研究员,“几乎遍布了地球上所有国家。”
面临每个转折点时,IPython 都选择了更具包容性的方式,直到它再也不叫“ IPython ”:2014 年,由于使用的编程语言不只有 Python 一种,该项目更名为“Jupyter”。Jupyter 的笔记式文档与 Mathematica 笔记式文档相似,但编程语言不再具有局限性。你可以使用 Python、C 语言、R 语言的笔记式文档,甚至 Ruby、Javascript、Julia 语言也能使用。任何人都能在 Jupyter 中构建自己的编程语言。到目前为止,Jupyter 已经可以支持百余种语言。
曾为 Mathematica 笔记本文档设计界面的西奥多·格雷提到,他曾想要在 Mathematica 中构建其他语言。“但根本没法用,”他如是说。“公司对这个不感兴趣。而且非要支持多种语言的话,每一种都做不精细。”
1997 年埃里克·S·雷蒙德发表的《大教堂与集市》(The Cathedral and the Bazaar),可谓是现代开源运动的创始文章。与专业团队精心搭建起来的、大教堂一般的复杂软件不同,他认为开源软件“由多种议程和方法组成的七嘴八舌式集市”的特点实际上是一种优势。他写到:“这种‘集市’的设计风格不仅起到了作用,效果还不错,这不得不说是对传统观念的一种冲击”。
Mathematica 的开发工作早在雷蒙德发表文章之前就已经开始,而且在这之后还在继续。这个软件是典型的“大教堂”,而且它的开发者们对“集市”仍持怀疑态度。“总会出现混乱,”格雷这样评价开源系统。“可变动部分太多了,而且很大一部分都是由不同小组开发的,你不可能像商业软件那样把这些部分整合成一个完整的系统,尤其是我们这儿还有个疯子。”
这个疯子当然指的是斯蒂芬·沃尔弗罗姆。格雷把开发工作比作在墨索里尼的统治下进行。“这个比喻不太好”,但他还是很庆幸“我们这儿有个疯子”。相比之下,Mathematica 笔记式文档更连贯,更精美,这很大程度上是因为其设计出自于一个固执己见的天才之手。“我知道那些 Jupyter 的设计者,”格雷告诉我,“他们和我们 20 世纪 90 年代那会的情况差不多。”但是他们走了捷径,“而我们选择了更正确的方向。”
但是用一个商业软件来改变科学界还是很困难的。尽管多年以来沃尔弗罗姆科研公司的 Mathematica 笔记文档阅读器都是免费的,许多大学也已经获得了网站许可,可以让其学生和教职工免费使用 Mathematica,但让出版商放弃免费的 PDF,转而使用一个专利产品还是困难重重。格雷说:“现如今,如果你往期刊投一篇 Mathematica 笔记本文档形式的文章,他们肯定会抱怨: Mathematica 太贵了,我们没有啊——还是给我们 PDF 吧。”
当然这并不能阻止沃尔弗罗姆,甚至他整个公司对 Mathematica 的优越性和必要性的大力宣传。他在博客里这样评价计算论文:“计算论文的核心,就是要树立起用 Wolfram 语言来描述计算思想的观念。”
后来居上的 Jupyter
这也许有些道理——没准计算论文只有在单一语言,或者某个财力雄厚的既得利益公司的支持下才能发展壮大。不过现在看来并不是这样。看似混乱但更具活力的联合发展,才更有可能是计算论文打入科学界的唯一办法。
沃尔弗罗姆把目光局限在了自己身上,或许正是他的自负才使得 Mathematica 笔记本文档名声不如其竞争对手卓著,后者虽然是在 Mathematica 的基础上创立的简单网页,却因其开放性和包容性,有望占领全球市场。
计算论文要想在科技期刊中取代 PDF 论文,还有很长的路要走,因为这意味着改变科学自身的激励结构。在期刊要求科学家们必须提交计算论文,共享研究成果和数据成为申请基金、提高声望的必须项之前,人们还是会保持现在的状态。
最理想的情况是,科学实践向前迈进一大步的同时,其衍生产品也会发生质的飞跃。莱布尼茨的微积分简化了计算,扩展了我们可以思考的空间。我们如今所面临的重大科学问题也不再只是计算问题:在分析患者病因,提出治疗方案时,我们如何利用数十亿碱基对的基因组数据以及比其多出十倍的蛋白质组学数据、患者的病史数据?怎样才能实时监控气温、降水、海洋、火山和地震数据的变化?思考中的大脑,其神经元网络是如何构建的,我们又该如何理解?在科学家当中推广计算论文,或一些更先进的版本,可能就会让这些现在看起来遥不可及的问题得到解决。
佩雷斯有次告诉我,Jupyter 这个名字是为了纪念伽利略,后者几乎可以说是历史上第一位带来现代科学思想的科学家。Jupyter 的图标其实是伽利略绘制的木星(Jupiter)卫星图。佩雷斯说:“当时伽利略在哪都买不到望远镜,所以他自己造了一个。”
原文链接:
https://www.theatlantic.com/science/archive/2018/04/the-scientific-paper-is-obsolete/556676/
阅读更多
▽ 故事
· 1个肾脏救了2个人:二次移植手术实现了人体器官的“循环利用”
▽ 论文推荐
· 你玩的游戏,被别人拿来发Nature:10万名玩家助力大型贝尔测试
▽ 论文导读
内容合作请联系
keyanquan@huanqiukexue.com