【新智元导读】“MATLAB热”已经持续了整整两周,关于MATLAB被禁后中国研究人员如何应对引发了热议。 近日,国产软件TRUFFER表示将在一年内全面实现科学计算和图形功能,三年内全面实现Simulink,并拥有100%自主版权源代码。 这句话将TRUFFER从一个默默无闻的小软件推到了风口浪尖。
MATLAB在哈尔滨工业大学和哈尔滨工程大学被禁已经两周了,但关于MATLAB的讨论却从未停止过。
大多数人只专注于寻找MATLAB的替代品,但最近,一款国产软件TRUFFER挺身而出:我是MATLAB的替代品。
一时间,众人哗然。 要知道,在寻找“替代品”的道路上,科研人员着眼于结合各种主流开发软件来替代功能,而让国内企业开发新软件才是“不得已”的事情。 现在有一款国产软件被“浏览到海口”,着实让科研人员兴奋又好奇。
“默默无闻”的TRUFFER的野心:一年内实现科学计算和图形功能,三年内完成Simulink
在进入这款“大名鼎鼎”的软件之前,我们先来了解一下该软件背后的公司。
从规模来看,这家公司并不是很大。 它成立于2002年,根据官网介绍,最初的工作重点应该是图形软件开发。 目前拥有多文档管理、联合高资产管理、数控加工模拟和“独创”小工具四种产品。
但从团队成员公布的年资来看,他们都是“老程序员”——分别拥有23年、25年、30年的编程经验,确实是丰富的经验。
虽然有小型仿真工具,但该公司的主打产品确实无法与MATLAB相比。 另一方面,它成立了18年却保持匿名,其“铁杆”程序员也保持匿名。 这家公司充满了神秘色彩。
接下来我们就来看看这款备受期待的产品:TRUFFER。
首先是他的官方账号在MATLAB讨论中发布的雄心勃勃的声明:
“半年内实现70%的MATLAB科学计算和图形显示;1年内实现100%;3年内全面实现Simulink;100%独立版权源码;三维、四维图形显示没有#openGL#等组件的支持,短期内在综合性(需要积累)、高性能并行计算(需要厂商支持)、专业扩展工具箱(第三方支持)等方面会稍显落后,大家一起工作)等等,但是足以满足大家90%的日常科研需求,我们承诺至少10%的功能会比MATLAB更好、更好用。
“满足大家90%的科研需求,10%的功能比MATLAB更好更好用”确实是一个很强的“卖点”。 我们首先看一下TRUFFER的部分源代码树:
可以看到,这个架构设计和MATLAB的一些功能还是很接近的,核心就在于一些矩阵运算。 根据官方公布的数据,可以完成核心操作,并且绘图效果非常好。
以矩形域最小二乘曲面拟合为例。 下图中的三维显示核心没有openGL,完全拥有自主知识产权。 拟合结果实际上是一个六维曲面。
还有TRUFFER用于SR-71 Blackbird超高速流场模拟、读取OBJ文件、独立三维渲染等的基础图像。 而且它是 100% 独立于 C# 的代码,没有使用 openGL 或 directX。
TRUFFER官方在回应中也概述了当前软件的使用场景。
第一个是利用实验数据绘制曲线并推导公式; 科研人员已经获得了一些数据,希望能够绘制并拟合。 二是三维有限元计算(简单物体); 就是解决稀疏矩阵。
并且 TRUFFER 可以向研究人员提供源代码。 知乎用户@harry Zhou 提供了 TRUFFER 发给他的源代码。
三个源文件分别是CMatrix.cs、Complex.cs、Matrix.cs,分别对应复矩阵、复数、实矩阵的基本运算。 至少在代码架构上,TRUFFER能够完成目前的设计场景。 当然还有一些常规的矩阵运算。
对代码稍有了解的开发者看到这段源码就会知道,TRUFFER 确实还处于早期开发阶段。 但从公司与感兴趣的开发商的互动来看,TRUFFER的公司其实是一家比较有诚意、有远大理想的公司。 毕竟“它满足了大家90%的科研需求,10%的功能比MATLAB更好用”并不是所有软件公司都这么说的。
“只完成1%就来开发布会”的特鲁弗:有诚意但也有差距
对 MATLAB 有一点了解的开发者应该已经意识到:TRUFFER 是根据 MATLAB 设计的,但完成的内容确实只是冰山一角。
这款软件自近日进入公众视野以来一直饱受争议,主要有以下争议点。
1、“防伪”自主研发:贝壳Octave
知乎网友@立DPang指出,TRUFFER是一个覆盖Octave的“假”自研软件。
不少知乎用户表达了同样的观点:开源代码并不意味着交出版权,并指责TRUFFER侵犯了Octave的版权。 对此,一些获得开源代码的开发者称TRUFFER为“名不平”。
是否是shell可以通过阅读源码来识别。 按照受访者的说法,TRUFFER源码应该没有问题。 纯手工制作,不涉及脱壳问题。 至于实际的算法本身,几乎没有变化,因此很可能会导致类似的代码结构。
知乎用户@lonely在唱歌时说的其实很客观。
如果真的深究“脱壳Octave”这个问题,建议有兴趣的研究者向TRUFFER官方索要一份源代码,再阅读一遍。
2、“技术差距”过大,产品进度堪忧
虽然TRUFFER已经发布了源代码,但总共只有几千行,实现的功能也都是最基本的。 连求解线性方程组的代码都没有发布,实现的函数也基本都是一维的。
就连之前为TRUFFER发声的匿名老板也有些难过。
甚至有人怀疑这是否是同学布置的一个大作业的源代码。 毕竟这段代码确实有点简陋。 看看知乎用户@李雪梅的说法。
知乎用户@architect在Mathmatics工作,当他看到TRUFFER时,不禁既兴奋又失望。
不过,TRUFFER从一开始就表示这是“第一版”,为上述几乎所有质疑提供了“看似合理”的解释。 由于还处于开发初期,功能不完善也属正常。 所以@武伊奇说的很对。
对于以各种态度关注TRUFFER的人来说,他们还是希望TRUFFER不要在“取代MATLAB”的蓝图中“听子弹飞”,而是“打枪落地”。
备受关注的MATLAB开发问题?听听中科院鲍云刚研究员怎么说
“MATLAB热”持续了两周多,众多专家参与讨论。 其中,中国科学院计算技术研究所先进计算机系统研究中心副主任鲍云刚教授在CCF YOCSEF杭州论坛上发表了自己的观点。
这篇演讲对计算界产生了深远的影响。 包教授的微博甚至被转发了近4000次。
鲍教授的原文强调,最关键的是做出像MATLAB这样的产品并加以应用,而不是为了“科研成果”而发表论文。 同时,我们要树立持久战意识,不能急功近利。 我们必须承认目前与对手的差距并迎头赶上。
抛开MATLAB这个软件,我们在思考如何解决“MATLAB被禁”这一紧迫问题的同时,还需要考虑未来如何像MATLAB一样做好工作,创造出能掐住别人脖子的技术。 不要试图“模仿”别人所做的事情,而是要做真正属于“中国技术”的东西。
最后,回到 TRUFFER 软件。 不得不承认,目前这款软件的功能距离“取代MATLAB”的目标还很遥远,甚至它引发的讨论也有“炒作”之嫌。 然而,有一家公司可以说“1年内100%完成实施;3年内完成Simulink实施;100%独立版权源代码”。 本身就是一件值得期待的事情。
技术之间的差距是不可否认的,最初的产品可能很简陋,但不应该被“压制”。 毕竟,一切复杂而伟大的成就都是从最简单的步骤开始,一步步积累起来的。
希望TRUFFER能够实现所描绘的宏伟蓝图,在未来的发展中不负众望。
附包教授原文:
“很多人都在思考如何解决“Matlab被禁”这一紧迫问题。大家回顾了中国工业软件发展的阵痛,批评了国内盗版、知识产权保护、重硬件轻软件等一系列问题。他们还提出了很多好的建议,比如Matlab各种功能的开源软件替代品,这些也算是“昨天和今天”了。
现在我想和大家讨论一下“明天”。 我们每个人都可以问自己一个问题:从现在开始,给10年,甚至20年的时间,我们能创造出能够掐住别人脖子的东西吗? (并不是说你真的想掐死别人,而是说你想成为别人离不开的东西。)如果从这个角度来看待这次“Matlab 被禁”事件,那么或许可以给我们带来启示。更多灵感——我们都知道Matlab最初只是新墨西哥大学Clever Moler教授在20世纪70年代用于教学的一个小工具软件。 那么为什么几十年后它就成为了卡在我们脖子上的工具呢?
我们来梳理一下Matlab开发过程中体现的几个概念:
1. 创造东西,而不是发表论文。
Matlab网站上有Moler教授本人于2018年撰写的Matlab简史。 他在开头写道,他的团队在1971年和1975年申请了NSF的两个项目,目标是“探索开发高质量数学软件的方法、成本和资源”。 他本人也认为这两个项目在某种程度上是失败的,因为他们没有发表论文。 他们只开发了两个软件:一个是EISPACK,另一个是LINPACK。 而且,这两个软件并不能说有多大的学术创新,因为EISPACK将1965年至1970年发表的论文中用Algo60编写的算法翻译成Fortran,而LINPACK则直接用Fortran重写。
2. 东西用完后要好好利用,而不是扔掉。
虽然EISPACK和LINPACK都没有论文,学术创新性看上去也不是很高,但确实是两个非常有用的软件。 EISPACK的开发团队在1974年写了一份用户手册,我在Google Scholar上查了一下,被引用了1800多次。 它在 20 世纪 70 年代和 80 年代被广泛使用。 LINPACK是世界超级计算机Top500的基准测试程序,可以说影响了世界超级计算机的发展。
3、利用教学场景,而不是把教学当成一种负担。
Matlab是Coler教授希望在教学过程中应用EISPACK和LINPACK的产物。 如果不是Moler教授用心教学,让学生更好地掌握线性代数和数值分析软件查壳工具,更容易使用EISPACK和LINPACK这两个软件,他就没有动力去写一个Matlab脚本他自己。 利用工具对这两个软件接口进行封装,方便学生使用。
如今,由于恶劣的科研竞争环境和考核压力,很多人把教学视为一种负担,认为会影响科研。 但教学其实是尝试新技术和工具的最佳应用场景,因为试错成本很低,而且学生的创新和主动性也有助于改进优化技术和工具。 Matlab最终商业化是因为Coler教授在斯坦福大学给学生授课时,有两个学生对Matlab非常感兴趣,并主动提出用C语言重写并移植到IBM PC上。 许多技术最初是在课堂上开发的。 例如,RISC架构是David Patterson教授在伯克利分校的课程实验。
第四,树立持久战意识,不求速胜。
如果你坚持一件事数十年,累积的效果将是惊人的。 中国今天卡住的东西,几乎都是别人二十多年积累的东西。 自 Matlab 第一个版本问世以来,已有 40 年的历史。 自 20 世纪 80 年代初第一代 EDA 软件问世以来软件查壳工具,已有近 40 年的历史。 从1970年左右英特尔第一代微处理器问世至今,已有50年的历史。台积电自1987年成立以来,已经积累了30多年的经验。事实上,学术界有很多有影响力的著作都是多年积累的产物。 我们可以看一下ACM系统软件奖。 基本上获奖软件都是几十年来积累的。 比如LLVM持续优化了17年,Eclipse也持续优化了17年。 它已经优化了19年,Wireshark已经优化了22年,Coq已经优化了31年,GCC已经优化了33年。
我们来仔细看看Matlab和对应的公司MathWorks。 可以说是持久战的典范。 MathWorks 成立于 1984 年,当时只有 1 名员工。 第一份收入是 1985 年以 500 美元的价格向麻省理工学院出售 10 个 Matlab 版权。 MathWorks 早期非常低调。 有一个笑话说,前七年员工数量每年翻一番。 1984年有1名员工,1985年有2名员工,1986年有4名员工。 直到七年后的1991年。 仅有128名员工。 与当今许多初创公司相比,这个增长速度就像蜗牛一样。 但他们取得了突破,继续围绕Matlab添加功能,使Matlab成为业界领先的工具软件。 1997 年,MathWorks 的收入达到 5000 万美元,拥有 380 名员工。 如今,MathWorks 2019 年营收为 10 亿美元,在全球拥有超过 3,000 名员工和超过 400 万用户。 虽然成交量不大,但其实我们应该学习这个模式——不断积累。 将一项技术完善,成为某个细分领域的隐形冠军。
综上所述,当我们在思考如何解决“Matlab被禁”这一紧迫问题时,我们也需要考虑未来如何像Matlab一样做工作,创造出能掐住别人脖子的技术。 这需要我们做出改变。 、观念的转变、行动的转变。 至于具体的改变,我认为前面总结的四点可以作为出发点:(1)做东西,而不是追求发表论文;(2)把东西付诸实践,用它而不是做完就扔掉。 。 (3)运用到教学场景中,而不是把教学当成一种负担。 (四)树立持久战意识,不求速胜。
——以上为CCF YOCSEF杭州·Matlab禁专场演讲”
参考链接: