关注风云之声
提升思维层次
导读
进行基础软件的开源替代是我们必须要走的道路,负重前行路阻且长,我们要做好长期的准备。但我们应当坚信,只要我们能顺应世界新技术趋势的发展要求,符合世界开源、开放文化的前进方向,保护世界最广大人民分享智慧产品的根本利益,就必将取得胜利。

在本文上篇《局与破局》中我提出的观点是尽快用同类开源软件替代Matlab,并建立机制让中国市场需求与开源软件运动结合发展,这是破解美国对中国科技制裁招数的关键。那什么是开源软件?跟开源软件运动结合能给中国软件业带来什么?依靠开源软件是否就是放弃自主创新?怎样结合才能加快开源基础软件的成熟与完善?在本篇中,我们就来讨论这些问题。
  中篇:势与顺势。本篇分为四个部分。
一、世道变了:开源软件运动出现的背景
二、世道又变回来了:开源软件运动引发的新趋势
三、顺应世界开源运动大势,中国软件业需要积极有为
四、禁用Matlab,是个好机会,切莫错失了
一、世道变了:开源软件运动出现的背景
  开源软件这个名词相信大家这些年应该都听说过,它是相对于我们平常接触的商业软件(或称为闭源软件)提出的概念。开源软件一般可以免费获取,并且会开放软件的源代码,允许用户和开发者进行修改,以众人的力量共同促进软件发展。
  提到开源软件,往往会联想到一群网络侠客,因受不了商业公司高价牟利的行为,用无私的精神向世人奉献智慧产品。也就是说,一般印象里是先有商业软件,再有开源软件。但如果我告诉你,世界上最早的软件都是开源软件,开源软件才是软件业的主流正统,而商业软件不过是后来崛起的支流旁门,你会不会觉得颠覆了自己的认知?这个事我们要好好捋捋,对于后面我们的对策非常重要。
  如是我闻,在计算机最早出现的时候,都是占地很大的大型机,用户都是软件开发者或研究人员,用户往往自己开发软件并相互传播源代码进行交流。最开始的计算机都是国家计划或者科学研究需要的产物,到1949年才出现了第一台商业计算机BINAC。商业计算机公司在销售硬件时会免费提供配套软件,并且延续传统附带软件的源代码。软件问题可以由用户自行解决,这样能减轻企业的售后服务压力。用户往往会对软件进行修改与扩展来满足一些特定的需求。使用相同硬件的计算机科研人员或爱好者会组成小团体,分享技术心得和各自编写、修改的软件。
  在这样的背景下产生了许多对日后影响深远的软件,其中最重要的是操作系统软件。而操作系统中最成功的一款是由贝尔实验室的两位研究员肯·汤普森(Ken Thompson,1943年2月4日—)和丹尼斯·里奇(Dennis Ritchie,1941年9月9日—2011年10月12日,同时还是C语言之父)在1969年编写的Unix操作系统。Unix因其简单实用、可移植性好而广受欢迎,许多圈内同行都索要软件源码。Unix很快成为当时操作系统的范例,各大学和研究机构也开始对其进行了各种各样的改进和扩展。Unix逐渐成为操作系统事实上的标准。
肯·汤普森(左)与丹尼斯·里奇(中)被克林顿总统授予1998年美国国家技术勋章

  1975年,汤普森获得了带薪休假一年的机会,他选择到加州大学伯克利分校访学。汤普森的到来引发了伯克利的轰动,因为Unix早已在校内产生巨大影响,师生们组成了兴趣小组专门研究并改进这个系统。汤普森为伯克利带来Unix最新的第6版的源码,这成了日后BSD(Berkeley Software Distribution,伯克利软件发行)Unix的母版。
  同年,计算机行业发生了一个历史性的转变,市场上出现了基于英特尔8080芯片的微型计算机Altair 8800。
Altair 8800

