王垠是个精英主义很重的人,偏爱理论多过实践。

我以前读过一些他的文章,现在又读了一些,发现我与过去对他的评价不同了。现实是参差、复杂且匮乏的,理论上,理论符合现实,但现实中不是。他对别人的批评稍加修改也可以应用到他自己身上。

他说:“Talk is not cheap.”确实如此,但如果你去做的时候你会发现更多。现实是匮乏的,一个再完美的理论,无法被实践出来也是枉然。我们不能光是想,光是谈论,时间是不等人的。什么是工程学?说白了,就是把完全理论在不完全的世界里展示出来。

他对软件工程的评价是十分局促的,不过我看博客都是 15 年的事了,不知道他如今是什么想法。在王垠看来,软件工程就是把人当傻子。可以说这非常符合他精英主义的立场了,这时候又 Talk is cheap 了。

我不知道他对于工程学是怎样一个定义的,他说:

所谓“软件工程”,并不像土木工程,机械工程,电机工程,是建立在实际的,科学的基础上的。跟这些“硬工程”不一样,软件弄得不好不会出人命,也不会像芯片公司那样,出一个 bug 立即导致几十上百亿的损失。

先不说前面的内容,单说后面的内容,软件出现 bug 不会导致公司损失?现实中的例子就在狠狠打脸。而且,医疗软件的 bug 不会有人命的危机吗?工程学是解决问题的,当软件出现故障会出现什么问题,自然由他所要解决的问题来决定。

然后说前面的内容,我不知道这个“硬工程”是怎么回事,但至少土木工程不会用量子力学去构建建筑就是了。

软件行业有这样一句话:“没有银弹。”任何方法都是局促的,有局限性的,一方面无法完全套用,另一方面,我们常常搞错方法。这需要我们具体的分析。

王垠似乎很喜欢将这些情况偏颇化。

所以研究软件工程,似乎特别容易钻空子,失败了之后也容易找借口和替罪羊。如果你说我的方法不好,你有什么证据吗?口说无凭,我浪费了你多少时间呢?你的具体执行是不是完全照我说的来的呢?你肯定有什么细节没按我说的做,所以才会失败。总之,如果你用了我的办法不管用,那是你自己的问题!

好像软件工程全然没有正经的讨论。我不知道为什么他会有这样的看法。而且,方法论存在局限性,这应该是一个很明了的问题,想说明他局限在哪里,或者错在哪里都需要具体讨论的,软件工程是允许这样的讨论的,而不允许这样讨论的软件工程,它的失败基本上不需要我多说了。而且,很多因素也不是软件工程的问题,比如领导等的压力。

对他来说:

再高明的方法论,也无法代替真正的,精华的计算机科学教育。

没啥好说的,但我总觉得怪怪的。因为在工程学里,理论往往是拿来用的工具,方法和理论往往都很重要。无组织的软件开发,最终会无法承受住自身的膨胀而崩溃,这是一开始就明了的事情,软件工程就是为了解决这个问题而提出各种解决方案的。

总之,我不喜欢他。他为自己感到自傲,对他来说是足够了。像王垠这样的人并不多见,但我也并不希望多见。