从 PDF 到 Mathematica,再到 Jupyternotebook,一场科学传播方式的变革正在酝酿之中。
1. 信息时代的科研困局
科学论文(Science Paper)-它的实际形式-是现代的有利发明之一。 在17世纪,科学论文尚未出现,研究结果的交流靠的是信件传递、在讲座中介绍,或者出书,没有公共论坛来促进科学发展。Paper 诞生之后的期刊,也只是报道单个实验或者微小的技术进步,这使得科学发展更加混乱。从那时开始,科学家们变成了社会昆虫(social insects),稳步向前,却一直是嗡嗡作响。
早期的论文在某些方面比现在的论文更加可读。它们不那么专业,却更加直接,更短,当然也不那么正式。当时,微积分刚刚被发明出来,整个数据集可以放在一个表里或者一页纸上,计算量少,少到完全可以手工完成,并且还可以用相同的方式进行验证。
后来,科学越来越成熟,交流结果也越来越困难。如今,论文十分冗长,并且充满了专业术语和符号。它们依赖于计算机程序,通过程序来生成数据、清洗数据、绘制数据图表以及对数据进行统计分析。程序写得越来越拖沓然,但对结果又越来越重要,导致了可重复性的危机,换句话说,论文没能完成最基本的任务:清晰地报告出真正的发现,清晰到别人也能够重现。
也许是论文本身的原因吧。现代科学的发展速度和计算机软件的发展速度是同步的,物理学家、生物学家、化学家、地理学家甚至人类学家和心理学家,都需要编程技术和数据科学技能。然而400年来,科学结果交流的基本方式并没有改变。论文可以在网上发表,但是它们仍然只是一页纸上的文本和图片。如果让你重新设计科学论文,你会怎么做?
前一段时间,我与 Bret Victor 进行了交流,他是一名研究员,曾在苹果公司为iPad做早期用户界面的原型,目前在加州奥克兰经营一家实验室,研究计算的未来。 Victor 一直坚信科学家至今还没有充分利用电脑。 “其实,印刷机和书籍的发展并没有什么不同,”他说。 古腾堡发明印刷机之后,多数印刷机只是模仿圣经的手写书法,改进了将近100年,才发明了现代书籍。 “在那段时间里,他们一直都有新的印刷技术,但他们却只是用它来模仿旧媒体。”
Victor 在重新设计 Duncan Watts 和 Steven Strogatz 的著名期刊文章《小世界网络的集体动力学》时提出了一种论文样式的新可能。他之所以选择这篇文章是因为它是科学论文中被引用最多的文章之一, 并且它也是一个阐述清晰的模型。 (Strogatz是为纽约时报编写备受欢迎的“数学元素”(Elements of Math)专栏而闻名的。)
Watts-Strogatz 的论文像大多数论文那样描述了主要它发现,包含文字、图片和数学符号。 但是也像大多数论文一样,尽管文章内容清晰明了,这些发现仍然很难被理解、认识。 最难的部分是描述程序和算法的部分,因为这些要求读者在他们的大脑中做“计算机模拟”,就像Victor所说的那样,就是要在大脑中推演算法中每一步发生了什么。
维克多的重新设计将解释性文本与表示每一步骤的互动性图表结合在一起。 在他的版本中,你可以看到一个示例中的算法,你甚至可以自己控制它。
论文作者 Strogatz 很欣赏 Victor 的设计。他后来告诉我,数百年来,在数学领域,人们一直致力于使论文尽可能地正式和严谨,然而这限制了数学家用视觉工具来呈现他们的发现。
Strogatz 是一位复杂性科学家,研究非线性动力学、混沌理论、协同学和自组织系统:包括萤火虫闪烁,节拍器滴答,心脏细胞发射电脉冲等。这些系统的关键是要经历周期,Strogatz 将其可视化为绕着圆圈运动的点:当一个点返回到它开始的位置,这就表示一个萤火虫闪烁或一个心脏细胞发射电脉冲。
“大约25年来,我一直在制作绕圆圈运动的点的电脑动画,用颜色表明它们的频率,”他说。 “红色是速度慢的家伙,紫色是速度快的家伙......我在计算机上旋转这些彩色圆点,我每天都这样做,“和看500个同步时间序列相比,在屏幕上运行的彩色点能更容易地看到系统的模式。同步时间序列很难看到东西,因为它不是系统真正的样子......我研究的东西是动态的,所以表示也应该是动态的。”
软件是一种动态媒介,而论文不是。用术语思考问题吗?这真的很奇怪。就像 Strogatz 研究的动力学系统,一般会通过论文分享结果,但是却没有他小小的旋转点那样清晰易懂。因为这些旋转点帮助作者看到了他想看的东西,同样的,这也会帮助读者看到它。
当然,这是整个科学传播的问题。简而言之,今天的科学成果常常是在计算机的帮助下发现的。 因为这些想法是复杂的、动态的,很难在头脑中被抓住。然而现在,我们却用 pdf 文件来传达科研成果。也许我们可以做得更好。
2.wolfram 与 mathematica
Stephen Wolfram 在15岁时发表了他的第一篇科学论文。本科毕业时,他已经发表了10篇。1980年, 20岁的他在加州理工学院获得粒子物理博士学位。他的秘密武器,是在大多数严肃的科学家认为计算机工作不值一提的时候,欣然接受计算机。“那时候,我认为自己是世界上最厉害的计算机代数用户,”他在一次谈话中说到,“它是如此简洁,因为我可以轻易地计算所有东西。我过去常常在物理论文中写出令人难以置信的华丽公式。”
随着他的研究越来越雄心勃勃,他发现自己将现有的软件推到了极限。他必须在一个项目的过程中使用许多编程工具。“我的大部分时间都花在了将这些东西整合在一起。” 他说,“我决定,我应该试着去构建一个单一的系统,只做我想做的所有事情——而且我希望它能保持增长。”Wolfram没有继续他的学术生涯,而是决定开一家公司——Wolfram研究公司(Wolfram Research),为科学家开发一个完美的计算环境。1988年4月18日, 《福布斯》杂志的标题写道:“物理奇才进入商业圈”。
Mathematica,作为该公司的旗舰产品,其核心是一个“notebook”。你可以在上一行输入命令,然后在下一行看到结果。输入“1 / 6 + 2 / 5”,它会给出“17 / 30”。要求它对多项式进行因式分解, 它就会执行。Mathematica可以做微积分、数论、几何、代数。它也能够计算化学物质如何反应,或是过滤基因组数据。它的知识库里几乎有伦勃朗的所有作品,并且随着他创作生涯的推移,给出一个他的调色板的散点分布图。它有一个内置的航天动力学模型,可以告诉你 f / a-18大黄蜂战斗机的引擎在32000英尺的高度被关闭后将滑翔多远。Mathematica notebook与其说是用户计算的记录,倒不如说是他们与多元神谕的交谈记录。Wolfram把精心编写的Mathematica notebook叫做“计算论文”。
notebook 的界面是Theodore Gray的创意。他受到旧款苹果代码编辑器的启发。当时大多数编程环境要么让你一次运行一行代码,要么一次全部运行,而苹果的代码编辑器能够高亮并且只运行代码的任何部分。Theodore Gray给Mathematica带来了同样的基本理念,并亲自帮助完善了设计。notebook设计成将科学编程转化为一种交互式练习。在这个过程中,代码会被调整和重新运行多次。作者能从他们每一次的小型计算实验结果中不断学习,从而加深对数据的理解。
Mathematica能够生成图表、图片和漂亮的数学公式, 并且能够动态响应代码的变化。在 Mathematica 中,你可以输入一段录音,在这段音频上运行复杂的数学滤波器,并将产生的声波可视化。只需通过鼠标调整参数,你就可以扭曲这个波,像玩游戏一样发现最合适的滤波器。Theodore Gray说,Mathematica 能够在一个简单的界面中流畅地处理这么多不同类型计算的能力,是“几个世纪以来人类的工作”的结果。
驱动这项工作的愿景,正如Wolfram在他的许多演讲、博客、视频和新闻稿中重申的那样,不仅仅是为了制作一个好的软件,而是在科学事业中创造一个转折点。在16世纪中期,莱布尼茨(Gottfried Leibniz)发明了积分和求导的记号,使得微积分中的难点变得近乎机械。莱布尼茨认为,类似的符号更广泛地应用可以创造一个“思想的代数”。从那时起,逻辑学家和语言学家就在追求这样一种通用的语言。这种语言能够消除模糊性,将各种复杂的问题解决变成某种微积分。
Wolfram的职业生涯一直致力于将世界知识吸收进Mathematica,然后通过Wolfram Alpha——他公司的“计算知识引擎”来提供这些信息。这个引擎为Siri和Alexa等助手的问题回答能力提供支持。这是Wolfram自己创建中间语言(Interlingua)的一种尝试,它是一种人类和机器都可以理解的编程语言,一种万物的代数。
这是一种雄心壮志。
20世纪90年代,Wolfram偶尔会在公开评论中开玩笑,与此同时,他正在建立自己的公司,他正在悄悄地研究一个革命性的科学项目。最后,这件事做成了:一本巨著,大约像煤渣块那么宽那么重,还有一个时代的标题——一种新科学(A New Kind of Science)。
这是一个在 Mathematica notebook 上进行的详细研究。他研究了简单的计算过程产生的令人惊讶的复杂模式——元胞自动机,其目的是元胞自动机本身以及为了理解自然界中的简单规则所产生的复杂现象,如龙卷风或软体动物壳上的图案。Wolfram在没有同行评议的情况下发布了这些研究,每隔几页就会提醒读者这些研究有多重要。
你越接触 Wolfram,越明白这种追求就是他的本性。1988年福布斯杂志介绍他时试图找寻这一根源。用普林斯顿高等研究院的前主任Harry Woolf的话说,23岁的Wolfram是最年轻的高级研究人员之一 ,他特立独行的性格,增加了他内在的孤独感和独特感。
当Wolfram的一位研究助理在一次会议上宣布一项重要的数学发现——即A New Kind of Science的核心部分时,Wolfram威胁说,如果他们发表了这些文章,就会起诉会议东道主。他说:“你不会发现有任何严肃的研究小组会,让一个初级研究员总结高级研究员的工作。”他说。学术界批评 Wolfram 的这本巨著是其他工作的衍生品,在评价其贡献时很吝啬。一位研究员在2002年接受《泰晤士报高等教育》采访时表示:“他暗示, 20年来,Wolfram 的那些观点,在复杂系统理论里早已有之。”。
Wolfram的自我夸耀尤其令人烦恼,因为没有必要。Mathematica一经推出就取得了成功。用户渴望它; 在大学里,这个软件很快就像微软Word一样无处不在。而Wolfram则用稳定的盈利聘请更多的工程师和技术专家,为他无尽的计划提供更多的知识。
今天,Mathematica 知道一只脚所包含的解剖原理和物理定律;它了解音乐,了解针叶树的分类以及第一次世界大战的主要战役。在这项宏伟计划中,Wolfram 也帮助 Mathematica 学习一个古希腊数字符号。
在 Mathematica 中,这些知识都是“可计算的”:如果你愿意,你可以将自变量“x”设置为索姆河战役的位置,将因变量“y”设置为1916年该地点30英里范围内的日降水量,并使用 Mathematica 来研究降水对这场战斗人员伤亡的影响。
“一个有趣的趋势,不论是考古学还是动物学,任何领域的自变量 x,要么已经是与计算机可处理的数据,要么很快就会成为计算机可处理的数据,”Wolfram 在博客中写到。随着这些领域的从业者对计算方面的了解,他们会有更大的科学发现。Mathematica notebook 可以成为科学的催化剂,因为它代表着新的思维方式。Wolfram 说,Mathematica真正让人兴奋的地方,是你看到了一场大变革,就像17世纪人们开始阅读数学符号的那场变革。Mathematica成为了一种非常重要的交流形式,你可以真正运行它。
新的“论文形式”,应对具有 Strogatz 和 Victor 想要的那种勃勃生气——穿插在文本中的交互式图解,生成的图表的所有代码和数据,都可以被用户阅读和运行。Wolfram 说,当你的 notebook 上运行 Wolfram 语言时,会非常清爽,没有废话。它就是它的样子,它只做该做的事。数据无法捏造。
把论文用 Mathematica 上写出来为了同时揭示你的研究方法和结果、同行的研究工作。Mathematica 重要的不是让读者更容易理解,而是让研究结果可以复现。全世界有上百万的科研工作者,他们不断对科学做出贡献。要让科学不断发展,最重要的就是如何复现并利用这些已有的成果。
让 Wolfram 惊讶的是,计算论文到现在还没有兴起。出版巨头 Elsevier(爱思唯尔)在80年代早期和 Wolfram 合作,咨询他“科学出版的未来是怎样的”。当时 Mathematica notebook 尚未诞生,Wolfram 介绍了自己对于可交互的计算论文的想法,这是爱思唯尔的一个机会,但他们没有抓住。几年前 Wolfram 又和爱思唯尔高管交流,他意识到自己跟出版商讲的东西,和35年前他讲过的一摸一样,出版商对科学出版的未来并无新意。
发明 notebook 界面创意的 Theodore Gray 离开了 Wolfram 公司,成为一名全职作家。他说自己研发 Mathematica 中 notebook 的灵感从90年代早期就形成了。Gray 说,所有的科学交流,只要涉及数据、数学、模型、图表、情节,显然都不适合用 paper 来表现,这在90年代就已经显而易见了。
Gray 说,过去29年来,也只是少数人在用 Mathematica notebook 这样的交互工具,科学界并没有真正接受它,这太让人困惑了。科学界因为错过了Mathematica 这样的新工具而损失的金钱、浪费的时间、被误读的科研结果,多到无法估量。
3. 从 IPython 到 Jupyternotebook
2001年初,Fernando Pérez发现自己和20多年前的Wolfram处在相似的境地:他是一名年轻的物理专业研究生,研究中需要使用的编程工具非常多。他一直在使用各种各样的编程系统,这其中也包括了Mathematica,感觉好像每个任务都需要在系统之间切换,有时候桌子上能同时有六七本编程语言书籍。而他真正需要的是一个统一的科学计算环境。
但是,他没有出去建立一个公司,而是找到两位志同道合的科学家,一位是德国海洋学家,一位是加州理工学院计算机科学专业的研究生。他们都爱上 Python 这种开源通用编程语言,并以此为基础开始独立构建工具,使之能更好的为科学家服务:这些工具使得管理数据集和画图变得更加容易,引发了一种更具探索性的编程风格。
Pérez把三人的项目统一起来,接管了大局。从一开始,这个叫做Ipython(I 的意思是Interactive,交互)的项目就是开源的:它不仅是免费软件,而且任何人都可以查看源代码并修改它,并将修改结果回馈到这个公共项目中。这是一个深思熟虑的决定。“在道德方面,我觉得和其他人分享我的工作是非常有趣的,”Pérez告诉我说,他来自哥伦比亚, 那里的专有软件更难获得“同时,也有许多认识论方面的动机。”他认为,如果科学是一个开放的事业,那么发展科学使用的工具也应该是开放的。那些源代码被法律禁止查看的商业软件是“与科学理念背道而驰的”,而这科学理念正是打开自然的黑盒。
整体来看,Python是比支撑起Mathematica的Wolfram语言弱很多的一种语言。但是Mathematica是从Wolfram研究公司的程序员团队那里获取的能力,Python的骨架核心是由大量额外的功能包支撑起来的:包括图像处理、音乐制作、人工智能、语言分析、数据集绘制,这些都是由开源社区的免费贡献而建立起来的。
Python之所以成为科学计算的行业标准,是因为像Pérez这样的开源开发者为其构建了有用的工具;而开源开发者之所以蜂拥到Python社区,正是因为这恰好是科学计算的行业标准。就像其他社交网络一样,编程语言社区也是在这种反馈循环中兴旺或者消亡。
IPython notebook 界面的想法来自于Mathematica。Pérez非常赞同Mathematica鼓励的探索性编程风格。“你会需要勾画出一些东西—这正是你推理和理解问题的方式。”可计算的notebook,他说,“将实时的想法表达出来….你能够思考整个过程,有效的使用计算机,如果你愿意,可以将计算机作为一个计算的伙伴和一个思考的伙伴。”
IPython 团队新加入了两位成员,加州理工州立大学圣路易斯-奥比斯波校区的物理学教授Brian Granger和加州大学伯克利分校博士研究生 Min Ragan-Kelley。他们将notebook简单的做成了网页的形式,而不是去构建成一个专门的,独立的应用程序。这样的界面没有Mathematica一样漂亮光鲜,但是也没有了后者的繁杂。但是,通过将自己限定在网页上,Ipython得到了本质上的免费劳动力:任何时候,只要谷歌、苹果或者任何一个程序员打开一个新的绘图工具,或者发布了更好的数学绘制代码,都会被推广到Ipython中。“它已经得到了可观的回报”,Pérez说。
宣布第一次确认的引力波探测结果的论文,是以传统的PDF版的方式发表,但是附加了一个IPython notebook。notebook上囊括了所有的工作,并且可以生成论文中所有的结果。任何人,都可以自己运行代码,按照自己认为合适的方式进行调整,或者玩味其中的计算过程来搞明白其中的机制。在这个notebook中的某一部分,产生引力波的信号被加工成声音,你可以在你的浏览器中播放,听听科学家们首先听到的,两个黑洞碰撞的脉动。
Theodore Gray谈到Pérez团队时表示:“我认为,他们所拥有的是科学社区所认可和接受的普适性的工具。这也是Mathematica到现在都没有成功做到的一点。”现在,有130万个notebook在Github上公开发布,谷歌、彭博和NASA,音乐家、教室和人工智能研究员,甚至“地球上所有的国家”都在使用这些notebook。
在每一个转折点上,IPython都选择了更具包容性的方向,以至于它已经不再被称为“IPython”:该项目在2014年将自己重新命名为“Jupyter”,因为它不再只是支持Python。
所谓的Jupyter Notebook,就像其名字一样,是一个类似于Mathematica notebook但是却支持任何编程语言的的notebook。你能够有一个Python版的notebook,也能有一个C语言版的,或者R语言版、Ruby、JS、Julia语言版的。任何人都可以在Jupyter中为他们自己的的编程语言提供支持。 如今,Jupyter支持100多种编程语言。
Theodore Gray开发了最初的Mathematica notebook界面,他曾经试图为其他编程语言提供支持。“但是没有认识进展,”他告诉我说:"因为公司没有兴趣支持这种做法。另外,当你不得不支持许多不同的编程语言时,你就不可能做得那么深入。"
Eric S. Raymond 1997年发表的一篇题为《大教堂和市集》的文章,在某种意义上是现代开源运动的创世文章,这篇文章挑战了复杂软件必须像大教堂一样来构建的观念,“由个别的巫师或者一小撮魔法师独自且光荣的工作精心构建起来。”作为Linux内核(这是世界上最强大的500台超级计算机以及绝大多数移动设备的核心)的管理者之一,Raymond的经历告诉他,组成的开源项目的“各种像咿呀学语一样杂乱的不同的安排和方法”实际上是一种力量。
他写道:“这种集市式的风格似乎起到了作用,而且效果很好,这一点令人震惊。”这篇文章试图解释为什么“Linux王国不仅没有在混乱中分崩离析, 而且似乎以几乎无法想象的速度从一个高度飞向另一个新的高度。”
早在Raymond开始构建Linux之前,Mathematica就已经在开发中了,并且在此之后也开发了很长一段时间。它就是典型的大教堂,它的建造者仍然对集市论持怀疑态度。对于开源系统,Theodore Gray说:“总是会有混乱。可调整的部件的数量是如此之大,其中有几个部件受到不同团队的控制。你不可能像在一个单一的商业产品中那样把它整合成一个集成的系统,就像有一个疯子在中间。"
这个疯子当然指的就是Wolfram。Gray指出,在墨索里尼的统治下,火车按时运行。“这是一个糟糕的比喻,”他说,虽然这样,“我还是赞成中间有个疯子。”Mathematica notebook是一款设计更加一致、更加精致的产品,这在很大程度上是因为建造它的每一个决定都来源于一个固执己见的天才头脑。“我观察这些Jupyter团队的成员,”Wolfram对我说,“他们和我们上世纪90年代初的水平相当。”但是他们走了捷径,他说:“实际上, 我们希望去尝试做得更好。”
在科学界卖掉一款商业软件是非常难的。尽管Wolfram研究公司多年来一直免费赠送Mathematica notebook浏览器,大多数大学也已经有了他们网站许可,允许他们的学生和教师可以自由使用Mathematica,但是要求出版商放弃PDFs这种开放格式的专利产品,未免太过分了。Theodore Gray说:“现在,如果你制作了一个Mathematica notebook,并试图把它发表在一本杂志上,他们会抱怨:‘嗯,我们没有Mathematica,这是一款昂贵的产品,所以请给我们一些更加标准化的东西。’”
然而所有这些困难并不会阻止Wolfram(这个人或者说他的公司)吹捧Mathematica的优越性和必要性,甚至Theodore Gray也认为他们这样有点像是CrossFit的人永远不会对CrossFit闭口不谈。毕竟,同样是Wolfram,在他的那本关于细胞自动机名为《A New Kind of Science》的书中、在他的关于计算论文的博客中,他也会写到:“计算论文的核心是使用Wolfram编程语言表达计算思维。”
谁知道呢,这个观点有可能是正确的---也许这种可计算的notebook只有在一种且唯一一种超级编程语言的支持下,才会生根发芽,或者是由一家财力雄厚的公司深耕细作,不断投入才能让其蓬勃发展。但事实恰恰相反。虽然联合的努力和贡献更加混乱,但也可能更加强有力,当然,这也是赢得科学界信任的唯一途径。
Wolfram很难看清自身之外的世界,也许这就是为什么 Mathematica notebook 仍然相对模糊不清的原因,而它的竞争对手:那些衍生出来的、简单但是开放的系统,看起来正在接管科学计算的世界。
4. 科研方式的变革,
从 PDF 向 notebook 转变
可计算的 notebook 在科学出版中广泛取代PDF版本还需要一段时间。因为这意味着科学本身的激励机制发生改变。当期刊开始要求科学家提供可计算的 notebook,当对研究和数据的分享成为科学家获得声誉和资助的关键时,转变才有可能实现。
我采访了一个在Jupyter工作的软件开发者,他之前是神经学家。他以前实验室的负责人曾一个电生理学家,工作是用植入的电极测量神经活动。这种研究的数据很好但是非常昂贵,没有人愿意去分享。因为如果收集了这样一批数据,你就可以用一辈子。
Jupyter的创始人Pérez在2013年的一篇blog中写道:“在这一点上,没有人会质疑这个事实,就是科学研究的时间正处于重大动荡之中”
随着科学越来越关注计算,计算机技能作为一个好的科学家的必备技能在工业界也变得越来越有吸引力。大学的人才都流向了像Google 和Microsoft这样的创业公司。他谈到,在过去的十年,很多有学识的同事在学术界感到郁郁不得志,但是跳槽到工业界的那些人反而做得很开心。
一些科学家为了开发软件而转向工业界,终止了学术生涯。一个著名例子是科学论文中最流行的图生成工具 matplotlib 的发明者,他本来是神经科学博士后,但是因为开发软件的原因,最终离开了学术界。Numpy 是现在非常流行的计算工具,它的发明者也有类似的离开学界的经历。Pérez 说许多同事、大牛和导师对自己直言不讳,觉得开发软件是在浪费职业生涯,是在浪费才华,他们希望自己回到物理学、数学和论文上,而不是工具开发。
不过,那些留在学界的人正在取得进步。Pérez 本人最近在加州大学伯克利分校获得了教职。我们交谈的第二天,他被安排去教一门高级数据科学课程,完全基于 Python 和 Jupyter notebook。这门课程在秋季对新生开放时,会招收1200名学生。这是伯克利分校历史上发展最快的一门课,而且用的都是开源工具。
如果你想要改一项科学研究,你也要改进科研成果和展示形式。莱布尼茨发明的符号语言让微积分计算更加容易,大大扩宽了人类思考的空间。今天我们的科学挑战通常不是单纯的计算难题,而是更复杂的问题:
怎样把海量的基因组数据、蛋白质组数据、历史健康数据和药理学筛查结果,形成完整的个人数据库以改善其健康状况?
怎样让关于温度、降水、海洋、火山和地震的有效数据不断产出?
怎样构建和理解大脑思维活动的神经元映射?
让科学家们使用 notebook,或者其他先进的展示形式,可能会让他们的思维能力大大提高,以解答上述难题。
Jupyter 这个名字是为了纪念第一位现代科学家 Galileo(伽利略)。伽利略曾根据自己的观测,画出一幅木星的卫星图画。Jupyter 的标志就是这幅图的抽象版本,Jupyter 的拼写和读音都与木星(Jupiter)接近。在伽利略的年代,望远镜是买不到的,他也许只能像 Wolfram 一样开家公司,自己造一个出来。
0
推荐