2016年度 JavaScript 展望(上)

【編者按】本文做者爲資深 Web 開發者 TJ VanToll, TJ 專一於移動端 Web 應用及其性能,是《jQuery UI 實踐》 一書的做者。 本文系 OneAPM 工程師編譯呈現,如下爲正文的第一部分。點此閱讀第二部分javascript

在過去的幾年間,JavaScript 這種本來用於 Web 瀏覽器端的腳本語言,愈來愈多地出如今更普遍的軟件應用中。如今,JavaScript 可用做服務器端代碼,運行 iOS 與 Android 應用,甚至控制機器人。很難想象還有什麼軟件生態系統是 JavaScript 沒有影響到的。html

JavaScript 之因此能在這些新領域長驅直入,很重要的一個緣由就是性能。然而,幾年之前,在服務器端運行 JavaScript 仍是徹底不可想像的。在2008年,谷歌開始開發瀏覽器,並進軍 JavaScript 引擎世界,繼而觸發了一場性能大戰,最終極大地提高了該語言的速度。最近的一些努力,諸如 asm.js 只是錦上添花罷了。前端

本文將會介紹,除了用 JavaScript 框架運行服務器端 JavaScript、建立移動 apps 以及桌面應用以外,將來將何去何從?文中將直接引述許多 JavaScript 解決方案的開發者之觀點。讓咱們首先了解 Node.js 的發展,這或許是 JavaScript 的首個新領域。java

##Node.js Node.js 是一款基於谷歌 V8 JavaScript 引擎的開源式運行時環境。儘管許多公司與框架都試圖在服務器端運行 JavaScript,Node.js 倒是首個大規模成功作到這一點的運行時環境。node

從2009年首次推出開始,Node.js 的流行度可謂日新月異。使用 Ndoe.js 的公司數不勝數,而此前新近創建的 Node.js 基金會則包括 IBM,Intel,PayPal 以及 Microsoft 等巨頭。Node.js 包管理器——npm,更是成爲2014年軟件世界中規模最大的包管理器,如今其包含的模塊數是 Java 與 Ruby 等類似包管理器的兩倍左右。react

2016年度 JavaScript 展望(上)

npm 包管理器的增加狀況。圖片來源:modulecounts.comjquery

然而,Node.js 的成功並不是沒有經歷波折。2014年末,一羣開發者爲此流行框架建立了一個分支,他們認爲此前缺乏活躍積極的新貢獻者,致使 Node.js 版本更新太慢。這一新的框架,io.js很快虜獲了衆多追隨者與社羣的支持,這也讓許多人擔憂 Nodo.js 世界將會長期處於分裂狀態。幸虧,2015年6月,Node.js 與 io.js 實現合併,這些擔心也不復存在。linux

這次合併在必定程度上促進了 LTS 計劃( Node.js 版本長期支持計劃)的誕生。根據該計劃,Node.js 每一年都會指定一個版本爲 LTS 版本,併爲其提供長達18個月的支持。android

2016年度 JavaScript 展望(上)

這一開發週期的目的,是爲了同時知足那些想走在前沿的開發者與須要穩定版本的大公司的需求。不可避免地,這樣的開發週期也對 Node.js 的將來產生了重要影響。筆者就「2016年 Node.js 的最大變化」採訪了 Node 基金會的 Mikeal Rogers,他的回答以下:ios

「全新的開發週期將成爲最大的變化。每一年,咱們都會發布兩個主要版本,而只有其一將獲得長期的支持。這確實是史無前例的變化。此前,咱們並未真正意義上實現 LTS 計劃。所以,對廣大開發者而言,這是全新的變化;對企業而言,這是提升產品採納率的新機遇。」 ——Node 基金會,Mikeal Rogers。 ##Node.js 2016年展望 在2016年,Node.js 與其包管理器 npm 的採納率有望進一步提高。諸如 Microsoft、IBM、Intel、Progress Software 等大公司對 Node 的持續採用,以及諸如長期支持計劃等企業友好型功能的推出,可能預示着 Node.js 在企業間的採納率持續增加,甚至取代一些 .NET 及 Java 提供的典型企業級解決方案。

此外,npm 模塊的指數級增加也有望繼續保持,由於 npm 最近推出的版本[專一於爲客戶端 JavaScript 提供更好的支持](aimed at providing better support for client-side JavaScript),從而削減 Bower 等客戶端 JavaScript 包管理器的需求。隨着愈來愈多的開發者開始在 npm 註冊客戶端腳本與 jQuery 插件,npm 的觸角只可能進一步延伸。實際上,根據 Mikeal Rogers 的觀點,npm 增加的主因實際上是 Node.js 生態系統的進一步完善。

」幾年前,我對 npm 的增加率進行量化,進而建立了一副 npm 增加預測圖。當時,許多人認爲這圖簡直是天方夜譚,由於圖中預測在一年多的時間裏,模塊數量將超過10萬,並且增加率不會趨於平衡狀態。但實際狀況倒是,僅僅很多天,模塊數量就超過了10萬,這讓我也頗感驚訝。