Altair 8800是计算机历史上一款神级产品。它本身基本没有任何实用功能,却取得了巨大的成功,共卖出6万多台。它的成功激起了市场的狂热,不断有厂家推出类似产品,从此形成了一个崭新的产业——面向个人用户的微型计算机。由于计算机用户群体的增加和使用范围的扩大,硬件附带的软件无法满足需求,一批专门开发通用软件的商业公司应运而生。其中以比尔·盖茨的微软公司最为成功。微软起家就是为Altair 8800编写BASIC语言编译器软件,最后发展出MS-DOS和Windows操作系统。商业软件公司依靠对软件收费来获取利润,但软件收费与提供源代码存在矛盾。因为如果提供源代码,就无法阻止用户或者竞争对手复制或改写软件代码。越来越多商业软件公司开始只提供目标代码(也就是可执行文件)。这种新的风潮随着1981年计算机行业的霸主IBM推出其微机产品PC 5150,并在1983年执行“仅目标代码”策略后形成市场惯例,几乎所有的商业软件公司都不再提供软件源代码。
  这种潮流一下点醒了贝尔实验室的母公司AT&T:哟嚯,软件还能拿来赚钱呐,我怎么没想到?
于是1979年的Unix 7成了最后一个广泛发布的研究型Unix版本,之后开始禁止大学使用Unix的源代码,也不允许在教学中讲授。1981年,AT&T基于版本7开发了Unix System Ⅲ的第一个版本,这是一个仅供出售的商业版本,不过依然提供源代码。又于1983年发布了Unix System V Release 1,从这一版本开始不再提供源代码。
AT&T销售Unix的广告

同时,AT&T不断出手打压其它版本的Unix,特别是BSD,直至1992年对伯克利发起了诉讼。虽然这场官司在1994年以和解收场,但造成的影响非常恶劣,伯克利Unix兴趣小组都不得不解散。Unix在软件行业内人心尽失。在把市场搅得一片狼藉之后,AT&T这位大哥把Unix卖给了Novell公司,事了拂衣去,深藏功与名。大哥走好,大哥不送!
  Unix的商业化是一个标志,软件行业田园诗一般的美好时代从此结束了。世风日下,人心不古。面对时代的变化,不同的人做出不同的选择。有的人在感慨之余,决定追逐潮流投入商海开起了自己的软件公司。而有的理想主义者则决心捍卫软件业的传统。毕业于哈佛大学曾在麻省理工人工智能实验室工作的理查德·马修·斯托曼(Richard Matthew Stallman,其简称RMS更为知名,1953年03月16日—)就是理想主义者最杰出的代表。1985年,RMS发表了著名的GNU(GNU s Not Unix,这是技术宅们喜欢的一种递归缩写方式。他还把RMS解释为RMS Means Stallman)宣言,号召创建开源的Unix替代系统和软件,由此拉开了轰轰烈烈的自由软件(Free Software)运动的帷幕。“自由”一词是对软件开发传统的概括,同时也表明参与者精神上的追求。同年10月RMS创立了自由软件基金会(Free Software Foundation)来为GNU计划提供技术、法律以及资金支持。
年轻时的RMS与他开创的GNU软件

  经过6年的努力,到1991年,GNU计划需要的许多工具软件(如编译器集合Gcc、命令行界面Bash、文本编辑器Emacs)已经基本完成,但是还缺少最重要的一项:操作系统的内核GNU Hurd。这是由于该内核采用了超前的微内核设计,导致项目复杂性大大增加而迟迟未能完工。但是GNU Hurd的缺位却成就了另外一种操作系统的崛起。
  1991年,芬兰赫尔辛基大学计算机系大二的学生林纳斯·托瓦兹(Linus Benedict Torvalds,1969年12月28日—)购买了一台当时流行的英特尔386 PC机。因为不喜欢预装的MS-DOS操作系统,他换成了Minix(一种兼容Unix,主要用于教学的开源操作系统)。但Minix作为一个教学系统并不完善,许多功能无法满足他的需要,而商业版的Unix则贵得离谱。于是他萌发了自己做一个操作系统的想法。参考Minix并受Unix思想的启发,他在暑假结束时的9月17日,拿出了一个0.01版的内核,但该版本还无法正常运行。不过1个月后他就写出了0.02版,在这一版上就能承载各种GNU工具软件了。
