14-《黑客与画家》-第十三篇:书呆子的复仇

      一个最常规的思想就是,世界上已经有视为标准的语言,为什么还要创造一个新的语言呢?那么,回到新语言创造的目的,无一不是想解决现有语言无法解决的问题。新语言创造出来,很优秀的解决了原有的问题,按理说,他确实是比原本语言要多的那么为什么不用这个新的语言呢?

      按照开发者的思路是这样的没错,但决定一个产品开发方向的是项目经理,从本身的经验来看,很多项目经理对技术可能了解的并不多,他们对语言的认识大多基于传言,有一种盲目从众的感觉,而且他考虑的更多的不是开发性能的问题,反而是安全问题,新的语言未经时间的验证,那么他就不认同,他们永远不会想去做开荒者。

      更实际的是,如果贸然选择了新的语言,这批程序员离职了,他能不能很方便的招募到新的。

      不深入了解,那么就会观念往往会被直觉所误导,至今还有很多不懂计算机的人觉得,程序员应当懂得计算机的一切,包括修电脑。换言之,很多项目经理,他们不懂编程语言,只觉得以为其实都差不多,大家都用的这个,肯定是没错的。假定语言没差别,项目经理才能更方便的找到项目计划的最优解。

      我在前面曾设想过,未来语言的两种方向,实际上,在本章作者也做了一些类似的论证,以他对编程语言的了解,java,perl,Python,ruby这样的顺序观察,越后面的越像lisp。这就有了一个很奇葩的结论,语言的发展居然有着返祖话。我们发展了这么多年,不过刚刚赶上1958年的lisp水平。

      难道,网络修仙小说的设定是真的,越古老的传承越强大?

      约翰。麦卡锡在1958年提出了Lisp,但当时他只想着设计这种书写法来满足论文的写作要求。可当他的学生史蒂夫。拉塞尔看到eval函数定义,意识到把它翻译成机器语言,就可以把Lisp解释器做出来。

而且还真的做出来了,仅仅几个星期,麦卡锡的理论演算就变成了实际的编程语言,而且出乎意料的强大。所以lisp不是技术,而是数学,数学永不过时。

      作者更加明白的表述了编程语言发展的两大方向,以数学为基础和以硬件做架构,两大方向相互靠拢。

Lisp的9种新思想:

1,条件结构(if-then-else)

2,函数当做数据类型

3,递归

4,变量的动态类型,应用指针概念,复制变量就是复制指针,而不是指向的数据。

5,垃圾回收

6,程序由表达式组成

7,符号类型

8,代码使用符号和常量组成的树形表示法

9,无论什么时候,整个语言都是可用的。不区分读取,编译和运行


      作者无时无刻都在向我们推荐Lisp,从04年到现在,我想看过这本《黑客与画家》的人应该有千百万,但看完后真正动手去了解Lisp的人又有多少个呢?或许,等有机会,我会在好奇心的驱使下去了解一点lisp,或许很快就忘了,也许吧,但我想去学习数学总是没错的,就像作为程序员,将自己的英语读写水平提上去一样,这些是内功啊。

你可能感兴趣的:(14-《黑客与画家》-第十三篇:书呆子的复仇)