若是你仔細瞭解 npm 的增加模式,你會發現推動 npm 持續增加的動力來自 node.js 生態系統。這裏是爲衆多使用案例建立子平臺的最佳環境。即使生態系統的一些部分會趨於平衡狀態,可是新的快速成長的生態系統很快就會取而代之。」 ————Node 基金會,Mikeal Rogers。

做爲以上觀點的佐證,幾乎本文涉及的全部 JavaScript 解決方案,包括 Cordova,React Native 與 NativeScript 都使用 npm 做爲包管理器。若是你在 npm 搜索一下 「jquery」、「polymer」、「meteor」或「react」,就能瞭解 npm 如今的規模是多麼龐大。固然,隨着 npm 的普及率持續增加,Node.js 的採納率也是一路高歌猛進。做爲軟件世界首個主流的服務器端 JavaScript 框架,其將來可謂一片光明。

下面,讓咱們來一些不在服務器端運行 JavaScript,而是使用 JavaScript 運行移動 apps 的技術。

##PhoneGap and Cordova 與 Node.js 是首個將 JavaScript 運行在服務器端的主流解決方案相相似,PhoneGap 是首個使用 JavaScript 運行本地移動 apps 的主流解決方案。最初,PhoneGap 於2009年由 Nitobi 創立,在 2011年10月由 Adobe 公司收購。做爲收購的一部分,PhoneGap 的源代碼被捐贈給 Apache 軟件基金會,此項目也改名爲 Cordova。現在,Cordova 已經成爲一個免費的開源框架,獲得許多公司的支持。而 PhoneGap 則是 Adobe 全部的一個 Cordova 分支。

多年來,Cordova 都在與性能不佳的名聲作鬥爭。其中,最廣爲人知的抱怨出如今2012年,出自科技界最有影響力的人之口:

「當我檢討過去幾年的經歷時,發現咱們公司犯下的最大錯誤,是在 HTML5 中投入了太多努力……」 Facebook 創始人,Mark Zuckerberg。

從2012年開始,一些公司開始介入解決 Cordova 的性能問題。這催生了 IonicOnsen 等以性能爲中心的 UI 框架,以及 Kendo UI Mobile,由 PhoneGap 團隊與 Telerik 公司聯合開發的工具改進,還有 Crosswalk 提供的全新 Web 視圖,以及 Telerik 插件市場中的多款高質量插件。

2016年度 JavaScript 展望(上)

Telerik 插件市場

除了這些公司提供的性能援助,由移動 OS 創造者提供的新功能,諸如 Android 的自動更新 Web 視圖iOS 的新 WKWebView API,有效地幫助了 Cordova 的性能提高。基於此,筆者採訪了前 Adobe PhoneGap 團隊成員 Brian LeRoux,諮詢他對 Cordova 的將來做何設想。

「現而今,Cordova 已經變得至關穩定。咱們努力保持簡潔,用插件接口實現各類功能,並儘量在 Android M 與 iOS 9 等平臺更新中保持主動。雖然經歷了幾年的顛簸,可是如今’小模塊化’的思想終於開始落地生根,這讓我頗感欣慰。若是不是要在本身的項目中延展使用 Cordova,終端設備開發者恐怕沒法瞭解這一思想的好處。」 Brian LeRoux

##Cordova 2016年展望 與 Node.js 類似,Cordova 的穩定性對於剛開始在移動開發領域試水的大公司而言尤其誘人。而使用 Cordova 結合 HTML,CSS 以及 JavaScript 打造移動 apps 的方法對衆多 web 開發者來講也極具吸引力,尤爲是與使用 Xcode 與 Android Studio 進行本地開發的方式相比。

儘管 Cordova 的普及率持續走高,其開發方式卻遭到了兩個方面的挑戰。挑戰一來自努力推廣漸進式應用(progressive apps)的谷歌,此類應用包含啓動時屏幕、主屏幕布局以及離線訪問等功能。目前,漸進式應用仍處於早期階段,其功能僅限於 Android 版 Chrome 瀏覽器。然而,在2016年,谷歌確定會繼續推廣漸近式應用的概念。

Cordova 開發的第二個更爲迫切的挑戰來自 JavaScript 世界的一項新近發展:使用 JavaScript 構建真正的本地移動應用。

本文的後半部分將重點介紹2016年本地移動應用(Native mobile apps)與桌面應用可能的新發展,以及 JavaScript 可能觸及的新領域。敬請期待。

本文系 OneAPM 工程師編譯呈現。OneAPM Browser Insight 是一個基於真實用戶的 Web 前端性能監控平臺,可以幫你們定位網站性能瓶頸,網站加速效果可視化;支持瀏覽器、微信、App 瀏覽 HTML 和 HTML5 頁面。想閱讀更多技術文章,請訪問 OneAPM 官方技術博客

本文轉自 OneAPM 官方博客

原文地址:http://developer.telerik.com/featured/what-to-expect-from-javascript-in-2016-beyond-the-browser/

相關文章
相關標籤/搜索