查看原文
其他

Matlab 被禁引发的思考:我们如何做出卡别人脖子的技术?

(给程序员的那些事加星标

作者:包云岗(中国科学院计算技术研究所)

【导读】:6 月 6 日左右,有哈工大学生发现无法使用 MathWorks 软件。此事后来在网上引发热议。


19 日,@包云岗 老师在微博上发布他由「Matlab 被禁」引发的思考,「程序员的那些事」已获转载许可。





很多人都在思考如何解决“Matlab 被禁”这个燃眉之急问题。大家回顾了中国的工业软件发展之痛,批评国内的盗版问题、知识产权保护问题、重硬件轻软件等一系列问题。也提出了很多好的建议,比如给了针对 Matlab 各种功能的开源软件替代方案。这些都算是“昨天和今天”的事。


现在我想和大家一起讨论一下关于“明天”的事。我们每个人可以问自己一个问题:从现在这个时间点开始,给 10 年时间,甚至 20 年时间,我们能做出一个卡别人脖子的东西吗?(并不是说真的要去卡别人脖子,而是说要成为别人离不开的东西)


如果从这个角度来看这次“Matlab被禁”事件,那么也许可以给我们更多的是启发——我们都知道 Matlab 最初只是新墨西哥大学 Clever Moler 教授在 1970 年代用于教学中的一个小工具软件,那它为什么能在几十年后成为卡我们脖子的利器?


我们一起来梳理一下 Matlab 发展过程中折射出来的几个理念:


一、把东西做出来,而不是追求把论文发出来


Matlab 网站上有一篇 Moler 教授自己在 2018 年写的 Matlab 简史。他在开头就写道,在 1970 年和 1975 年他所在团队向 NSF 申请了两个项目,目标是“探索开发高质量数学软件的方法、成本和资源”。


他自己也认为,某种程度上这两个项目是失败的,因为他们没有发表出一篇论文,他们只是开发出了两个软件:一个是 EISPACK,另一个是 LINPACK。


而且这两个软件也谈不上多大的学术创新,因为 EISPACK 就是把 1965-1970 年发表论文中用 Algo60 写的算法翻译为 Fortran,而 LINPACK 则是直接用 Fortran 重写一遍。


二、把东西用起来,而不是做完就扔了


虽然 EISPACK、LINPACK 没有产出论文,学术创新也似乎不是很高,但确实两个很有用的软件。EISPACK 的开发团队在 1974 年代写了一本使用手册,我在 Google Scholar上查了一下,到现在已经被引用了 1800 多次,1970-1980 年代使用非常广泛。LINPACK 更是世界超级计算机排行榜 Tops500 的基准测试程序,可以说是影响了世界超级计算机的发展。


三、把教学场景用起来,而不是把教学当作负担。


Matlab 是 Moler 教授想把 EISPACK 和 LINPACK 应用于教学过程中的产物。如果 Moler教授不是用心去做教学,不是为了能让学生更好地掌握线性代数与数值分析,更容易地使用 EISPACK 和 LINPACK 这两个软件,那么他就不会有动机自己动手去写一个 Matlab小工具来把这两个软件接口封装起来,从而方便学生使用。


今天,由于严苛的科研竞争环境和考核压力,很多人都把教学当作了一种负担,认为会影响科研。但教学其实是试验新技术、新工具最好的应用场景,因为试错成本很低,而且学生的创新性和主动性,还能帮助改进优化技术和工具。Matlab 最终走上商业化,就是因为 Moler 教授在斯坦福大学给学生上课时,有两个学生对 Matlab 很感兴趣,主动提出用 C 重写一遍,同时移植到 IBM PC 上。很多技术最早都是从课堂上发展起来,比如 RISC 架构是 David Patterson 教授在伯克利的课程实验。


四、把持久战意识树立起来,而不是期望速胜论


坚持围绕一件事做,几十年后的累积效应是惊人了。中国今天被卡脖子的东西,几乎都是别人积累了 20 年以上的东西。


  • 从第一版 Matlab 算起到现在已经有 40 年,

  • 1980 年代初的第一代 EDA 软件到现在也有快 40 年,

  • Intel 在 1970 年左右第一代微处理器到现在已经有 50 年,

  • 台积电 1987 年成立到现在也是积累了 30 多年


其实在学术界也有很多有影响力的工作也是积累很多年的产物,我们可以看一下ACM System Software Award,获奖的软件基本上都是持续积累了几十年,比如:


  • LLVM 持续优化了 17 年、

  • Eclipse 优化了 19 年、

  • Wireshark优化了 22 年、

  • Coq 优化了 31 年,

  • GCC 则有 33 年


再仔细剖析一下 Matlab 以及对应的公司 MathWorks,可以说是持久战的典范。MathWorks 公司在 1984 年成立,只有 1 名员工。第一笔收入是 1985 年卖给了 MIT 10个版权,收入 500 美元。MathWorks 公司早期很不起眼,有个玩笑称它前 7 年员工数每一年翻一番,1984 年 1 个员工,1985 年 2 个员工,1986 年 4 个员工,直到 7 年后的1991 年也才只有 128 个员工。


和今天很多初创公司相比,这个成长速度就像是蜗牛了。但是他们力出一孔,围绕着Matlab 不断增加功能,使 Matlab 成为一个行业领先的工具软件。1997 年,MathWorks 的营业额达到了 5000 万美元,380 名员工。如今 2019 年 MathWorks 营业额是 10 亿美元,3000 多员工,全球有 400 多万用户。虽然从营业额看并不大,但其实我们更应该学习这种模式——不断积累。把一项技术做到极致,成为某个细分领域的隐形冠军


总结


最后总结一下,当我们在思考如何解“ Matlab被禁这个解燃眉之急的同时,更需要考虑如何才能在未来做出像 Matlab 那样的工作,做出能卡别人脖子的技术。这需要我们做出改变,观念上的改变,行动上的改变。


至于哪些具体的改变,我想前面梳理的四点就算是抛砖引玉吧:


  1. 把东西做出来,而不是追求把论文发出来,

  2. 把东西用起来,而不是做完就扔了,

  3. 把教学场景用起来,而不是把教学当作负担,

  4. 把持久战意识树立起来,而不是期望速胜论。




网友评论


包云岗老师的这篇微博文章引发很多转载,截至我们发文为止已有 3600+ 转发。下面摘录一些网友的评论。




- EOF -




推荐阅读  点击标题可跳转

1、萌妹子语音陪你写代码,一个神奇的 VSCode 插件

2、放弃 MBP 用 8GB 的树莓派4 工作一天,是这样的感受

3、一只 53 万!波士顿动力网红机器狗开售,充电器价格 1 万多


关注「程序员的那些事」加星标,不错过圈内事

圈内事,我在看❤️

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存