这本书不是简单的介绍某种语言的教科书,也不是介绍某些技巧的XX宝典,这本书是一本探讨理论的书,是一本探讨编程语言范式的书,这样一本书看下来的代价就是你的头发至少要掉个几十根,而你头脑中对于编程语言的思考和概念也将随之清晰。 本书主要通过JavaScript语言作为介绍的媒介,从而探讨语言的实现以及语言本身的种种特性。 JavaScript作为一种语言,很优美,它既有动态语言的特性,也有命令式语言的本质,既有函数式编程的风骨,也有面向对象的内涵,用JavaScript这种语言来作为描述语言范式的一种工具,虽然有它的局限性,但是也有它的独到之处,而用JavaScript作为表述语言上也能体现这本书的一些观点。 虽然作者认为语言只不过是一种工具,一种思想的表示,不是思想本身。但是,在不同的语言身上,我们能够看到语言所代表的思想,以及那些思想下实现的本质。 当然由于本书是谈理论的书,所以难免有些枯燥,作者明显是个理工类出身,文笔也并不优美,但是某些语句还是相当的精彩的,节选部分如下: 1、一种语言只是一种思想的表示,不是思想本身。 2、语言只是一种工具,工具的选择只在于“功用”能否达到,而不在于工具是什么。 3、命令式语言 -> 冯诺依曼体系,以“存储”和“处理”为核心。 4、在语言中存储被抽象为内存,处理被抽象成运算(指令或者语句)。 5、命令式语言的核心:通过运算去改变内存中的数据 。 6、数据的表现形式是编程的根本。 7、命令式语言发展上的所有努力,最终都必然面临的问题是“如何抽象数据存储”。 8、接口提出的观点就是:只暴露数据体的逻辑行为能力,而不暴露这种能力的实现方法和基于的数据特征。 9、对象的引用是面向对象体系的灾难之源。 10、接口设计的目标系统与计算机系统的功能特性的投影。 11、原型的含义是指:如果构造器有一个原型对象A,则由该构造器创建的实例都必须复制自A。 12、基于原型的“构建过程”可以被简单的映射为“复制”。 13、基于原型继承的对象系统的设计理念:将对象(类)的继承关系,与对象(类)的行为描述分离。所有原型继承的实质其实是从无到有的一个过程。 补充完善中。。。