Linus和Linux

  林纳斯将他自己称作“一个学生的作品”的内核以Linux的名称放到已经开始普及的互联网上,并加入GNU计划开放源代码允许任何人参与修改。这一项目立即吸引来了世界各地众多程序员的关注。各种对Bug的反馈、修改意见、漏洞修复与增加新功能的代码通过网络向他涌来。受到鼓舞的林纳斯不断更新该操作系统的版本。在汇聚了世界各地优秀程序员的智慧后,Linux以极快地速度成长成熟,1.0版本于1994年3月14日正式发布。当人们将GNU计划的工具软件与Linux内核结合起来时,一个伟大的操作系统GNU/Linux诞生了。
  Linux的横空出世对于自由软件运动具有非常重大的意义,主要体现在:
  1. 验证了自由软件运动道路的可行性。自由软件运动作为对软件行业上古遗风的坚持,天然占据道德的制高点。但是在软件行业已经完全商业化的现实之下,自由软件是否有真正的发展空间?自由软件运动能否吸引足够的力量投身其中,从而产生有强大影响的基础性软件?这些疑问的答案在Linux成功之后已经不需多言。
  2. 使自由软件拥有了坚实的发展基础。在RMS发起自由软件运动后,虽然成果不断,但一直没有搞定最基础的操作系统。自由软件还是寄生在各商业平台之上,成了对商业平台的补充与点缀。只有属于自由软件的操作系统出现,独立的软件生态才能形成与发展。而Linux出现之后自由软件生态迅速形成规模,使得那些打算看不爱钱的傻子笑话的人们大跌眼镜,不得不正视这股力量越来越强的影响力。
  3. 开创了一种全新的软件开发模式。GNU Hurd长期难产除了技术路线过于超前造成开发难度巨大之外,还有一个原因是其采用的开发模式与商业软件其实是相同的。也就是由一些资深大仙组成的核心团队来对软件进行总体控制,依靠明确的目标与清晰的计划按部就班开展。这种模式被称为“大教堂模式”,因为这个过程像建造一座大教堂一样安静和有序。在这种模式下的开源更多地是起到搜集用户意见的作用。在应用于操作系统这种复杂度超高的软件开发时,如果没有稳定的团队以及大量的资金投入,这种模式会出现严重的效率问题。而林纳斯在启动Linux项目时,自觉地把自己定位为一个行业小白(虽然后来证明他是个天才)。他并没有要把项目引向何方的高瞻远瞩,只是执行一个简单的策略:每周发布更新,并在接下来几天内根据反馈进行汇总修改。这个过程就是通过互联网合作的大量志愿者的随意之作,但是工作效果却出奇地好。原来需要专业团队长时间反复测试才能发现的Bug,在志愿者千万双眼睛的监督下被迅速捉出,软件以意想不到的速度进行迭代。这种开发模式最大地激发出了开源与互联网社区的潜力,使得开源不再是软件分享的方式,而成为软件存在与发展的理由。仅仅经过不到3年,Linux在稳定性和可靠性上就已经和很多商业版Unix不相上下,效率之高令人咋舌。Linux的开发模式被总结为“集市模式”。因为它像是一个乱糟糟的大集市,各种工作都像一个个摊位一样在以自己的方式同时往前推进,然而却乱中有序构成了总体的高效运转。两种开发模式的对比被埃里克·雷蒙德(Eric Raymond,1957年12月4日—)写成了《大教堂和集市》(The Cathedral and the Bazaar)一书,该书也成了自由软件运动的经典著作。
  前有RMS义旗高举、筚路蓝缕,后有Linux新基鼎定、建极绥猷,让理想不死的软件业者心有戚戚、云集响应,自由软件运动风云际会势如卷席,不断改写软件发展的历史进程。在这个过程中,因为“自由软件”(Free Software)中的“Free”会让人认为等同于免费,甚至产生质量低劣的印象,不利于进一步扩大影响尤其是吸引商业公司参与,雷蒙德等人建议用“开源”(Open Source)作为运动新的口号,并且于1998年创立了开源促进会(Open Source Initiative,OSI)。应该说这种考虑是从实际出发,有其积极作用。但是后来围绕这两个名词出现了一些争执,运动参与者也出现了分化(对于中国人而言,这种分化并不陌生。根本原因就是在一些理想主义者看来,这个运动开始“变修”了)。但在我看来自由软件与开源软件本质上是一样的,它们所指向的软件集合也基本相同,不管是叫艾丽丝还是叫二丫头,都是同一个银,我们不用太过于执着这种名词之争。
