我们都知道美国政府不是一只好鸟,但当它对高校师生和学术圈下手的时候还是让人始料未及。
5月22日,美国商务部将中国十三所高校列入了“实体名单”,从法理上开始了对中国高校科研发展的围剿。
6月9日,美国司法部起诉了和武汉理工大学有合作的美国院士,哈佛大学原化学与化学生物学系前系主任Charles Lieber。理由是该院士未如实报告与中方的合作情况,最高可获刑五年,保释条件之一是不再接触相关中国合作机构。同一天还有其他中国学者也被起诉,而且不得保释。一时间,中美学术交流之路笼罩在浓密阴霾之下。
上周,这只霸权主义的鸟儿又作妖了,这次的禽鸟之声是MATLAB。
谁也没想到,MATLAB被首先动用直接制裁国内高校
6月6日,哈工大的师生在正常使用MATLAB时,突然跳出了反激活通知,但是还能使用。到了第二天启动 MATLAB 时就显示授权许可无效,网页也无法登录哈工大域名的账户。几乎同一时间哈工程的师生们也遇上了相同的问题。
事情发生后,哈工大、哈工程师生及校方立刻与开发MATLAB的公司——MathWorks进行了严肃的交涉。现在已经可以确定,两大学的相关授权已经因为美国最新的进出口名单而终止了。
对大学下手令人不齿,已经付费的软件突然停止授权又过于霸道。此事一经曝光,就频繁登上热搜。外交部也做了克制但是明确的回应,指出这是“非常错误的消极言行”,并认为美国的制裁最终将伤害到自身。
为什么是MATLAB?
美国首先祭出禁用MATLAB这招似乎在意料之外,但细想又在情理之中。MATLAB作为一个跨平台的数学计算软件,覆盖了几十个相关学科的需求,在学术圈中影响力很大。笔者在文献检索平台Web of Science上进行了搜索,有近十万篇英文论文使用了这个软件进行数据分析、绘图和应用开发。事件发生之后,舆论的反响也证明了这一点。
其实有很多专业软件比MATLAB技术要求更高,在特定学科内更无可替代,但是影响力不如MATLAB那么广泛。有些专业软件,除了小学科的人之外几乎都没听过。在中美贸易战日益政治化的今天,先禁用知名度更强的MATLAB无疑能起到先声夺人的效果,也有利于美国政客炒作议题。
另外,禁用MATLAB虽然不能釜底抽薪,但能起到立杆见影的效果。作为一个主打单机使用的软件,MATLAB从发明的第一年起就面临着盗版问题。编译原理告诉我们,不存在无法破解的大规模单机软件。因此MathWorks不是从软件销售或者加密上想办法,而是从规范使用上下手。
该公司和全球主要的英文学术出版商都保持了良好的关系,并且豢养了一大批熟悉当地政策并有一定背景的法务。一旦有学者的论文采用了MATLAB,在发表时就会被要求拿出MathWorks公司的授权。如果拿不出来,轻则论文无法发表,重则还会面临法律上的纠纷。
所以,哈工大、哈工程的师生虽然可以继续使用盗版的MATLAB进行科研,但是完成的论文将很难投在高水平的英文学术期刊上。在现行的评价体制下,哈工大、哈工程师生的成果有被低估的风险。
另外MATLAB中有一个称之为Simulink可视化编程仿真工具,可以用傻瓜式的拖动进行很多问题的建模,被广泛用于通讯、控制、信号处理、视频处理和图像处理系统。如果没有Simulink,通信、控制、信号、车辆等专业的研究效率都会受到影响。哪怕不用Simulink,很多这方面的仿真软件也只提供MATLAB的接口,是MATLAB核心竞争力之一。
Simulink模拟工业机器人
因此美国把MATLAB推到前线,既造成了很大的舆论,又有实在的效果。
被禁用对大学师生到底影响几何?
由于MATLAB是一个复杂的软件,因此讨论MATLAB被禁用的影响,也必须分层次进行讨论。
MATLAB是一种可以由MATLAB语言操作的软件,MATLAB语言的简易性是使用者喜欢它的主要原因,很多中国大学的非计算学科甚至只教授这种语言。提出这种语言的Cleve Moler教授在新墨西哥大学任教期间希望学生不用学习复杂而且难记的Fortran语言,即可享受到线性代数和数值分析的魅力,于是编写了一个简单的交互式矩阵计算器。
后来这个计算器就变成了MATLAB语言,MATLAB语言在当时冲击了人们关于数学计算语言的定式。时至今日,当年的数学计算的霸主Fortran已经几乎无人使用,而MATLAB一直都保持了相当的人气。
这主要是因为MATLAB充分降低了学习门槛,在计算速度和易写当中保持了一个很好的平衡。与Fortran相比MATLAB是一种动态语言,可以逐步调试,而且可以直接运行,免去了编辑-编译-链接-加载-执行等静态语言繁琐的步骤。它把常用的功能都变成了关键字,避免了不懂编程的人去处理各种库的麻烦。最后,MATLAB简化了控制流,只保留了循环、判断、定义函数等最简单的几种语义。下图是1981版MATLAB的关键字,其中和控制流相关的只有几个,今天它的关键字已经多达近千个,但是必须掌握的控制流关键字就在10个左右。
也就是说学会了这10个关键字的用法加上善于查询MATLAB的帮助手册,就可以进行数学计算、绘图和仿真了,可谓是非常方便了。
81版matlab的关键词
但这部分其实是比较好替代的,Scilab、Octave等开源软件都可以很好的进行替代。其中Scilab与MATLAB关键字的相同度在95%以上,Octave与MATLAB关键字的相同度在99%以上,普通的MATLAB的程序拿到Octave几乎可以不做修改的跑起来。
Scilab和Octave都是开源软件中MATLAB的有力竞争者
更何况今天的MATLAB语言不过是在英特尔编写的MKL(数学核心函数库)上做的一层语法糖。编程基础好的人完全可以直接调用MKL完成研究所需要的科学计算,遇上循环多的测试,这种方法能比MATLAB快十倍以上。
退一万步说,非得用MATLAB处理数据,也可以把绘制图表的数据用MATLAB处理后存储成Excel的格式,用其他软件进行绘图。
MATLAB的第二个层次是多年积累下来的生态,比如说第三方用MATLAB编写的程序库。论文里总不能说研究用到的程序库都是自己写的吧?
但是这个问题其实也不大,首先某些学科的研究者早就利用更加开放的工具了,比如研究神经网络的一般都用开源的Python及其相关库,研究机器学习的用开源的Julia及其相关库的也很多。
对于其他学科的研究者而言,由法国国家信息、自动化研究院的科学家们开发并开源的Scilab在数据分析、图像处理 、电路仿真、控制系统等十余个领域也有比较丰富的程序库,可以满足一定的要求。而由GNU赞助开发的Octave,其相关库也非常丰富,从工具库的齐全上来说,笔者认为开源软件可以实现约70%-80%。
最大的问题在于之前提到的Simulink。哈工大和哈工程被禁用MATLAB之后,网友们集思广益列出一系列替代选择,但是其中绝大多数软件和程序没有类似于Simulink的模块和库。就目前来看,开源软件中只有Scilab有类似的Xcos,Xcos也是一个可视化编程仿真工具。经过亲身体会,其功能大约有Simulink的30-40%,还有不小的差距。
但是Simulink本意毕竟是一种针对不会编程者的仿真工具,Simulink的全部功能通过严肃的编程都能实现,而且已经有相当多的仿真程序库可供调用。因此对于哈工大、哈工程里真正重要的研究我们不必过于担心,更重要的是美国将魔爪伸向中国高校,我们该如何应对。
中国应全局统筹自强不息
MATLAB被禁用相对来说并没有那么可怕,因为多少还有一些替代品。国内院校使用的EDA、CAD类辅助设计软件,主要也是来自美国公司,而且国内鲜有替代品。在计算机辅助工程(CAE)领域,国内虽然有替代品,但从界面、方便性和可靠性上来说与国外的产品差距不小。
面对可能进一步的施压,我们必须全局统筹,拿出一整套方案。不能头痛医头,脚痛医脚,要做好打持久战的准备。不能今天MATLAB被禁用了,就一窝蜂的搞数学计算软件。明天工程有限元、有限差分法软件被禁了,又一窝蜂的搞CAE软件。
高校软件被禁,最直接的影响就在投论文上。中国的出版商肯定不会为了美国指定的“清单”不准国内的学者出版。但是国内期刊在学术评价上长期遭遇制度性的歧视,中文写的国内期刊无论如何好,很多地方最多比照SCI四区进行评价。而英文论文只要被SCI收录,至少都是四区。
在美国制裁手段日益逼近学术圈的当下,建立新的学术评价体系不仅非常必要,而且已成为迫切需要解决的问题。
当然中文期刊自身也存在着很多问题,很多甚至是学术道德问题。今年初《冰川冻土》和《银行家》两本核心期刊,分别被发现存在学术不端行为,再次揭开了中文期刊存在的这些问题。因此中文期刊必须建立更严格的监督机制,这样才能使得学者们愿意在中文期刊上投稿。
这次MATLAB被禁,有学者认为“中方回应需要有恰如其分的评估,譬如由国家与企业对替代的开源软件做深度开发”。笔者完全同意这一说法,但是想换一换说法——替代MATLAB的软件,中方必须做深度开发,必须走一条自强之路。
这么说,是有感于自主可控软硬件发展的现状。正如之前的分析,MATLAB语言和平台本身科技含量不高,可替代性最强。而积累的工具库可替代性就相对弱一些了,Simulink以及matlab为大学和企业定制开发的特色功能则更加不可替代。
按照需要什么,我们就研究什么的思路。发展自主可控软件的人应该首先考虑深度开发开源软件实现替代Simulink。但是现实是仿造另一个MATLAB语言甚至是套皮一个成果的舆论影响更大。而且国内对于自主软件的发展,尤其是商业收益上规划非常不合理。很多人只看到生态拥有者能获得的收益,看不到为了培植生态付出的艰辛。
仿造另一个MATLAB语言的国产平台,如果发展起来,就意味着位于生态圈的中心,真金白银滚滚而来。无数国产软硬件看不破、放不下的就是这个迷梦。但是别人比你发展的早,开发团队又比你强大,仅仅是走一遍回头路,凭什么就能取代原有霸主的地位?
并非危言耸听,回顾过去,这种迷梦加上弄虚作假就是“汉芯”,加上言过其实就是编程语言“木兰”,加上引进吸收消化不良就是“华芯通”,一堆迷梦自我相加就是犹如过江之鲫鱼般死去的那些“国产系统”和“中文编程”。
尤其是中文编程,在编译框架和宏编程技术已经极为先进的当下,模仿一种语言,将关键字替换为中文已经是非专业人士也可以做到的了。而且关键字因为数量有限而且固定,对方便理解来说其实没有变量名和函数名重要。目前主流的编程语言都支持以中文为变量名和函数名,但是一些库因为历史原因支持这些变量还有问题。
从提升中文影响力和方便中国人理解的角度出发,解决各语言的官方库对中文的支持显然比造一个“中文编程”强得多。但是前者主要是国外开发者在做,后者目力所及都是国内的开发者在反复写这样的程序。
说了这么多,其实就是希望国内的应对计划能综合统筹,集中好资源和开发力量,真正踏踏实实地深度开发,真真切切的改善需求迫切的“痛点”。真能如此,则美国的黑枪,莫说是MATLAB一枪,就是十枪百枪万枪也都无法阻挡中国科技发展进步的步伐。
来源:oschina
链接:https://my.oschina.net/u/4316165/blog/4314244