JavaScript的勝利

來源:互聯網
上載者:User

還記得曾幾何時,不少朋友出於安全性考慮而選擇在自己的瀏覽器上禁用JavaScript。 時至今日,這種作法已經變得荒謬可笑——理由很簡單, JavaScript已經統治了整個網路世界。 在這個充斥著平臺多樣性的全新計算時代,我們需要那些能夠運行在任意設備瀏覽器中的應用程式。 原生應用可能運行速度更快、調用更多JavaScript 無法染指的特定平臺功能,但不可否認,雲時代已然來臨、我們則身處其中。 有鑑於此,我們要繼續堅持針對專一平臺編寫桌面或者移動應用、還是拓寬思路利用 JavaScript開發一些任何平臺都能夠接納的應用方案?

當然,這個問題的具體答案取決於該應用的實際特性。 JavaScript存在多種局限——出於安全原因, JavaScript無法對用戶端中的檔進行讀取或者寫入。 而且「真正的」程式師更傾向于不斷強調此類缺點。 不過JQuery以及多種其它框架的出現已經使JavaScript 獲得了構建複雜應用程式的能力;此外,JSON(即 JavaScript Object Notation)能夠全面取代XML的資料傳輸功能。 更不用提Node.js,它剛剛在最新一輪 InfoWorld Bossie評選中脫穎而出、説明JavaScript 強勢進軍伺服器端。

  

JavaScript能走多遠?

堪稱巧合的是,InfoWorld新技術論壇上同時出現了兩篇文章,且都以探討JavaScript的潛在發展空間為主:一篇由VisiCalc聯合創造者、來自Alpha Software的 Dan Bricklin撰寫, 另一篇則由Adobe的Divya Manian 及Thibault Imbert聯手推出。 在《JavaScript在移動平臺上擊敗原生代碼》一文中, Bricklin針對JavaScript執行速度低於原生代碼這一假設作出了回應:

實際情況是,原生代碼所能夠完成的數學執行運算都能夠在JavaScript上順利實現(而且計算的相關時耗也並無不同)。 上述觀點忽略了這樣一項客觀現實,即對於各種不同類型的執行與計算工作而言,基於JavaScript的應用程式往往擁有與原生代碼相同甚至更為出色的表現。

為什麼會這樣? Bricklin解釋稱,因為睿智的程式師多年以來一直在對瀏覽器進行調整、旨在優化此類執行工作的速度表現。 此外,瀏覽器內高級執行能力也迎來了顯著提高,其中最具代表性的就是3D渲染功能。

從Adobe公司的立場出發,Manian與Imbert對 JavaScript的發展前景作出了預期,並提到了 Mozilla打造的研究專案asm.js——該專案「定義了一套JavaScript子集, 可由編譯器生成並通過JavaScript虛擬機器實現高度優化。 」更令人振奮的是,他們還對RiverTrail(一套由英特爾打造的、專門用於JavaScript開發工作的並行程式設計模型及API)進行了探究。 兩位作者還提到Adobe正在將新型HTML 5功能推進至標準化高度,其中包括Regions、Blend Modes以及 Shapes等。 縱覽整篇文章,我們發現Manian與Imbert相當於給Flash以及ActionScript這兩套行將就木的技術方案又一記猛擊。

JavaScript生態系統

JavaScript的勝利似乎給業界帶來了靈感,如今每週都會有一款新型框架與世人見面、其它與JavaScript開發相關的工具也層出不窮:

ANGULARJS,一款用於將靜態HTML頁面轉化為JavaScript應用的工具集,同時支援MVC架構。 BACKBONE. JS, 一款JavaScript庫,允許開發人員向應用中添加結構並以Model形式表現資料。 BOOTSTRAP, 一款負責網頁設備的框架,旨在與 JQuery進行對接。 ENYO, 一款物件導向型JavaScript框架,能夠被用於創建HTML 5/CSS應用。 D3, 一款JavaScript庫,能夠在無需外掛程式配合的前提下向瀏覽器推送向量圖形。 EMBER. JS, 一款前景廣闊的JavaScript框架,用於開發MVC應用程式開發並配備豐富功能。 EMSCRIPTEN, 一款能夠將C++轉化為asm.js( Mozilla打造的高優化性JavaScript子集)的編譯器方案。 JavaScript擁有成員眾多的支援工具陣營——以上列舉的僅是其中最為出色的少數解決方案。

其中大部分屬於開源專案,這些工具的不斷拓展也成為JavaScript強勁發展勢頭的重要驅動因素。

但是...... JavaScript本身又如何?

不過,經驗豐富的開發人員對此擁有存在抵觸情緒。 InfoWorld網站的Andy Oliver這樣描述他所抱持的保留態度:

JavaScript一直都是備選開發途徑中的一員—— 我們真正要做的是考量其是否適合自己的需求...... 我接觸到的管理者喜歡JavaScript,因為它允許開發人員在其中使用jQuery、Node.js甚至利用 MongoDB處理一部分資料庫事務。 但我身邊的開發人員顯然持不同觀點,他們討厭日以繼夜地進行 JavaScript開發...... 開發專案負責人同樣持抗拒情緒,因為JavaScript犧牲掉了不少寶貴的資料庫功能。

換言之,作為一種既易於學習、又有所局限的開發方案,JavaScript給程式設計工作帶來了民主化進程 ——一旦開發人員的工作目標模糊不清、最終開發成果也將變得一團糟。

不過已經有越來越多優秀的JavaScript程式師逐步成長起來,其中不少都能在asm.js或者英特爾 RiverTrail並行程式設計模型的支援下打造出卓越的工作成果。 而且毫無疑問,他們並沒有在工作中受到缺乏相關工具的困擾。 不過最出色的並不一定能獲得最終勝利。 對於x86指令集來說,笑到最後的可能也是惟一有能力活到最後的。 我不知道JavaScript要如何實現自身擴展來迎合開發人員的工作需求,例如打造整體功能的豐富程度可與微軟Office比肩的複雜應用程式。 不過鑒於通過瀏覽器視窗觀察世界的方式實在有點彆扭,至少我本人不會把壓箱底的資金投入到這類專案身上。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.