前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个国产软件TRUFFER站出来了:我就是MATLAB的替代品!

一个国产软件TRUFFER站出来了:我就是MATLAB的替代品!

作者头像
新智元
发布2020-06-29 15:01:54
1.2K0
发布2020-06-29 15:01:54
举报
文章被收录于专栏:新智元新智元

新智元报道

来源:知乎

编辑:舒婷、白峰

【新智元导读】「MATLAB热」整整持续了两周,关于MATLAB被禁之后中国科研人员如何应对引发了热烈的讨论。近日,国产软件TRUFFER称:一年内完全实现科学计算与图形功能,三年内完全实现 Simulink,100% 自主版权源代码,这一声明让TRUFFER从一个籍籍无名的小软件被推上风口浪尖。

距离哈工大、哈工程MATLAB被禁已经过去两周,但是关于MATLAB的讨论从未停止。

大部分人只是着眼于寻找MATLAB替代品,但是,近日,一个国产软件TRUFFER站出来了:我就是MATLAB的替代品。

一时间,众生哗然。要知道,寻找「替代品」的道路上,科研人员都专注在将各类主流的开发软件结合以替代功能,让国产公司开发新的软件都是「最末」的事情。现在有一个国产软件出来「夸下海口」,确实让科研人员兴奋又好奇。

「籍籍无名」的TRUFFER的雄心壮志:1年内实现科学计算与图形功能,3年内搞定Simulink

走进这个「声名鹊起」的软件之前,先看看软件背后的公司。

论规模来看,这家公司并不是很大,成立于2002年,就官网介绍而言一开始工作重心应该是在图形软件开发上,旗下目前有四款产品,分别是多文档管理、联高资产管理、数控加工仿真和“原本”小工具。

但是就公布的团队人员从业年限来看,都是「老程序员」了——分别具有23、25、30年编程经验,确实是经验丰富。

尽管有小的仿真工具,但这家公司的主要产品和MATLAB确实搭不上边。另一方面,成立18年却不显山不露水,「骨灰级」的程序员不透露姓名,这家公司充满了神秘色彩。

接下来我们看一看这款万众瞩目的产品:TRUFFER

首先是其官方号在MATLAB那条讨论下放出的壮志豪言:

「半年内实现 MATLAB 科学计算与图形显示的 70%;1 年内 100% 全部实现;3 年内完全实现 Simulink;100% 自主版权源代码;无需 #openGL# 等组件支持的三维、四维图形显示。短期内将在周全性(需要积累)、高性能并行计算(需要厂家支持)、专业的扩展工具箱(第三方支持,大家一起努力)等方面会稍微落后,不过足以应付大家 90% 的日常科研需求。我们承诺,至少在 10% 的功能,比 MATLAB 更好用、易用。」

「满足大家90%的科研需求和10%的功能比MATLAB更好用、易用」确实是一个很强的「卖点」。先看一下TRUFFER的部分源码树:

可以看到这个架构设计和MATLAB部分功能还是很贴近,核心在于矩阵的一些运算。根据官方发布的数据来看,核心运算都能够完成,并且画图的效果非常不错。

以矩形域最小二乘曲面拟合为例,下图的三维显示核心没有openGL,完全是自主知识产权的,拟合的结果实际上是一个六维曲面。

还有TRUFFER用于SR-71黑鸟超高速流场仿真的基础图片,读取OBJ文件,自主三维渲染。并且是100%C#自主代码,没有用openGL或directX。

TRUFFER官方在回应的时候也勾画了一下现行软件的使用场景

第一个是用试验数据绘制曲线,导出公式;科研人员获得了一些数据,希望对其进行画图拟合。第二个是三维有限元计算(简单物体);就是解稀疏矩阵。

并且TRUFFER是可以为研究人员提供源码的,知乎用户@harryzhou就提供了一份TRUFFER发给他的源码。

三个源文件分别是CMatrix.cs,Complex.cs,Matrix.cs,分别对应了复数矩阵、复数和实数矩阵的基本运算。至少在代码架构上,TRUFFER是能够完成它现行设计的场景的。当然还有一些常规的矩阵运算。

懂一点代码的开发者看到这个源码就知道,TRUFFER确实还在开发初期。但是就公司和感兴趣的开发人员交流的情况来看,TRUFFER的公司其实是一个比较诚挚、有大理想的公司。毕竟「满足大家90%的科研需求和10%的功能比MATLAB更好用、易用」不是所有软件公司都说的出口的。

「只完成1%就来开发布会」的TRUFFER:有诚意也有差距

对MATLAB稍微有点了解的开发者们应该已经反应过来了:TRUFFER是照着MATLAB去设计的,但是完成的内容实属冰山一角

这个软件近几日进入公众视野之后实属饱受争议,主要在以下几个争议点。

1、「打假」自主研发:套壳Octave

知乎网友@立党指出,TRUFFER是个套壳Octave的「假」自主研发的软件。

许多知乎用户都表达了相同的观点:开源代码不代表交出版权,指责TRUFFER侵害Octave版权。对此,也有拿到开源代码的开发者为TRUFFER「鸣不平」。

是否套壳,读一读源码就能认知到。按照这位答主说的情况,TRUFFER源码应该是没有问题的,纯手打,不涉及套壳的问题。至于实际的算法本身没有什么可变性,因此很可能导致代码结构类似。

知乎用户@寂寞在唱歌说的这段换其实很客观。

如果真的深究「套壳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教授在1970年代用于教学中的一个小工具软件,那它为什么能在几十年后成为卡我们脖子的利器?

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

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

Matlab网站上有一篇Moler教授自己在2018年写的Matlab简史。他在开头就写道,在1971年和1975年他所在团队向NSF申请了两个项目,目标是“探索开发高质量数学软件的方法、成本和资源”。他自己也认为,某种程度上这两个项目是失败的,因为他们没有发表出一篇论文,他们只是开发出了两个软件:一个是EISPACK,另一个是LINPACK。而且这两个软件也谈不上多大的学术创新,因为EISPACK就是把1965-1970年发表论文中用Algo60写的算法翻译为Fortran,而LINPACK则是直接用Fortran重写一遍。

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

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

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

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

今天,由于严苛的科研竞争环境和考核压力,很多人都把教学当作了一种负担,认为会影响科研。但教学其实是试验新技术、新工具最好的应用场景,因为试错成本很低,而且学生的创新性和主动性,还能帮助改进优化技术和工具。Matlab最终走上商业化,就是因为Coler教授在斯坦福大学给学生上课时,有两个学生对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年卖给了MIT10个Matlab版权,收入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)把持久战意识树立起来,而不是期望速胜论。

——以上为CCF YOCSEF杭州· Matlab被禁之特别论坛的发言」

参考链接:

https://www.zhihu.com/question/403055136

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 新智元报道
    • 【新智元导读】「MATLAB热」整整持续了两周,关于MATLAB被禁之后中国科研人员如何应对引发了热烈的讨论。近日,国产软件TRUFFER称:一年内完全实现科学计算与图形功能,三年内完全实现 Simulink,100% 自主版权源代码,这一声明让TRUFFER从一个籍籍无名的小软件被推上风口浪尖。
    相关产品与服务
    GPU 云服务器
    GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档