这一篇是我的一本迷你电子版书《动态函数式语言精髓》的序。这本书节选并增改自《Javascript语言精髓与编程实践》,后者看起来是一本主要讨论Javascript语言的书,但事实上有大量的内容是在讨论语言、多范型等等,而《动态函数式语言精髓》也正是该书的初衷。

本电子书通过InfoQ独家发布,请如下地址下载:
http://www.infoq.com/cn/minibooks/javascript-practise

序的部分内容同于原书,可以至如下地址下载其公开章节:
http://www.china-pub.com/38730

世界需要一种什么样的语言?

——《JavaScript语言精髓与编程实践》精简版·序

· 要有光
=====
我从未停止过对语言的思考。

曾经很长的一段时间里,在临入睡前我的脑海中总会响起一种声音“我解决了语言问题”,而睡醒时,
我仍觉得自己是无知小儿。编程十余年,我写过《Delphi源代码分析》,我从中看到了一门语言如何
从代码变成操作系统中可以运行的程序。我也写过《大道至简——软件工程实践者的思想》,我在其
中说“语言不过是(工程的)细微末节”,而成书之后,我便又投入了新的、当前你所看的这本书的
撰写之中。

语言于我,是一个死结。我一直在寻求尽头,或展望于将来,或求源于过往。我在一道大河的中间,
前后观望,时而俯首所得的,不过是一掬破碎的倒影。

倒影中,还是我的迷惘。

我也在实现着一种语言,我用JavaScript来做这件事情。我选择它只是因为熟悉,以及它足够的表现
力。我用它来做面向对象、面向切面、面向接口编程等等的尝试,也用它来模拟操作系统的调度机制,
或构架业务系统的技术框架。在另一些代码中,我也看到过用JavaScript代码来模拟CPU的指令流水线,
或者实现真实的虚拟机……但我认为没有必要向您去解说一种语言是何等的强大(或者专业、优秀与
特异),完全没有必要。

因为,它不过是一种语言。一种语言只是一种思想的表现,而不是思想本身。

什么才是决定语言的未来的思想呢?或者我们也可以换个角度来提出这个问题:世界需要一种什么样
的语言?

特性众多、适应性强,就是将来语言的特点吗?我们知道现在的C#与JAVA都在向这条道路前进。与特
定的系统相关,就是语言的出路吗?例如曾经的VC++,以及它面向不同的平台的版本。当然,在类似
的领域中,还有C,以及汇编等等……

我们回顾这样的例举,其实都是在特定环境下的特定语言,所不同的无非是环境的大小。这其实也是
程序员的心病:我们到底选Windows平台,还是Java平台,或者Linux系统,再或者是……我们总是在
不同的厂商及其支持的平台中选择,而最终这种选择又决定了我们所使用的语言。这与喜好无关,也
与语言的好坏无关,不过是一种趋利的选择罢了。所以,也许你是在使用着的只是一种“并不那么‘好’”,
以及并不能令你那么开心地编程的语言。你越发辛勤地工作,越发地为这些语言摇旗鼓噪,你也就离
语言的真相越来越远。

当然,这也不过是一种假设。但是,真相不都是从假设开始的么?

语言有些很纯粹,有些则以混杂著称。如果编程世界只有一种语言,无论它何等复杂,也必因毫无比
较而显得足够纯粹。所以只有在多种语言之间比较,才会有纯粹或混杂这样的效果:纯粹与混杂总是
以一种或多种分类法为背景来描述的。我们了解这些类属概念的标准、原则,也就回溯到了种种语言
的本实:它是什么、怎么样,以及如何工作。这本书,将这些分类回溯到两种极端的对立:命令式与
说明式,动态与静态。我讲述了除开静态语言(一般是指类似C、C++、Delphi等的强类型、静态、编
译型语言)之外的其它三种类型。正是从根底里具有这三种类型的特性,所以JavaScript具有令人相
当困扰的混合语言特性。分离它们,并揭示将它们混沌一物的方法与过程,如历经涅磐。在这一经历
中,这本书就是我的所得。

多年以来,我在我所看不见的黑暗与看得见的梦境中追寻着答案。这本书是我最终的结论,或结论面
前的最后一层表象:我们需要从纯化的语言中领悟到我们的编程的本质,并以混杂的语言来创造我们
的世界。我看到:局部的、纯化的语言可能带来独特的性质,而从全局来看,世界是因为混杂而变得
有声有色。如果上帝不说“要有光”,那么我们将不能了解世象之表;而世象有了表面,便有了混杂
的色彩,我们便看不见光之外的一切事物。我们依赖于光明,而事实是光明遮住了黑暗。

如同你现在正在使用的那一种、两种或更多种语言,阻碍了你看到你的未来。

· 语言
=====
(略,同于原书)

· 分类法
=====
(同上)

· 特性与技巧
=====
(同上)