二、世道又变回来了:开源软件运动引发的新趋势
  Linux现世之后,开源软件运动翻开了新的篇章。越来越多优秀程序员投身其中,重量级基础软件也接连出现。比如,1995年出现的开源Web服务器Apache,它与Linux的组合运行稳定、高效,比商业软件更可靠、更灵活、更具扩展性,更重要的是极大省钱!很快,运行Apache的Linux机器成为网络服务器的首选,不断扩大市场份额,时至今日已经有约60%的网站运行在Apache之上。开源软件不再是市场的配角,完全可以称霸天下。
  面对开源软件的来势汹汹,一些商业软件公司感受到威胁,试图力挽狂澜。冲在最前头的是软件业大哥:微软。史蒂夫·鲍尔默在2000年接替盖茨担任微软CEO后,直接将Linux称之为“恶性肿瘤”,并在执掌微软期间用尽各种手段打压Linux。一段时间网上黑Linux安全性与侵犯专利的公关稿,背后往往浮现微软的影子。而另一些商业公司却在思考,与开源运动结合是否能给自己带来切实的好处。
  最早采取行动的是网景(Netscape)公司,而这家公司之所以投向开源运动起因还是微软。网景公司曾经是硅谷神话,它于1994年发布了世界上第一款民用网络浏览器软件网景导航者(Netscape Navigator),一度占据浏览器市场90%的份额。但后来微软采取将IE浏览器与Windows操作系统绑定销售的策略,网景的日子一落千丈。作为绝地反击措施,1998年网景公司启动Mozilla计划将导航者浏览器作为自由软件免费提供,其源代码也全部公开。虽然Mozilla计划没能拯救网景,但它开了商业软件转向开源运动的先河。Mozilla计划后来成立基金会独立发展,产生了包括火狐浏览器、火狐OS移动操作系统、雷鸟电子邮件客户端等成功的开源产品。
  除了网景这样因为斗争失败转向开源的商业公司,更多的公司在开源运动中发现了商机。有的从事开源软件的咨询顾问服务,并在安装、售后、培训等环节中获取费用。有的推出Linux发行版进行营利。这是因为Linux实际是一个内核而非完整的操作系统,它缺少许多正常使用中必要的软件,而Linux发行版就是将Linux内核、GNU软件包、工具集和文档、桌面环境等打包在一起的一个完整操作系统。我们熟悉的发行版有红帽(Red Hat)、Ubuntu、Debian,国内也推出了红旗Linux、Deepin等。用户付费购买发行版可以获得定制服务与技术支持。还有的公司提供面向开源软件的开发接口或服务,以吸纳开源社区用户使用自家产品。如甲骨文的企业级数据库向Linux开放接口,IBM与开源Apache服务器软件团队合作开发大型服务器应用平台WebSphere,戴尔提供预装Linux系统的个人计算机。
  这一趋势演化到最终阶段则是商业公司开始基于开源软件开发新的软件或者直接发起新的开源项目。其中最成功的案例是Google推出的智能手机操作系统:安卓。Google是一个智能手机市场的后来者。当它准备下场时,场子里已经有苹果、微软、诺基亚、黑莓等诸多前辈玩家。论实力、论经验、论创新,它都排不上第一。Google的策略就是彻底拥抱开源:基于Linux内核开发安卓,严格按照开源运动要求开放源码,并从Linux开发过程中获得灵感,依靠开源社区吸引全世界关注,集万众之力快速迭代软件版本。2007年1月苹果推出第一代iPhone,11月Google发布第一版安卓,2008年10月发布第一部安卓智能手机,2011年第一季度,安卓在全球的市场份额首次超过诺基亚的塞班系统,跃居全球第一。在开源力量霸气侧漏之下,即使是智能手机新局的开辟者苹果也毫无应战之力,微软更是可怜最后不得不放弃自家Windows Phone操作系统,而诺基亚、黑莓如今安在焉?开源在商业竞争中显露獠牙,展现出不可战胜的威力。
  深受启发的各大公司以无比的热情投身开源。他们或者采用开源软件组合进行开发、搭建服务。开源语言PHP、Java、Python,开源数据库MySQL等越来越受欢迎。或者收购开源软件增强自身竞争力。2008年SUN公司以10亿美元收购开源数据库MySQL,而2009年Oracle又以74亿美元收购了SUN。越来越多的商业公司也主动发起开源项目。站在微软身后抵抗开源运动的战友日渐稀少!
  大势如此,无力回天,微软该何去何从?谁也没想到这位大哥来了个180度大转身,完全不怕闪着腰,迈着妖娆的步子走向开源。大哥大哥他来了,他带着礼物走来了!2014年萨提亚·纳德拉成为微软第三任CEO,在他的带领下老大哥做出许多改变。其中一项就是改变对开源运动的态度,喊出“微软爱Linux”的口号。口号虽然肉麻了点,但行动还是挺真诚的:当年微软就在GitHub(面向开源及私有软件项目的托管平台,其版本管理工具Git由Linux创始人林纳斯于2005年开发)建立官方账号,开源.NET框架。2015年,微软发布了开源开发者工具Visual Studio Code,如今是GitHub最受欢迎的项目之一。2016年,微软成为GitHub项目贡献第一的组织。2018年10月,微软加入开源专利联盟OIN(Open Invention Network)并向其开放了6万项专利……当然大哥也知道光行动是不够,最展现诚意的还是要——2018年10月27日,微软宣布以75亿美元收购GitHub,并承诺GitHub保持独立运营。好,到位了,真让人感动!

  阻挡开源运动的最后一个堡垒阵前起义、和平解放,开源成为世界软件行业不可阻挡的大势!而它之所以能够实现这样逆天改命的伟大壮举,一是因为互联网时代可以让世界各地软件开发人员协同合作,以极高效率创造出超越传统模式品质的软件产品;二是开源运动的机制设计在保持软件开源、开放的同时,并不天然排斥商业利益,使得开源运动的参与者可以获得可观收入从而更有动力持续投入。
  而在开源运动的维护机制中,许可证制度是很重要的组成部分。RMS为开源软件设计了最早的许可证。他考虑到如果有人利用开源代码牟利却不给社区提供任何回馈,会使开源软件最终走向枯竭。为了防止这种情况发生,他认真钻研法律挖空心思搞出了一份通用公共许可证(General Public License,GPL)。与强调私有、限制他人任意修改和传播的Copyright(著作权)不同,在GPL协议下的开发者权益被概括为Copyleft(著佐权)。其中条款明确了开发者许可用户对代码进行复制、修改、传播和销售获利,前提是这样做的人必须保持原有的版权信息并公布修改后的全部源代码,以保证智慧与思想能够一直自由传递。也就是说,如果某个软件使用了以GPL协议发布的源代码的任何一部分,那么该软件就继承了GPL协议,必须随应用程序一起发布源代码以回馈社区。这种条款被称为“病毒条款”、“传染条款”或“丧尸条款”,意思是只要沾上它的软件都会自动变成开源软件。
  GPL在开源软件发展过程中发挥了重要作用,但随着运动的参与者成分变复杂,不同层面的利益诉求开始提出。GPL被认为要求过于严格。于是参照GPL的方式,多种许可证被提出并分别被后来的开源软件所采纳。这些许可证从最严格到最宽松依次为:GPL、MPL(Mozilla Public License)、LGPL(Lesser GPL)、Apache、BSD、MIT。这其中最宽松的许可证已经不再要求使用其源码的软件继续开源,只需声明源码出处即可。这些许可证带来了更多灵活性,用户可以根据实际需要采用不同许可证下的源码。这其实也是一个“解放思想”的过程,极大地消除了商业公司加入开源运动的顾虑,使得软件业在开放源码方面最终达成了整体的一致。
