javascript
让JavaScript回归函数式编程的本质
? ? 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語言的后端,前端框架和支撐平臺都得到了補完,可以真正做應用了.至少開發所需要的東西足夠.
? 但是.
?
?
總結
以上是生活随笔為你收集整理的让JavaScript回归函数式编程的本质的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring MVC控制器用@Respo
- 下一篇: lua工具库penlight--06数据