JavaScript是一門被誤會最深的語言,這話一點不假,咱們看下它的發展歷史.前端
1995年,Netscape要推向市場,須要一門腳本語言來配套它.是使用一門已有的語言,仍是發明一門新的語言,這也不是我能決定的.來自高層管理人員的強制命令是這門語言必須"看起來像Java".這樣也就排除了已有的語言Perl,Python,和Tcl,以及Scheme.程序員
當時Netscape(網景)公司招了個程序員來幹這件事情.他就是JavaScript之父Brendan Eich,Brendan Eich是個很聰明的小夥,很喜歡函數式編程,對Scheme至關在行.編程
事情是這樣的,當時若是這事讓Brendan Eich來幹,那麼如今所謂的JavaScript就是Scheme了,IT界將進步至少10年,腳本代碼那就是純純的函數式了,還能夠用開發工具,用編譯器來作.固然腳本寫出來多是這樣子的.後端
(begin
(display"Hello, World!")
(newline))
好多括號是否是.由於當時JAVA很流行,Brendan Eich的某位不懂技術的上司要求把JavaScript開發成象Java,可是Brendan Eich仍是喜歡函數式編程.因此就成了這樣.前端框架
document.write("Hello World!");
標準的命令式,沒什麼特殊的,函數式編程被埋在了傳統命令式的外殼之下.Brendan Eich還表示,若是他在十天內作不出JS,會產生另一種更糟的語言
而這個給了Brendan Eich十天時間,並作得象Java樣的上司就是Rick Schell.一個糟糕的領導,毀掉的不是一個下屬,而是整個世界,相信寫過JS代碼人的都有這種痛苦的感覺.架構
好在Brendan Eich畢竟是大牛,10天時間,給JS帶來了一些很爛的東西,但基本上精華的東西,仍是都放上去了,就是Scheme所擁有的,這讓JS成爲一門完整的函數式語言成爲可能.框架
這裏有兩個本人認爲很關鍵的人物,第一個是:函數式編程
Douglas Crockford是一名來自Yahoo!的資深JavaScript架構師,以創造和維護JSON (JavaScriptObject Notation) 格式而爲你們所熟知函數
他根據JS的靈感創造了JSON,JS+JSON,好用多了吧,還給出了JS精粹,告訴咱們怎樣用好JS.對JS進行裁減,只用一個最好的部分集合.真是貢獻.工具
另外一個就是,Jeremy Ashkenas, 它給出了Underscore.js這樣一個JS的最底層函數式編程基礎庫,經過JS的基本功能,包裝了大量的函數式特性.補完了JS的函數式編程支持.固然他的貢獻不單單這點,他甚至還繼續創造了CoffeeScript
CoffeeScript 是一套 JavaScript 的轉譯語言。受到 Ruby、Python 與 Haskell 等語言的啓發[1],CoffeeScript 加強了 JavaScript 的簡潔性與可讀性。此外,CoffeeScript 也新增了更復雜的功能,例如列表內涵(List comprehension)、模式匹配(Pattern matching)等。通常來講,CoffeeScript 能夠在不影響執行效能的狀況下,縮短約三分之一的程式碼長度[3]。自從2011年6月以來,CoffeeScript 已是 GitHub 上最受矚目的專案之一。
這下JS化身爲CS, CoffeeScript終於補完了函數式編程,語法更簡潔,並且是編譯式的.這就讓寫JS的錯誤變的更少了,編譯出來的代碼就是JS.
固然,還有幾個不得不提的東西,就是在Underscore.js的基礎上,有人又開發出了JQuery,BackBone這樣的JS庫.讓JS能夠作更復雜的應用了.
通過補完後的的JS,就象是被打磨後的鑽石,終於發出了它的光芒,已經值得用它來些一些應用程序了.固然,事情遠不止於此.
JS語言層面補完了,也有了Jquery這樣的庫,但這點東西,作應用仍是遠不夠的.
最近出了個叫Node.JS的東西,它能夠用JS寫後臺,還有個Angular等相似的東西,能夠用來寫前端的框架.
至此,JS語言的後端,前端框架和支撐平臺都獲得了補完,能夠真正作應用了.至少開發所須要的東西足夠.
可是.