OSI部分附属成员

三、顺应世界开源运动大势,中国软件业需要积极有为
  中国软件行业与开源运动早在上世纪90年代中期就已经有了交集,但一直发展缓慢。从2005年起,世界开源运动出现发展的高潮,国内的大型IT企业如阿里巴巴、腾讯、百度和华为等纷纷加入,推出许多开源项目。同时,随着国内开源社区的兴起,个人主持或者参与的开源软件也逐渐多了起来。据统计,当前已经有超过一万个由国人发起的开源软件项目。
  在这些国产开源软件中,出现了Vue.js(构建用户界面的渐进式框架)、ECharts(基于JavaScript的数据可视化图表库)、Apache Dubbo(分布式RPC服务框架)、Deepin(Linux发行版)、Oceanbase(分布式数据库)等许多成功项目。但其中绝大多数项目都集中在工具与应用层面,基础软件很少。而且它们的开发与使用范围都局限在国内,能将影响辐射到全世界的开源软件非常少,说明我们与世界开源主流环境严重脱节。这种现状亟需改变。
  在当前中美科技竞争加剧的背景下,中国软件业与开源运动结合的必要性与重要性尤其凸显。构建在美国商业软件基础上的所有应用成果都存在被美国政府下令禁用的可能,不及时调整将陷入极大的被动。而开源软件却可以给中国科技发展提供更稳固的基础。也有人担心美国政府一声令下,就能禁止来自美国的开源软件被中国使用。这样的担忧其实是没有必要的。开源软件出现的目的就是为了分享并传递人类的智慧产品,它只有参与者没有所有者。任何人或组织发起某个开源项目后,这个项目就成为全世界共有的公共产品,发起者没有权利阻止任何人以符合许可证要求的方式使用该项目的软件或源码。这也是为什么在美国禁令之下,微软能禁止华为使用Windows,MathWorks能禁止哈工大与哈工程使用Matlab,而Google只能禁止华为使用GMS(谷歌移动服务),只能排除华为参加它主导的安卓技术活动,却不能阻止华为继续使用安卓。
  美国政府一味蛮干,是因为它自认为拥有“力量”却又错误地理解了“力量”。它认为自己在科技方面的强大无人可以挑战,当今世界的科技成果都是构建在美国提供的基础之上,它有能力构建这个基础当然有能力决定其它国家科技的生死。它没有明白的是,它提供的科技产品与技术基础被世界接受,是因为满足了世界发展的需要。是世界选择了它,而不是它决定了世界。它没有意识到的是,因为过度的商业化与人性的贪婪早已让世界人民不满。开源软件运动的出现与成功,是因为理想主义者的坚持是因为关键人物的伟大创举,更是因为世界做出了新的选择。世界人民的意志已经不允许让软件成为某个国家或某些组织可以任意操纵的工具,软件特别是基础性的软件正在向全世界公共产品方向演进。美国的蛮横霸道只会引起世界人民的反感与警惕,大大加快这一历史进程。历史的海洋正在蓄积能量,准备掀起惊天的巨浪。我们将亲眼见证一个逆历史潮流而动的强权,如何失去人心失去力量的过程。我们也将同时见证在被巨浪荡涤污秽之后,人类在全世界共有的崭新的基础上重新构建智慧产品的伟大工程。
  在这个历史大势中,中国应该找准自己的定位,积极有为。首先,要明白世界并不需要一个新霸主。美国逆势而动,会加快失去对基础性软件产品的控制权,但这并不是取而代之的机会。中国现在既没有全面取代的能力,也没有这个必要。我们只需顺应大势,早日促成世界公有基础软件的建立就是胜利:能把美国踢下来就行,没必要非得自己上位。其次,在整个大势进行过程中,中国软件业不能坐等,更不能只索取不贡献。老大哥已经累了,我们应该多想办法让他早日体面。
