为什么我们搞不出Matlab这种行业软件?
前言
最近国内有一堆人哭着喊着说Matlab又卡脖子了。如果matlab就卡脖子了,那么有一堆行业软件ProE, Ansys, Solidworks, CATIA, Fluent纷纷表示不服。
我在2000年左右开始接触matlab,2005年左右因为正版化的要求,曾经尝试过去Matlab,根据我的阅历说说我的观察与理解。
初识Matlab
2000年,我从一个盗版光盘的小贩那边买到一张光盘。当时蛮流行一张光盘里塞满各种软件包的。这张光盘里恰巧有Matlab 6和mathmatica 3.0。
我这种调皮捣蛋小屁孩最喜欢的事情是把各种软件装一遍,然后找本教程玩一下,然后再卸载掉,毕竟那个时代存储也是蛮宝贵的。硬盘5.4G已经非常大了,即便这样我还要分三个区。
初上手,我最喜欢的是mathematica,原因有两个:
- 1、颜值高。
- 帮助文件中有很多很多非常漂亮的demo。虽然你不懂公式啥意思,一按回车就能给你画一个非常漂亮的曲线和曲面。我当时也记住了 wolfram research。
- 2、做作业太方便了。
- 各种微分方程,各种积分,一输入就出结果,太tmd爽了。
其实当时我还是很有互联网思维的,还想把mathematica变成一个在线版,这样大家都可以用了。结果卡壳在Mathematica那牛逼的公式编辑器上了。直到今天我也没有看到web版这么牛逼的公式编辑器。
Matlab 当时还是6.0版本, 在做矩阵运算的时候特别好用。
但是随着时间的推移发现Matlab很好用了:
- 1、Matlab可以做复杂的编程。
- 2、Matlab的各种工具包非常多,非常好用。
比如信号工具箱非常好用,在做数字信号处理的时候非常有用。比如小波分析的时候,Matlab的工具包几乎是唯一的选择。 - 3、Simulink博大精深。
在做模拟的时候,数字图像处理的时候,做数值分析的时候,根本离不开matlab。而且随着Matlab功能的升级也越来越强大,你自己可以写DLL被Matlab调用,还可以把Matlab代码转成C++调用的库(效率极低,但是忽悠足够了)。
很快matlab变成了研究的必备工具。
替代Matlab
2005年左右,因为种种原因不能再用Matlab了,所以当时就开始物色替代品。
最开始是裸写用C++库,当时正好Intel推出了OpenCV,里面的矩阵计算库CvMat还蛮好用的。但是如果用C++做稍微大点的研究,人要疯掉的。但是用C++写好处是运行效率高。一旦算法敲定,立马就可以投入实用。但是用C++写太麻烦了。
再后来,选定开源的Scilab来替代一些Matlab数值计算的功能。基本能满足数值计算的需求。但是仅此而已,他的那些周边的工具箱,很难找到替代品。
我们最后在数值计算和图像处理方面替换掉了matlab,代价也非常大,比如大量matlab库函数需要重写。
为什么中国没有Matlab的竞品?市场化与盗版!
我先举一个我认识的人的故事:我认识的一个老师实验室在20年前开发了一套机械设计的CAD系统,叫小雨点CAD系统。在机械设计方面做的非常好,是当时整个行业中少有的完全自主开发的CAD系统。他们就是在做科研的时候把程序写好,不以发论文目的。
然而在5块钱一张的AutoCAD+ ProE的围攻下,挂了。
一个非常简单的问题:
国内有面向国内客户靠卖license挣钱的大中型软件公司么?
据我所知,在很长一段时间内,这样的公司几乎没有。金山,用友这几年开始新的盈利模式,开始回血了。有一段时间,金山软件在日本挣了不少钱,在中国市场几乎都是白嫖。
Matlab能够在美国成功,是因为市场给他正向反馈,做的好了,有人要,有人愿意付钱。挣了点钱,养的起一个人,就养一个人,开发新功能,愿意付钱的人更多了,就可以养十个人,功能也越来越多。
市场经济在起作用。
Matlab在中国,毫不夸张的说,很长一段时间国内理工科学生的电脑上基本都有盗版的Matlab,而且还都是最新版本的。爱不爱学习再说,但是matlab是装机必备的。 带来一个结果就是,任何最基本的国产替代都是徒劳的。
还有一点,行业软件难做的一个原因是背后的算法,数据,经验的积累。很多人以为中国现在科技水平真是坐二望一了,然而很多稍微复杂一点大型行业软件背后都是有大量算法支持的。这些算法背后就是科研水平的差异,这才是最根本卡脖子的地方。
开源软件打磨之痛
这里首先吹一波阿里。
阿里是中国互联网公司中最具有领袖气质的公司,阿里的很多项目开源,大大促进了中国互联网公司的发展。比如 阿里的dubbo 现在几乎成了国内soa的事实标准.阿里的tengine 也是国内很多互联网公司web 服务器的担当,阿里的Blink是国内实时计算最流行的框架。阿里的开源项目有很多很多,上万星的项目一大堆。
阿里是中国的一个另类。远远要强于,腾讯,百度,华为,美团等为开源社区作出的贡献。
现在有人抱怨Matlab卡脖子,但是绝大多数人的使用场景Scilab和python就可以解决了。在国外由于正版软件非常贵,而且license有各种限制,导致很多公司,机构都在寻找替代方案,一个重要选择就是开源社区。
但是开源社区是一个双向的关系,你从开源社区受益,为了社区良性发展,你也要回馈社区。这样大家站在前人的肩膀上,更上层楼。很多著名的开源软件都是经历了很长时间的迭代。有个人爱好,也有各家公司的资金投入。数学工具类的开源社区其实很发达,真心想替代,砸钱支持开源社区好了。
然而中国很多公司和机构在开源社区声名狼藉。尤其是一些机构,比如中科院在最近两年中简直丢人丢到家了:
红芯浏览器,chrome直接拿过来。声称自主知识产权。最后是不了了之。
木兰编程语言,换皮python
麒麟os抄freebsd
还有抄android的,抄Debian的。
然后都号称自主知识产权,而且不少都来自于中科院系统。
大家想过为什么一而再,再而三发生这种事情?
为什么阿里能搞好?很多响当当的机构缺搞不好?
是不是某些评价体系出了问题?
最近有人提出 ”提交软件或者工具也可以作为评职称的依据“。
呸!
那只会有更多的开源软件遭殃,只会出现更多的红芯浏览器,更多的木兰编程语言出笼。
实践是检验真理的唯一标准。
市场是检验产品的最好途径。
结语
大大方方承认卡脖子,是科技水平的差距,知识产权保护方面的差距,对知识分子态度方面的差距。卡脖子的从来不是具体某一样的东西,是一套机制。积累很需要,但是光靠积累未必能成功。是市场经济,或者说直白一点资本主义让Matlab这么一个小软件成长为一个庞然大物。
皮之不附,毛将焉存?