关于Ruby和JavaScript对比的思考

最近研究得到了一些比较主观的自以为有趣的结论:

关于JavaScript & Ruby

JavaScript 和 Ruby可以说是两兄弟,他们都携带了Lisp的基因。 Ruby里面 Class(类)、Method(方法)、Proc/Lambda & Closure(匿名函数/lambda表达式,往往伴随着闭包工作) 他们是分开的。这是Ruby的“最小惊讶“设计原则,十分合理,秩序竟然设计精良。

JavaScript里面 通过 一个 function(函数) 把 类、函数、方法、匿名函数、闭包 都合在一起了。 以前我们说 JavaScript简单,简单在他只有一个function没有其他的复杂概念存在。 现在我们说JavaScript复杂,是因为一旦你开始解剖他的高级特性,它往往都是相伴相生,可能会带来混乱感。比如在 class问题上,JS可能有四五个充满漏洞的方法,直到ES6推出 class语法糖。 就闭包而言,js和ruby的存在是一样的。 甚至 ruby的 proc/lambda更纯粹一些,他只是表示代码块。而JS需要保持在一个function的外壳下。 他们都在模仿Lisp中S表达式提供的特性。 还有一点,我们不能把形式语法当做一个语言的本质。相反它不是语言的本质,他只是人为设计的外形。 应该站在语法的特性上来思考语言的异同。

Mark24

Everything can Mix.