编程语言发展的方向
Lisp和Fortran代表了编程语言发展的两大方向。前者的基础是数学,后者的基础是硬件架构。从那时起,这两大方向一直在相互靠拢。直到如今最高级的主流语言也只是刚刚接近Lisp水平。
按照Java,Perl,Python,Ruby的顺序观察这些语言,你会发现一个有趣的结果,至少如果你是一个Lisp黑客,你就看得出来,排在越后面的语言越像Lisp。
为什么Lisp语言很特别?
它包含了9个思想,至今还有2个是Lisp独有的。
- 条件结构(即if-then-else结构)
- 函数也是一种数据类型。它有自己的的字面表达形式,能够存储在变量中,也能当做参数传递。
- 递归
- 变量的动态类型,所有的变量都是指针,所指向的值有类型之分,而变量本身没有。复制变量就相当于复制指针,而不是复制它们指向的数据
- 垃圾回收机制
- 程序由表达式组成。Lisp程序是一些表达式树的集合,每个表达式都返回一个值。
- 符号类型。它实际上是一种指针,指向存储在散列表中的字符串。
- 代码使用符号和常量组成的树形表达法
- 无论什么时候,整个语言都是可用的。Lisp不真正区分读取期,编译期和运行期。可以在读取期编译或运行代码,可以在编译期读取或运行代码,可以在运行期读取和编译代码
语言流行的因素
优秀的语言不一定会被市场接受,很可能无人使用,因为语言的流行不取决于它本身。它取决于:
- 专家级黑客的看法和使用
- 广告宣传
- 某一个流行计算机系统的脚本语言
- 找到一个流行的依附的系统
- 免费的实现,实体书和在线文档
再设计
最好的文字来自不停的修改,对软件开发也适用,编程尤其如此,再多的修改都不过分。为了写出优秀的软件,同时具备两种冲突的信念
- 出生牛犊一般,对自己的能力信心万丈,对解决难题的可能性保持乐观
- 对当前解法的合理性保持怀疑
任何措施,只要能让“再设计”周而复始地进行下去,就都是可取的。