编程语言不是为计算机设计的。让机器理解指令,一段严谨的机器码就足够。我们之所以发明高级语言,只是因为人类的大脑太脆弱,经不起无穷无尽细节的轰炸。编程语言真正的使命,是保护我们可怜又笨拙的脑子别被细节压垮。
做设计的人都知道,有些东西天生就比较抽象。设计桥梁就是一个干净的数学问题:用最少的材料跨过给定的距离。而椅子就不一样了,你必须整天琢磨人类的屁股。软件领域也是如此。给流量规划路由算法的工程师,像在造桥;设计编程语言的,却是在造椅子——得凑合人的弱点。
![]()
大部分人不愿承认这一点。打造一座数学上无比优美的系统,听起来比伺候人类的缺陷要光彩得多。没错,数学优雅确实能让程序更容易被理解,但优雅本身不是目的。即便我们把语言的目标读者定位成最顶尖的程序员,他们也并非全知全能。想象一下,如果世界上只有一种变量命名方式——字母x后面跟着整数下标,恐怕最厉害的黑客也会崩溃。
翻看编程语言的历史,一个规律呼之欲出:大量最好的语言,是作者做给自己用的;而那些最糟糕的语言,是专门为别人设计的。“为别人设计”这话,往往隐含着一层高高在上的傲慢——默认别人不如自己聪明,于是造出来的语言就带着一股说教味。COBOL是最极端的案例,可这种味道在许多语言里都飘散着。
这和语言的抽象程度无关。C语言够底层了吧?可它是作者为自己而写,所以黑客们至今还是喜欢它。有人说,笨程序员的市场更大,为笨人设计语言才合乎商业逻辑。但别忘了,那少数的好程序员,写出的软件量却大得不成比例。
所以问题就变得有意思了:怎么设计一门能让最厉害的黑客都爱上它的语言?对我来说,这和“怎么设计一门好的编程语言”完完全全是一个问题。退一步说,就算不是,它也是个足够迷人的问题。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.