工程案例

地址:广州市荔湾区中山八路新虹街58号荔景楼商务中心B座
电话:020-66889888

主页 > 工程案例 >

工程案例

科学网卡脖子?鸦片?不重视算法?其实都不是

我上一篇说matlab的市场价值主要在于初级设计性行业(随你自己断句)。但科学网上是科研人员和教师多。对于这两种边缘人士,matlab的价值是什么?是提高生产率?是引起用户的惰性?还是什么?其实我觉得,现在科研人员和教师用matlab,倒是没有这么高大上的理由,仅仅是用惯了而已。

这两类人的最大问题是用不到matlab的专门功能,特别是科研人员真要是用matlab的工具箱去干活,大概率还是要直接重写一次:没法确信matlab里面执行的事情和它文档一致啊。这种事在商业软件多了,甚至非商业软件也有这种案例,不可不防。教师更完全用不到matlab的专业功能,教师用这玩意一般也就是画画图给学生做作业,或者毕业论文指导时候当计算器使。比如像微分方程求解,几个几十个变元的常微你大概率没兴趣出动matlab这种重量级的软件(高射炮打蚊子哈),几百万网格的偏微你又得头痛matlab的求解工具箱里面是不是有bug,或者求解算法本身对不对。

但问题的核心是用惯了,比如你工作要出几千张图,全都类似的数据格式,只是参数有些变化。你大概率是写个脚本去处理,而不是找个学生去干这苦力活。这时候你第一次用啥写的脚本,我赌你五年内不会换工具,因为习惯了。这事并不局限于matlab。我最早做DataView的时候还不熟悉matlab和FORTRAN ArrayVisualization, 想想实在烦了,最后做了个转八圈的工作:首先把所有代码用C++包裹起来,然后link 伯克利的PSEG组的xgraphics,最后在每个循环里面data.show一次。然后就习惯任何计算都实时显示中间结果了。问题是xgraphics是Linux版本的,怎么解决?装个Cygwin X 版,然后在cygwin里面启动图形界面,再编译代码为cygwin模式。就为了一个Data View,这么一直弄了六七年,你说这做法有用不?它能实时看结果。你说它好用不?“好用个茄子!”问题是一开始这么干就一直干下来,习惯了,你让我自己改写一个Dx输出,我有那兴趣么?

一直到这东西没法在新的Linux gcc下编译,PSEG又****了,琢磨一段没辙换了python脚本,然后又是六七年python(近三年换了matlab,因为python的dxHDF5接口那个时段不太靠谱,自己又真的不想写C++接口),还是那个问题,一开始需要一年时间习惯,习惯了,就不想换了,除非无计可施。


至于说不可替换啥的,不存在的,为了这玩意付费,也是不存在的,用这玩意卡脖子?更不存在的。说到底,我觉得某畅销书作家说的很好,人类很多事情仅仅是习惯了就一直这么干,不用以为有太多理性。