世界需要一种什么样的语言?相关推荐

  1. 编程语言哪家强?4种数据分析领域语言优缺点对比

    来源:大数据DT(ID:hzdashuju)本文约2600字,建议阅读5分钟"哪门语言更好"?本文介绍了4种数据分析领域语言的优缺点. 编程语言的好坏及排行之争由来已久." ...

  2. mysql是面向对象的语言吗_php一种面向对象的语言,那么什么是面向对象呢?

    php一种面向对象的语言,那么什么是面向对象呢? 传统的面向过程的编程思想: 相信很多人第一次接触编程都是c语言,c语言就是非常典型的面向过程的编程语言,将要实现的功能描述为一个从开始到结束的连续的& ...

  3. python是面向什么的计算机程序设计语言_Python是一种计算机程序设计语言,python到底该怎么学习...

    1.首先我们要了解python是什么: Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell)随着版本的不断更新和语言新功能的添加,越来越多被用 ...

  4. 会c 学plc编程语言,想学PLC编程?先弄清5种PLC专用语言!

    PLC目前有5种标准的编程语言,包含图形化编程语言和文本化编程语言. 图形化编程语言包含:梯形图(LD-Ladder Diagram).功能块图(FBD - Function Block Diagra ...

  5. JavaScript:世界上最被误解的语言

    JavaScript,或者叫 Mocha,或者叫 LiveScript,或者叫 JScript,又或者叫 ECMAScript,是世界上最流行的编程语言之一.事实上世界上的每一台个人电脑都安装并在频繁 ...

  6. JavaScript: 世界上最被误解的语言|Douglas Crockford

    这篇文章是javascript大牛Douglas Crockford 写的,实习的时候曾读过,现在再读,又有了不同的理解,特此转载. 原文地址:JavaScript: The Wrrrld's Mos ...

  7. FOSS社区可以拯救197种濒临灭绝的印度语言吗?

    2008年1月21日,玛丽·史密斯·琼斯去世. 她的死不仅是一个人的丧生,而且是埃亚克语的最后一位讲者. Eyak在阿拉斯加中部南部使用. 由于我们有限的语言多样性,我们永久失去了一种颜色. 使用一种 ...

  8. html是最美的开发语言,世界公认3大最美语言

    在全球,每个地方都有各自的语言,即使在中国,虽然是通用普通话,但也有一些独特的语言.而每一个地方的语言,就像是一件古老的艺术品,神圣不可侵犯.接下来小编要给大家介绍的就是世界公认3大最美语言! 世界公 ...

  9. PHP是一种垂死的语言吗?

    似乎这个问题每年都会被问到,因为出于某种原因,人们对 PHP 的看法是它是业余爱好者使用的一种语言,或者是一种垂死的语言--一种正在消亡的编程语言. 在我们了解"PHP的使用率是否越来越低& ...

最新文章

  1. linux share目录 多个机器访问,如何在linux下网上邻居访问另一台机windows共享的目录?(急)...
  2. Java虚拟机学习(4):JDK可视化监控工具
  3. (收藏)Html相关网址
  4. 系统间数据交互注意项
  5. 文献记录(part22)--Learning local metrics from pairwise similarity data
  6. django用户认证系统——登录4
  7. 关于PHP的工作流引擎
  8. 并发学习之CyclicBarrier循环栅栏
  9. C语言—gotoxy()函数
  10. mysql 两表关联查询 group by having
  11. talking web android,talking web(网页朗读插件) 免费版
  12. mumu模拟器网络问题相关处理
  13. Filecoin系列 - 源码分析 - CPU SHA扩展
  14. autorecover mac的ppt_Office for Mac快捷键之苹果PowerPoint幻灯片PPT篇
  15. 报错:Parameter ‘XXX‘ implicitly has an ‘any‘ type.解决方法
  16. 基于闪电搜索算法的函数寻优算法
  17. 基于视觉导航机器人的快递分拣系统(开放源码附带论文和github仓库)
  18. 施耐德服务器屏幕不显示,施耐德 触摸屏 HMI_ presentation -人机界面.ppt
  19. redis如何将存储json和解析
  20. 手用计算机电池,MacBook 篇一:二手MacBook pro 2017上手+换电池体验

热门文章

  1. 多分类标签(one-hot向量)
  2. 计算机应用基础实训教程2000,《计算机应用基础教程-Windows-2000+Office2000》.pdf
  3. java中文分词工具_中文分词工具(LAC) 试用笔记
  4. 关于大型语言模型的争论和局限
  5. C语言中的Sleep函数的解读
  6. 业力管理 - 当和尚遇到钻石续集
  7. 教育部:每所学校贷款项目总投资原则上不低于2000万
  8. 论文笔记--决策树(Decision Tree)
  9. 一文了解互联网中的UI设计师
  10. Supervise 系统进程监控管理