知乎热议:中国重新开发 MATLAB 要多久?网友:至少十年!

公众号关注 “GitHubDaily”

设为 “星标”,每天带你逛 GitHub!

【导读】近日,哈工大、哈工程 MATLAB 被禁用一事还在持续发酵。有关国内重新开发 MATLAB 需要多久,知乎上发起了热议。有网友认为,基础功能开发替代品不难,但重构 Simulink 需要至少十年。

随着哈工大、哈工程 MATLAB 被禁用一事还在持续发酵,有关中国开发 MATLAB 需要多久的问题上了知乎热榜。

 

有网友认为,基础功能开发替代品不难,开源软件也可以短期内解决短缺问题,但想要实现 MATLAB 的复杂生态需要至少十年。

想要解决软件依赖问题,最重要的就是要加快替代软件开发,同时规范商用软件市场,让国产软件有发展空间和用武之地。

那么国内开发 MATLAB 需要多久呢?

复制基础功能不难,重构 Simulink 至少需要十年

1、数十年积累的复杂生态难以超越

大部分人表示,基础功能勉强可以替代,但真的要想实现 MATLAB 的复杂生态还需要至少十年的时间。它背后的生态,算法,是集齐大批各个行业的有代码能力和算法能力的博士工作数十年积累而成的。

读者表示,「用过 MATLAB 的人都知道,效果优化的非常好,试想就算法优化咱们能数年内做到 MATLAB 现在的水平吗,我真不希望大家盲目乐观。」

如果只是实现一些基础功能,MATLAB 完全可以由 Octave,高仿版 Scilab,或是 Python 和走在学术前沿的 Julia,就足以满足至少 80% 人的需求。  

     

而 MATLAB 的 Simulink 和各种领域的 toolbox 是需要不断积累经验,在现实工业、应用场景不断交互打磨,在时间上需要不断完善,才可以成型,这些是无法进行复制的。

 

重构 Simulink 不现实,Simulink 工具包涵盖的专业广泛,只能是各自领域进行重构,然后由某个公司去整合。

特别是 MATLAB 内部的 bug 修复和算法成熟和稳定性,一个算法的成熟是需要时间积累和实践验证的。

投入大量时间是一方面,还有许多人可能会高估了其真实成本,慢慢的迭代,进步,在科研领域和工业领域的试错成本也是非常巨大的。

 

另外,对于工程师和科研工作者,MATLAB 不仅仅是一个计算软件,还是一个百科全书。还包括各个行业入门教材的帮助文档,示例代码等,这种积累又怎么能轻松复制呢?

2、MATLAB 线性代数库基于 MKL,而即使开源项目也绕不开 MKL

MATLAB 的线形代数库基于 Intel 的 MKL,而 MKL 是针对 Intel 的 CPU 专门优化过的,目前也没有合适的国产 CPU 可以替代 Intel,即使有一些开源项目有类似功能比如 Eigen3,但它的底层还是 MKL,所以绕开 MATLAB 和 Intel 重新开发一个高性能线性代数库难度很大。

 

所以按照这种观点,中国重新开发 MATLAB 并达到相应的水准,耗时会非常长,至少十年。

一句总结很精辟,真正开发一个像 MATLAB 这样的软件,难度不亚于开发一个鸿蒙系统。

          

有希望,短期内先解决有无

对国产开发未来有信心的网友主要提到了以下几个观点:

 

1、MATLAB 本身已经略显颓势,禁用提供了一个契机

 

有网友表示,即使不是因为被禁用,MATLAB 逐渐被替代也是大势所趋。现在用 Python 做科研和 MATLAB 做科研已经分成了两大派,MATLAB 派处于劣势。

 

而且目前 Python 在科研中的活跃度相比之下要高很多。

       

MATLAB 上月流行度则不足 0.90%。

知友表示,「MSC Easy5 甩 Simulink 几条街。」感觉是里子和面子的问题。

有观点对上述提到「绕不开 MKL」进行了反驳,指出 MATLAB 线性代数库基于的 MKL 虽然不是开源的,但可选用国产良心 openBLAS 作为替代,在同样使用 simd 和多核并行的前提下这两者的性能最差也应该保持在一个数量级之内。

 

