;}
以上是λ的笑脸。(见IBM天朝编译器团队出书)
程序设计语言理论是否规定了完美语言设计的原则?语言设计者可不这么想!即便存在这样的原则。
我承认C++11有着极大变化。但是那些鼓吹的人的原因是之前的设计存在缺陷和陷阱。但是对此,他们又说不出个123.
在此我本来想写:
1.现有程序语言的设计之路。从设计的源头,沿着进化的方向,我们就可以发掘语言本身的方向。
2.语言的评价方法。(可以说和评价任何事物的方法一样,但是到程序语言这里,就不一样了。除此之外包含程序语言仅是程序的表示,还是直观的思维表达)
3.如果仔细探讨语言设计的初衷,和进化的方向,就不得不讨论,科学和商业的关系。也就阐明了,为什么一些新东西只能诞生在实验室了,并且消亡在实验室里。
4.......或是未来的程序语言......
基于以上思想,我还没有做好完成此文的准备。
一些现有的观点是这样的:(我们可以在《黑客与画家》《编程的未来》《松本行宏的程序世界》此类书中看到。)
如保罗.格雷厄姆(《黑客与画家》作者)所说。一些设计之初内核精妙的语言。却因为对应特定问题的函数库的泛滥而流行。就像小汽车顶上安装着飞机发动机。这样的语言并没有成功。程式设计师应该学习使用语言的基础去解决问题。而不是学习语言对应工具包的调用方法。同样当提到某种语言,人们首先想到是每个功能强大的函数库。而不是语言本身的某个特性。函数库比语言的核心还重要的时候。每个新手都要注意了。计算机软件发展了几十年,程序语言的进化确实缓慢的。
语言的进化之路走到尽头了。语言也就快要消亡了。
编程语言存在一个进化发的脉络,从而引导读者思考。在整个进化的过程中某种语言的位置到底在哪里?之所以思考这个问题,不是为了100年后让后人感叹我们曾经如此英明,而是为了找到进化的主干。
语言设计者的思想不是随机的。而是有意识的借鉴其他语言的设计思想。
在长期的职业生涯中,我发现冗余的代码会导致更多冗余的代码,不仅软件如此,而且像我这样性格懒散的人,我发现在床底下和房间的角落里这个命题也成立,一件垃圾会产生更多的垃圾。
计算机处理信息的能力提升速度,就绝对跟不上信息自身的增长速度。那么...
我已经预测了,一旦未来硬件的性能大幅提高将会发生什么事情。新增的运算能力都会被糟蹋掉。对速度的追求是人类内心深处根深蒂固的欲望。
语言设置字符串是一个过早优化的例子。
那么如果新的特性是既有的一个子集或是相反,那么它有多大的意义。
语言效率和表达能力的权衡。
修改语言的设计来提升效率不是正确的做法。正确的做法应该是将语言的语义与语言的实现予以分离。
100年后的程序员最需要的编程语言就是可以让你毫不费力写出程序第一版的编程语言,哪怕它的效率低下的惊人。
对于互联网软件,你能使用任何你想用的语言。如果你还同时拥有操作系统和语言的源码,那么你的自由就更大了。
接管机器的语言和呈现思维的语言。
(未完)