这个过程中,中国科技的基础必定经历一次相当彻底的更换。被动等待,不在基础研究上下工夫,我们将失去一次重要的机会。结合开源运动,不是要放弃自主创新,而是在新的基础上加强自主创新,积极参与、积极贡献,才能培养出中国基础软件的优秀人才,才能紧紧跟上下一次科技进步的步伐,获得下一轮技术发展更多的主导权。这个过程我们已经在通信行业走过一遍了,华为的崛起给了我们充分的信心,中国软件行业应该见贤思齐勇于担当。最后,中国现在世界开源软件运动中缺少话语权,这个不是光靠喊口号能够得来的,必须要靠实干才能得到。但我们也要明白,中国开源软件圈与世界主流存在隔阂,许多重要领域已经被欧美开源软件挤得没有地方下脚。要想出头,必须集中力量,发挥中国的市场优势,找几个领域单点突破,拿出中国人的基础软件方案,用我们的优势做大影响力,打破中国软件只有中国人参与的小圈子融入世界大环境,赢得世界开源运动的认可与尊重。
  我们迫切需要一个机会。
四、禁用Matlab,是个好机会,切莫错失了
  好在这样的机会美国已经送上门来了。
  要选准突破口本来是一件困难的事。因为改变正在使用的基础软件不仅是一个使用习惯的问题,还涉及已经投入的大量人力与资金,善财难舍,背后需要利益相关方经过好一番博弈才能确定。但是美国的行动已经帮我们快速做出了选择,就是它了:都不让用了,还有什么瓶瓶罐罐舍不得的。事实上,Matlab所在的科学计算软件领域也正好是一个非常合适的突破口。在上篇中我分析过Matlab并没有太强技术壁垒,依靠现有积累实现突破不难。更重要的是,中国市场已足够支撑一个新的科学计算基础软件的发展。
  在世界开源运动整体大发展大繁荣的背景下,科学计算领域开源软件的日子却过得并不太好。虽然已经发展多年,像Scilab都有二十多年的历史,深孚众望却一直进展缓慢。缺乏大规模应用是主要原因。更要命的是,缺钱。像Octave、Spyder都遇到过经费问题,Scicoslab与Scicos已经处于停止更新状态。现状其实是比较凄凉的。如果能与中国力量中国市场结合,将给它们带来质的飞跃!
  一方面是兵强马壮急需登顶机会的新兴力量,另一方面是有大义名分与多年积累却衰败凋敝的开源科学计算软件。这种情况让我想起了一段历史:那就是东汉末年,朝廷经历董卓之乱,又被李傕、郭汜洗劫,狼狈不堪。献帝发诏要各地勤王,诸侯豪强们却视而不见。只有曹操发现他的价值,抓住机会把这块神主牌给供了起来,才有了日后的基业。在历史的关键时刻,眼光与策略都非常重要。
  软件被禁,利益遭受损失;被动应战,并非源自称霸野心;匡扶汉室,不是,扶持开源,而非另搞一套。在中国实力的支撑下,顺应世界软件开源、开放的大势,从为全人类做贡献的角度出发推动基础科技产品更替,世界人民又有什么理由不欢迎呢?这个突破口、这条路切实可行。

  在具体操作上,我们要参照开源软件发展的经验,发挥好关键人与关键组织的作用。历史表明大学与科研机构是软件业的创新基地,伯克利、麻省理工、贝尔实验室都为美国软件发展做出过开创性贡献。这次美国政府打击的对象集中在这两处,为的就是要扼杀我们的科技创新能力。我们必须要让他们的目的落空,把大学与科研机构的创新潜力进一步激发出来,把中国软件业的下一代领军人物锻炼出来。
  在项目推进过程中,我们还需要借鉴开源运动行之有效的做法并结合中国实际,以新机制来促进开源软件的发展。有效做法可以总结为两条:一是以基金会来为开源软件进行资金等多方面支持,提供第一推力;二是借助强大社区力量,扩大影响集思广益快速调整迭代。这些做法都可以结合到科学计算替代软件的开发过程,并用中国市场来进行放大,增强疗效。
  试想一下,可以采取以下步骤:
  第一步,联合国内受禁令影响的学校与机构,其它学校自愿参与,把原来买美系平台软件的钱拿出来成立一个基金会。以这个基金会为主力机构推动开源基础科研软件项目的开发与推广。
  第二步,由基金会组织公开招标软件核心开发团队。应该鼓励学校师生与科研机构成员挑头组队或参与开发。不同的队伍可以选择不同的技术路线,可以加入现有的国外开源科学计算软件项目,也可以综合几家之长启动新项目。各团队除了承担开发任务,还要设计好商业化路径,为项目长期发展做足准备。
  第三步,在日常教学实践与科研中将开源软件用起来。要将国内理工院校与科研机构组成一个超大型超活跃的开源社区,积极宣传或采取一定措施推动在日常学习工作中使用开源软件。因为这已经是一项重要且紧急的任务,相信我们的科技工作者有觉悟有意愿参与其中。只有大家真正把软件用起来,将发现的问题反馈出来,或更进一步参与代码维护,替代软件的发展成熟将是指日可待。我们的科研人员与师生不应只满足于用软件,还应积极参与写软件,特别是钻研底层技术。老师可以在教学中结合基础软件开发中出现的问题,给学生布置作业或课题。如果这种研究能够蔚然成风,时势造英雄,我们有理由期待出现中国的林纳斯!
  只要搞定了Matlab,形成了行之有效的经验与做法,再逐个把其余的基础工具软件进行替代就容易多了。这个过程不仅可以将收费软件换成免费软件,为今后节省大批开支。更重要的是培养锻炼队伍,让中国软件研发从集中在应用科技层面逐渐下沉,形成自己的基础研究人才积累,为下一轮科技革命做好储备。还可以加强与世界开源运动的交流,增强中国软件影响力与号召力,让中国的产品与服务加快走向世界。
  进行基础软件的开源替代是我们必须要走的道路,负重前行路阻且长,我们要做好长期的准备。但我们应当坚信,只要我们能顺应世界新技术趋势的发展要求,符合世界开源、开放文化的前进方向,保护世界最广大人民分享智慧产品的根本利益,就必将取得胜利。
  未来中国软件业的发展,必将对我们的创新创造能力提出更高要求。应该虚心承认,现在我国的创新能力与影响力比欧美还有很大差距,这从当今世界最受欢迎开源项目仍由欧美主导就可得知。欧美在基础软件方面的创新为什么能够源源不断?他们的创新之道是什么?我们可以学习哪些经验?我将在本文的下篇《道与法道》中再讲。
拓展阅读:
背景简介:本文作者陶卓彬,毕业于解放军理工大学,曾在军队技术部门从事软件开发十余年,并多次获得军队科技进步奖。现在北京某大学校企从事教育开发工作。长期关注互联网、软件领域课题。本文于2020年7月5日年发表于微信公众号 跟陶叔学编程禁用Matlab,美国又给我们创造一次机会?(中)顺势,风云之声获授权转载。
责任编辑陈昕悦
继续阅读
阅读原文