《黑客与画家》第14章读书笔记

编程语言发展的方向

Lisp和Fortran代表了编程语言发展的两大方向。前者的基础是数学,后者的基础是硬件架构。从那时起,这两大方向一直在相互靠拢。直到如今最高级的主流语言也只是刚刚接近Lisp水平。

按照Java,Perl,Python,Ruby的顺序观察这些语言,你会发现一个有趣的结果,至少如果你是一个Lisp黑客,你就看得出来,排在越后面的语言越像Lisp。

为什么Lisp语言很特别?

它包含了9个思想,至今还有2个是Lisp独有的。

  1. 条件结构(即if-then-else结构)
  2. 函数也是一种数据类型。它有自己的的字面表达形式,能够存储在变量中,也能当做参数传递。
  3. 递归
  4. 变量的动态类型,所有的变量都是指针,所指向的值有类型之分,而变量本身没有。复制变量就相当于复制指针,而不是复制它们指向的数据
  5. 垃圾回收机制
  6. 程序由表达式组成。Lisp程序是一些表达式树的集合,每个表达式都返回一个值。
  7. 符号类型。它实际上是一种指针,指向存储在散列表中的字符串。
  8. 代码使用符号和常量组成的树形表达法
  9. 无论什么时候,整个语言都是可用的。Lisp不真正区分读取期,编译期和运行期。可以在读取期编译或运行代码,可以在编译期读取或运行代码,可以在运行期读取和编译代码

语言流行的因素

优秀的语言不一定会被市场接受,很可能无人使用,因为语言的流行不取决于它本身。它取决于:

  1. 专家级黑客的看法和使用
  2. 广告宣传
  3. 某一个流行计算机系统的脚本语言
  4. 找到一个流行的依附的系统
  5. 免费的实现,实体书和在线文档

再设计

最好的文字来自不停的修改,对软件开发也适用,编程尤其如此,再多的修改都不过分。为了写出优秀的软件,同时具备两种冲突的信念

  • 出生牛犊一般,对自己的能力信心万丈,对解决难题的可能性保持乐观
  • 对当前解法的合理性保持怀疑

任何措施,只要能让“再设计”周而复始地进行下去,就都是可取的。

你可能感兴趣的:(《黑客与画家》第14章读书笔记)