哪些语言特性,有助于开发大型系统

刘鑫
编程话题下的优秀答主

说实话,多大算大这个问题很让我困扰。你说豆瓣那规模大不大?其实没用什么高大上的语言特性吧,Python这么憨厚的玩意儿,不也跑的挺好?

当然我知道同行们有些是看不上这种规模的项目,我也理解,也认同。但是战斗机,卫星,航空母舰,外星探险车,或者一个维护几十年,规模超过千万行的操作系统,这些项目对这个世界上多大比例的开发人员有参考和学习意义?但是如果我们无视这些极端场景下积累的知识和经验,又会错过什么?

我个人的经验来讲,“大型系统”,并不能对等于“优秀的产品”或者能让我心动的知识。做一个工程,需要各种各样的妥协,最理想的工具未必就是最终能帮助我们做成这件事的。但是我还是可以尽量的给出我自己心目中一些对项目开发有正面意义的语言特性。

这些东西也只是有助于我们工作,其实没有绝对的致命因素,最终还是要讲究妥协。例如C/CPP没有那么完整的runtime,但是我们有资金,有开发周期,我们请来专家写一个专用的runtime给我们自己用行不行?其实质量可能会更高对吧。那些“只能用”C/CPP才做得到的“大型项目”,很多都要做这样的工作,另一个角度看,我们用的很多编程语言,也是在享受别人预先完成的runtime。别的我不好说,Python/Ruby就是典型。但是我不认为这就表示这样的语言格调不高,没有价值。例如CPP对C语言的很多优势,如果换个角度,把LUA看做一个C的runtimeDSL工具集,意思就表达到这里了。

一时能想到的,比较具体的点就这些了。至于那些形而上的理论,其实我很难说服别人,也很难被人说服。就不提了。

===========

忘了说,是否方便调试其实应该算在内,虽然抬杠的说可以说这个东西不是语言应该操心的问题,但现实是某种语言是不是方便调试除错还是可以比较的。