语言的设计者是有两个派系的,有些人认为程序员语言应该防止程序员干蠢事,另外一些认为程序员应该能够用编程语言干一切他们想干的事。 C/Java语言是前一个阵营的表明, JS是后一个阵营的表明。java
每每第一个阵营的语言强调性能, int就是int,double就是double 还第二个阵营就是强调便利性 ,int是var , double仍是var。程序员
选择语言的时候,其实就是在作选择题。是选择便利仍是选择性能。编程
每每新出的语言便利性都很强,是由于硬件性能提升了,从而能够为了便利性放弃性能要求。编程语言
编程语言的主要矛盾就是程序开发的便利性和硬件水平的矛盾。性能
若是可以穿越回到70年代(首先在中南海西面买块地), 那时候你坐在庞大的计算机面前写代码的时候,无心间小手一抖,多敲俩空格,而后程序oom。
不要感受上面的事情难以想象,那时候内存低的可怜,每个字符都是严格定义的,不容许任何浪费。能运行java虚拟机都是天方夜谭,怎么可能会有java语言。设计
节俭是一种美德,浪费不必定是坏事情内存
随着硬件性能的提升,出现了愈来愈多的编程语言,新出的语言每每性能上浪费,便利性上提升。要是按照几十年前的标准衡量,有一些使用新语言开发的热门应用程序对硬件资源浪费很是惊人。资源
不只编程语言有这种现象,这实际是一种广泛的历史趋势, 随着技术的发展,每一代人都在作上一代人以为浪费的事情。你能够想象下30年前打个长途电话,而如今,别说长途电话了, 有的人都就坐飞机去约炮了,这个在之前很难想象。开发
浪费能够分红好的浪费和坏的浪费。用更多的浪费换来简单的设计,并非什么坏事。虚拟机
如何才能充分利用新硬件更强大的性能最有利地“浪费”他们?
这时候问题就回到了开始, 证实:凡是能用JS开发的最终都会用JS开发
JS这种语言扩展性极强, 性能比起其它语言只能呵呵了。 可是硬件速度会提升很快。 Paul Graham算过,若是摩尔定律一直成立。一百年后计算机的运行速度是如今的74乘以10的18次方倍。(准确地说是73 786 976 294 838 206 464倍)