黑客与画家 第十一章

2013/7/15 16:41 写于 家
第十一章 一百年后的编程语言
本章主要是讲了一百年后人们会用什么语言,以及我们是否现在就能用这个语言呢?
在作者的观点中,编程语言是有进化的脉络的,许许多多的分支都会走入到死胡同中。这种现象已经存在了,例如Cobol语言。现在无人问津,没有任何语言继承它。
作者认为JAVA也是如此。它已经进化到头了。。大家不喜勿喷啊。
为什么我们要去想那些符合进化脉络的语言呢?因为选择接近进化的主干可能都是最佳方案,如果你选错了,你就可能被你的对手抢走猎物。
编程语言是聚合的,而且人们经常会借鉴别的语言。只要你能认清这个进化的线路,那么你就可以设计出新的语言了。
任何语言都是有基本运算符的部分和其他部分组成的。作者认为,基本运算符应该是越简单越好。那些内核越小,最干净的编程语言才会存在于进化的竹竿上。一种语言的内核设计得越小,越干净,它的生命力就越顽强。
为什么我们现在能预测未来的语言呢?因为编程语言的进化很慢,它不像技术那样可以跳跃式的发展。所以,预测是有可能的。
我们知道,即便是未来硬件的速度不符合摩尔定律,但是,100年后的硬件的速度绝对比现在快得多。所以,对硬件资源的浪费就不可避免的出现了,我们每一代人都在做着上一代人觉得浪费的事情。浪费有2中,一种是好的浪费,一种是坏的浪费。我们需要的是好的浪费。那么,怎么充分的利用硬件的速度而最有利地去浪费它呢?
一。在设计语言的时候,我们要问自己,什么时候能放弃一点效率,而去让编程更为方便呢?
在以前,我们为了节约效率,而定义出了字符型,但是字符型就是列表的子集,完全可以用列表去替代它。可,为了效率,还是弄出来个字符集。正确的做法是把语言的语义与语言的实现予以分离。
二。对实现的方式少做限制,提高程序的灵活性。
essay就是试试做。当作者开始写软件的时候,他们其实不知道最后会写出什么结果。
三。在应用软件和硬件之间设置很多的软件层。这会让编程灵活起来,而且可重用性提高。
并行计算只会出现在部分必须的应用程序上。
性能分析器会变得越来越重要!
一百年后的语言应该是简单容易上手的,可以很快就写出第一版。所以,当你要设计语言是,你要脱离现有的束缚,直接写下你想写的程序。
判断语言设计好不好,就是问自己是不是能把它写的更短一点。如果接系树越小,往往就越省力。
在有些人看来,大部分语言内核早在1958年就已经设计出来了。
作者的观点是:1.一百年后的编程语言在理论上今天就能设计出来 2.如果今天真能设计出这样一钟语言,很可能现在就适合编程,并且能够产生很好的结果。
当你设计语言的时候,心中牢牢记住目标,可以让你不会偏离方向。

转载请表明出处  http://www.huangweibin.com/

原文地址:https://www.cnblogs.com/hwb1992/p/3191512.html