2、短期内先解决有无的问题,再考虑长期。

 

从市场的角度,从头开始开发一个 MATLAB 显然不现实。

 

如果事情真正严重到一定程度,倾尽全力,组织现有代码和工具,可以拼凑起来一个 MATLAB。开源软件虽然性能一般,但是能立刻解决有无的问题。

有网友建议,在当前资源的基础上,开发专门针对 MATLAB Simulink 的产品,做个新时代的仿真建模平台,不求全面只求针对性地解决短缺的问题。

 

当然这个过程里,人才培养和性能优化还需要漫长的时间。但是能够短期内解决有无的问题。

 

3、MATLAB 替代不难,只是做的早培养了用户习惯

 

也有读者表示,就好比禁用了 Windows 系统我们还有 Linux 一样。

 

读者当中,一位数学教师表示,「我没那么悲观。作为数学专业,虽然我用的是 MATLAB,但是我知道我用的很多东西无非是数学,很多我懒得读别人代码就自己看数学原理自己编。他禁用了我明天就可以用 Python。而且我的学生基本都用的是 Python,开源的。没有大家想象的那么难,只是因为他先做了,培养了用户习惯,所以一直没有后来者。」

大家做不出微信替代品不是因为开发不出来程序。是开发出来也没法占领市场,用户已经习惯。很多人说 office 特别难,但还出现了金山办公。

 

从这个比喻来讲,想开发一个 MATLAB 不难,但是想培养一样的用户基础占领市场是有很大难度的。

国产工程软件路在何方?

归根结底,先不谈能不能替代的问题,这件事敲响了一个警钟,即国产工程软件路在何方?

 

MATLAB 的源代码是用三种不同的语言编写的,即 C,C + + 和 Java。

 

一位做从 C/C++ 开始做工程软件开发的网友表示,开发本身不难,开发多久难说。

 

他认为,「禁用 MATLAB 的真实影响是很小的。MATLAB 最大的竞争力是已经培育好的用户,很多工科学生读本科的时候就学到怎么用这个软件了。但是,MATLAB 并没有掌握不可替代的技术,它的计算方法都是可以参见相关论文,学术界也开发了很多可以具有替代功能的开源工具。此外,MATLAB 越开发越臃肿,越来越耗内存。」

 

「工程软件的核心算法大多不是软件公司自己开发的,而是从已有的获得广泛认可的文章中获得的。计算软件公司即使自己开发了一套新的方法,也会发表相应的文章以获得学术界和工业界的认可。」

 

所以,问题不在于开发,而在于一直以来,国产工程软件缺乏市场和用户。

 

相比之下,MATLAB 多年来形成的用户生态,已确立了在学术界的地位,研究人员做论文就需要采用它的格式和数据。如要开发新的软件就要兼容,无法从一开始就取代 MATLAB,这需要时间。

像 MATLAB 一类商业化很好的工程软件最大竞争力来源于市场和用户

 

原因有二。

 

第一,工业界一般不喜欢更换新软件,除非新软件有原软件没有的,通常软件的价格并不是主要考虑的因素。在市场已经被国外软件占据的情况下,本土软件再想进入工业界十分困难。

 

第二,工业软件的学习成本非常高,用户培养起来比较难。事实上,很多工程软件从大学就已经开始培育用户,一个使用惯了其他软件的工程师也不大会切换到一个新的软件上去。

 

所以本土开发的软件想进入市场非常困难,新开发软件的用户生态很难在短期内建立。从这个角度讲,国产工程软件才是真正任重道远。有了真正完善的用户生态,才不再惧怕未来的卡脖子。

参考链接:

https://www.zhihu.com/question/400835896/answer/1283550638

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

---

由 GitHubDaily 原班人马打造的公众号:GitCube,现已正式上线!
接下来我们将会在该公众号上,为大家分享优质的计算机学习资源与开发者工具,坚持每天一篇原创文章的输出,感兴趣的小伙伴可以关注一下哈!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值