標 題: JavaScript真的要一統江湖了

http://www.newsmth.net/nForum/#!article/Python/125347?p=4前端

標  題: JavaScript真的要一統江湖了
發信站: 水木社區 (Fri Sep 25 16:13:31 2015), 轉信
  
我out了,剛看到ECMAScript6標準的新特性。
  
感受ES6出來之後,JavaScript才真的算是一門合格的語言了。
  
以前經過函數對象和原型實現的一系列類的屬性操做以及繼承多態等老是不適應,特別
是對於C++/Java出身的人來講。這下好了,ES6帶來了類(class)關鍵詞,同樣的構造,一
樣的操做。
還有很好用的 生成函數(在Python, C#這樣的語言中普遍使用),處理函數內部狀態保
存以及恢復的操做,不用再對this疑惑不解了。還有配合Promise更方便的處理異步編
程。
跟C#, Java8相似的lambda表達式,感受比Python的lambda關鍵詞仍是要易讀一些。
跟python同樣, 支持列表的拆包操做。
還有跟python很像的import模塊導入機制。支持對模塊的重命名,支持所有導入。
還有不少改動,不過改得愈來愈好了。
  
語言層面說完了,下面說說應用層面:
前端不用說,已是事實上的標準了。  
後端有node.js,至關強大,幾乎無所不包。npm中建站數不勝數的子模塊比django爲代
表的模塊的還要多得多,整個小網站跟玩似的,特別是mongo+koa+angularjs+node,看
了一下傻眼了。
桌面有nw.js,自帶跨平臺。異常強大,速度已經不是問題了,你們能夠體驗一下那些
node-webkit寫的程序,好比atom,除了內存佔用稍大,速度已經很快了。
移動端目前稍顯劣勢,可是也有PhoneGap這樣的工具,同樣也作出了不錯的程序。
  
以前因爲對JavaScript有些抵觸心理,可是ES6一搞,語言已經不是障礙了。java

 

你能夠先了解一下JavaScript語言,大體翻翻JavaScript: the Good Parts, 中文名叫 JavaScript
精粹,很小的一本書,很快就能看完,瞭解ES6,能夠看看http://es6-features.org, 以及
https://github.com/lukehoban/es6features/blob/master/README.mdnode

確實,ES6是今年纔出來的,因此主流的瀏覽器都還不能徹底支持,可是chrome, firefox以
及edge等一干瀏覽器已經支持大部分特性了,edge基本全支持了,chrome,firefox更新的速
度也仍是很快的。看這個地方能夠看到主流瀏覽器的支持特性比較
http://kangax.github.io/compat-table/es6/python

 

不要這麼糾結於多線程,多線程其實問題比較多,Java是實現了多線程是吧,可是數據的
同步操做折騰起來仍是比較麻煩的。協程+多進程纔是王道,Node實現的單線程可是異步io
的效率其實很高,在不少benchmark上都跑出了不錯的成績,比PHP, Java等一干語言寫的
還要好。須要數據共享,經過procbuf, MessageQueue實現多進程間通信也不是難事,而且
效率不低。 git

 

benchmark上nodejs不太可能比java強吧。除非java的實現很矬。nodejs也沒啥,nonblocking io,每一個語言都有。要論coroutine,python和go都實踐好久了,不知道你爲啥看到js也實現就激動成這樣子。
  
nodejs的框架我看大多數仍是跳來跳去的回調。用多了真的會吐的。
  
給我鏈接一下pgsql讀取hstore數據列能行嗎?調用一個阻塞了線程的處理圖片的c語言模塊能行嗎?這個沒有那個沒有,別光看語法終於像python了就追新啊。
  
js拿來作桌面程序就別說了。
  
在我看來,JS無非是不像之前那麼矬了。反正若是是個人話,我還會再等等社區成熟個三四年再說。最好能一個殺手級的強大特性才能吸引我。 angularjs

 

你說的是Python等語言的過去,我說的是JavaScript的將來。
Python3比起Python2,我沒看到太多的進步;可是JavaScript真是突飛猛進,這就是差
別。
若是你要作網站你就明白了,先後端一體通吃,一門語言就搞定了,而且那麼簡單直
接, 其實Python作後臺語言也很好,可是效率比起node仍是差了不少,變態級優化的V8
引擎真得很嚇人,django的生態圈也不如node,你能夠看看npm裏面的模塊,拿來就可
用,比django多得多。
其實Python服務器端,有django這樣的生態圈;Python桌面端GUI,甚至是移動端也有
Kivy這樣的神器。可是開發網絡應用程序你仍是避免不了要用JavaScript,此前語言層面
上揮之不去的陰影,忽然變得那麼熟悉,你能明白我在說什麼嗎? es6

 

一看新feature就激動不已的,
八成是個沒被坑過的新手。
  
你須要相信一點,人與人之間沒太多不一樣。你想到的別人也想到,你能作的別人也能
作。尤爲是一個羣體,一個組織之間,能力上的差異會更小。因此區別只是你們的取捨
不一樣而已。你看到別人說了10個好處,就應該默認還有10個壞處對方沒說。
  
爲啥說老人謹慎、穩重,都是這麼被坑過來的呀。
  
另外,一統江湖是人類的內在需求,是天性之一。
一樣的,差別化,也是人的內在需求,也是天性之一。
因此,別扯什麼一個語言一統江湖了,不可能的。 github

相關文章
相關標籤/搜索