- 收听数
- 1
- 听众数
- 2
- 最后登录
- 2017-3-16
- UID
- 15373
- 阅读权限
- 40
- 帖子
- 1801
- 精华
- 0
- 在线时间
- 2478 小时
- 注册时间
- 2015-11-15
- 科研币
- 115
- 速递币
- 387
- 娱乐币
- 2365
- 文献值
- 699
- 资源值
- 27
- 贡献值
- 2
|
第 2 版 代序
要有光
—《世界需要一种什么样的语言》节选—
什么才是决定语言的未来的思想呢?或者我们也可以换个角度来提出这个问题:世界需要一种什么样的语言?特性众多、适应性强,就是将来语言的特点吗?我们知道现在的 C#与 Java 都在这条道路上前进。与特定的系统相关,就是语言的出路吗?例如曾经的 VC++,以及它面向不同平台的版本。当然,与此类似的语言,还有 C,以及汇编语言等。这些例举其实都是在特定环境下的特定语言,所不同的无非是此处的环境的大小。这其实也是程序员的心病:我们到底选 Windows 平台,还是 Java 平台, 或者 Linux 系统,再或者是……我们总是在不同的厂商及其支持的平台中选择,而最终这种选择又决定了我们所使用的语言。这与喜好无关,也与语言的好坏无关,不过是一种趋利的选择罢了。所以你在使用着的也许只是一种“并不那么‘好’”,以及并不能令你那么开心地编程的语言。你越发辛勤地工作,越发地为这些语言摇旗鼓噪,你也就离语言的真相越来越远。当然,这不过是一种假设。但是,真相不都是从假设开始吗?语言有些很纯粹,有些则以混杂著称。如果编程世界只有一种语言,无论它何等复杂,也必因毫无比较而显得足够纯粹。所以只有在多种语言之间比较,才会有纯粹或混杂的差异:纯粹与混杂总是以一种或多种分类法为背景来描述的。因此我们了解这些类属概念的标准、原则,也就回溯到了种种语言的本质:它是什么、怎么样,以及如何工作。这本书,将这些分类回溯到两种极端的对立:命令式与说明式、动态与静态。我讲述除了静态语言(一般是指类似 C、 C++、 Delphi 等的强类型、静态、编译型语言)之外的其他三种类型。正是从根底里具有这三种类型的特性,所以JavaScript 具有令人相当困扰的混合语言特性。分离它们,并揭示将它们混沌一物的方法与过程,如历经涅磐。在这一经历中,这本书就是我的所得。
多年以来,我在我所看不见的黑暗与看得见的梦境中追寻着答案。这本书是我最终的结论,或者结论面前的最后一层表象:我们需要从纯化的语言中领悟到编程的本质,并以混杂的语言来创造我们的世界。我看到:局部的、纯化的语言可能带来独特的性质,而从全局来看,世界是因为混杂而变得有声有色。如果上帝不说“要有光”,那么我们将不能了解世象之表;而世象有了表面,便有了混杂的色彩,我们便看不见光之外的一切事物。我们依赖于光明,而事实是光明遮住了黑暗。如同你现在正在使用的那一种、两种或更多种语言,阻碍了你看到你的未来。
JavaScript 是一门语言,有思想的、有内涵的、有灵魂的语言。如果你没意识到这一点,那么你可能永远都只能拿它来做那个“验证一个输入框值的有效性”的代码。本书讲述 JavaScript 的这些思想、核心、灵魂,以及如何去丰富它的血肉。最为核心的内容是在第 2 章至第 6 章,包括: 以命令式为主的一般化的 JavaScript 语言特性,以及其对象系统。
动态、函数式语言,以及其他语言特性在 JavaScript 中的表现与应用。 使用动态函数式特性来扩展 JavaScript 的特性与框架。在撰述这些内容的整个过程中,我一直在试图给这本书找到一个适合的读者群体,但我发现很难。因为通常的定义是低级、中级与高级,然而不同的用户对自己的“等级”的定义标准并不一样。在这其中,有“十年学会编程”的谦谨者,也有“三天学会某某语言”的速成家。所以,我认为这样定位读者的方式是徒劳的。如果你想知道自己是否适合读这本书,建议你先看一下目录,然后试读一些章节。你可以先选读一些在你的知识库中看来很新鲜的, 以及一些你原本已经非常了解的内容。通过对比,你应该知道这本书会给你带来什么。不过我需要强调一些东西。这本书不是一本让你“学会某某语言”的书,也不是一本让初学者“学会编程”的书。阅读本书,你至少应该有一点编程经验(例如半年至一年),而且要摈弃某些偏见(例如 C 语言天下无敌或 JavaScript 是新手玩具)。
最后,你至少要有一点耐心与时间
本主题是付费主题:单次下载50SDB
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?快速注册
|