語言的設計者是有兩個派系的,有些人認爲程序員語言應該防止程序員幹蠢事,另外一些認爲程序員應該能夠用編程語言幹一切他們想幹的事。 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倍)