聊聊国产工业软件的自主可控的问题。
这两年,面对网络上铺天盖地的标称自主可控的国产工业软件,作为一个长期使用工业软件的人来说,有时候不禁要问“这些所谓的国产软件真的自主可控吗?”当然这可能是汉芯与红芯的遗毒,人们对于国产工业软件也同样抱有怀疑态度,这帮人会不会像汉芯和红芯一样打着自主可控的幌子招摇撞骗?我当然希望他们不会。
自主和可控是两个不同的概念。自主未必一定可控,但不自主则一定不可控、
什么是自主?我购买了正版ANSYS软件,叫自主吗?脑壳不昏的人都知道不叫自主,因为ANSYS是闭源软件,人家只卖了使用权,我们无法对软件进行任何修改,无法添加想要的功能,无法对软件已有的Bug进行修复,总之,除了使用之外什么权限都没有,想要新功能,只能眼巴巴的等着对方更新,人家不更新你就别想用新的功能。这很明显不自主。
但如果国内有大佬把ANSYS公司整个买下来了呢然后把源代码捐出去了呢?此时叫自主吗?应该算自主了,因为可以对源代码进行任意的修改和重新发布了。当然这种事情肯定不会发生,就算ANSYS肯换老板,美国佬也不可能放手的。
不过这倒是给国产软件提出了一种思路,搞开源软件令人不齿,因为背后有各种协议制约,那直接买商业软件总没问题吧,连软件源代码、软件公司、开发人员一锅端,你还敢说我不是自主么?各位大佬们不妨一试,只不过要多花点儿银子。
自主的问题其实相对容易解决,就是获取可用的源代码吗,自己写的自然令人称赞,但是能通过收购的方式收购回来源代码其实也不错。当然不是收购一堆动态链接库,那玩意儿是卵球用没有的。不能修改的玩意儿,买再多回来除了观摩以外也没多大的实际用处。就像前天那篇文章中有道友非要争论QT是否自主?人家那自主指的是你可以将QT动态库自主出售,可没说你可以自主修改QT核心代码,你能帮助QT更新功能么?你不能,你只能基于已有QT代码开发自己的程序界面,这从本质上说其实并没有自主能力,你不还得眼巴巴的等着人家QT更新版本么。当然那些做GUI界面的软件,对于工业软件来说产生不了多少影响,自不自主其实关系不大。
其实国家关注的并不是自主不自主的问题,而是可控不可控的问题。
前阵子美国制裁华为,然后华为就找不到地方制造高端CPU芯片,对于华为来说在CPU芯片制造方面存在不可控的风险。其实美国自己也并没有独立制造高端光刻机的能力,但人家不怕,因为只要他们想要,随时可以从荷兰人手中买到最先进的光刻机。这就是问题所在。什么叫可控?很简单,那就是某项技术就算我没有,就算我不会,但我可以在需要的时候随时拥有,这就是可控。当然了,如果有那就更可控了。咱们国家和美国的国情不同,没有办法做到随时拥有,因此国家才在大力推行自主可控,因为一些重要技术的可控与否会直接关系到国家安全。
但自主并不等同于可控。
拿开源软件举例。现在有很多开源软件,其源代码是完全公开的,想要修改源代码也没有多大的问题,应该说是完全自主的。不过这些开源软件背后都有各种附加协议,这些协议其实都会埋下不可控的隐患。我始终认为遵守契约是一种美德。而且一旦事情败露,违反约定的一方始终是没有底气的。我从不认为开源软件是可控的。
再说回前面说的买源代码。可控吗?不好说。源代码和版权虽然都在手,可是并不意味着完全可控。我理解的可控,应该是要对源代码能够完全把控,具备完全按自己的意愿对源代码进行修改的能力。工业软件规模庞大,代码量动不动就几十万几百万行的,想要完全吃透也是要耗费大量时间的。说句不好听的话,ANSYS如果将其源代码捐给国人,有谁能吃的下?完全消化需要多久?具备开发能力又需要多久?话说一款软件三年没更新基本就可以判定死球了吧,你确定不会把ANSYS玩死?我只是拿ANSYS举个例子。把源代码买回来供着,那不叫可控。
另外,工业软件的可控还涉及到上下游接口。工业软件很多时候不是一款软件在战斗,而是一群软件合力协作。比如CFD,上游需要建模画网格,下游需要数据处理,这些软件之间的接口怎么办?据我所知,国内做CFD求解器的还是有不少人的,也有做得相当不错的,不过做前后处理的人就少得可怜了。说到前处理又要打脸了,咱们有自己的CAD内核吗?我看现在大多数国产CFD软件,要么没有几何建模功能,要么利用开源库。当然利用开源库也没什么,但心里应该有点数,到底是不是真的可控,别到国家需要的时候掉链子就好。
自主不可控,还不如不自主。希望有生之年能看到有真正的自主可控的国产CFD软件,界面丑点儿、功能差点儿、性能弱点儿其实都没多大关系,谁还没个童年嘛。
注:本文仅为个人胡思乱想,有感而发,不接受任何反驳。
”
(本文结束)
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册