摘要:與是年最早公開發布的兩個框架,后來者還包括與。此外,另一重心是與團隊的合作,預計將貫穿年。年展望對平臺而言,年的重點是提升穩定性與采納率。最早由開發,于年公開發布。時間會告訴我們,的極速增長能否在年持續下去。
【編者按】本文作者為資深 Web 開發者 TJ VanToll, TJ 專注于移動端 Web 應用及其性能,是《jQuery UI 實踐》 一書的作者。
本文系 OneAPM 工程師編譯呈現,以下為正文的第二部分。點此閱讀第一部分。
本地移動 apps在2015年,出現了一種新的基于 JavaScript 的移動應用開發類別:JavaScript Native。與基于 Cordova 或 PhoneGap 的應用不同,JavaScript 本地應用使用平臺的本地控制與范型建立用戶界面,無需涉及瀏覽器或 web 視圖。
JavaScript Native 框架試圖提供一種兩全其美的方式建立 iOS 與 Android 應用:使用 JavaScript 編寫程序邏輯(而不是 Java,Swift 等),使用平臺的本地用戶界面 API 建立適應原生 OS 的應用,從而實現可能的最佳性能。
使用 JavaScript 打造的移動 apps 舉例,點此獲得源代碼。
React Native 與 NativeScript是2015年最早公開發布的兩個 JavaScript Native 框架,后來者還包括 Fuse 與 tabris.js。自然,不同的框架提供了不同的功能。比如說,React Native 允許重用 React JavaScript 框架,而 NativeScript 允許直接調用 iOS 與 Android APIs。但是,他們都具備使用 JavaScript 搭建真正本地 apps 的高級方法。
盡管使用 JavaScript 建立本地 apps 的想法對 web 開發者而已相當誘人,但與 Cordova 之類的框架相比,JavaScript Native 框架也存在如下的一些缺陷:
由于 JavaScript Native 框架不使用瀏覽器,你必須學習用于搭建界面的框架相關的 APIs,而不是像打造 Cordova 應用那樣簡單地使用 HTML 語言。
由于 JavaScript Native 應用是本地應用,在建立較為大型的應用時,內存管理是需要額外考慮的問題,這與建立本地 iOS 與 Android 應用時如出一轍。
最后,由于 JavaScript Native 框架非常新興,可參考的案例與教程都很有限。與那些經歷多年發展的框架相比,這些框架還很不成熟。
就這些框架在2016年的發展,筆者采訪了來自 React Native 團隊的 Christopher Chedeau (aka Vjeux)以及 NativeScript 的產品經理 Valio Stoychev。兩者都不謀而合地關注于穩定性。
JavaScript Native 2016年展望“就 React Native 而言,我們已經度過了早期的新鮮階段,現在正進入的這個階段要求我們變得更加牢靠。你可以發現,在性能工具優化、核心 APIs 提升,錯誤消息優化以及邊緣案例修復方面,我們投入了大量的努力。這樣,Facebook 內外的工程師才能隨心所欲地打造更加高質量的移動 apps。“ ——Facebook,Christopher Chedeau (Vjeux)。
”隨著用戶基礎的不斷擴張,我們要為用戶確保一個魯棒的框架,才能在此基礎上打造切實可行的應用。因此,我們打算繼續在性能及調試工具方面努力,從而提高 NativeScript 開發者的體驗。此外,另一重心是與 Angular 2 團隊的合作,預計將貫穿2016年。” ——Telerik,Valio Stoychev。
對 JavaScript Native 平臺而言,2016年的重點是提升穩定性與采納率。隨著 React Native 與 NativeScript 等框架不斷鞏固其功能集,預計圍繞這些框架的工具也會越來越多,比如 Telerik 用于搭建 NativeScript 應用的 Telerik Platform。
當然,時間會告訴我們,2015年 JavaScript Native 應用的大熱能否在2016年轉化為大規模的使用。但是,使用這些框架成功打造的大量高質量應用(查看 React Native 案例展示及 NativeScript 案例展示)似乎在暗示,用 JavaScript Native 方法打造應用的模式將會流行很長一段時間。
對需要結合本地 UIs 與本地應用的公司而言,JavaScript Native 框架相比于使用 Xcode 與 Objective-C/Swift 打造 iOS 應用以及使用 Android Studio 與 Java 打造 Android 應用,提供了更加強有力的選項,尤其是考慮到多數公司的開發者都具備一定 JavaScript 開發能力。
總而言之,JavaScript Native 應用對 JavaScript 開發者而言是令人激動的全新戰場。JavaScript 開發者不再需要學習本地編程語言就可以編寫本地移動應用。然而,本地移動應用并不是 JavaScript 滲入的唯一領域——在傳統的桌面應用領域,JavaScript 也有涉足。
Desktop 應用習慣上,如果想搭建一個 Windows 或 Mac 應用,你會使用 WPF 與 Windows Forms 之類的平臺特定工具或 Java、Adobe Air 之類的跨平臺接口。但是,與本文中討論的其他軟件生態系統一樣,基于 JavaScript 的解決方案正慢慢地侵入這一版圖。
該領域內首個基于 JavaScript 的解決方案是 Node-WebKit,由 Intel 創建并于2011年底實現開源。Node-WebKit 現在又稱為 NW.js,因為它已經從 WebKit 切換為 Chromium。NW.js 的實現方式與 Cordova 有些類似,只不過它針對的是桌面應用。
NW.js 最早由 Intel 開發,于2011年公開發布。
NW.js 會將 web 應用打包至本地 shell,同時提供訪問本地桌面 APIs,諸如文件選擇器、窗口菜單等功能。這種組合允許你使用基于統一標準的 web 技術打造 Windows,OS X 以及 Linux 桌面應用。
如果快進一兩年,你會發現 NW.js 并非使用這種基礎架構的唯一框架。2015年4月,GitHub 宣布推出 Electron,一款相似的用于創建跨平臺應用的框架。
GitHub 于 2015年4月宣布推出 Electron
Electron 最早作為 Atom(GitHub 的 web 端文本編輯器)的 shell 開發出來,之后經過拆分更易于在其他項目中使用。因為 GitHub 的支持,Electron 的流行度突飛猛進,現在在 GitHub 上有超過2萬顆星(很快趕上 NW.js 的2.5萬顆星)。
2015年,作為 Microsoft 全新跨平臺 Visual Studio Code IDE 背后的引擎,Electron 再次登上頭條。此外,瀏覽一下社群創造的 Electron 資源列表,就會了解 Electron 在開發社群是多么受歡迎。
桌面應用 2016年展望與本文討論過的許多技術相似,用于搭建桌面應用的這些跨平臺 JavaScript 工具的未來似乎前途無量。有了 GitHub、Microsoft 甚至 Slack 這些先例——Slack 其實并非基于 NW.js 或 Electron 搭建,但是也使用了 web 技術創建本地應用——其他公司可以信心滿滿地使用 web 技術搭建桌面應用。預計,在2016年,NW.js、Electron 之類的項目將會創建出更多的桌面應用。
2016年 JavaScript 的新領域盡管本文討論的話題似乎有些分散——服務器端代碼、移動 apps 以及桌面應用,敘述的主體卻是基本一致的:短短幾年時間里,在這些環境中運行 JavaScript 從不可想象演進為大勢所趨。在不到十年時間里,JavaScript 從用于處理圖片翻轉的小兒科語言,進化為可能是世界上最流行的編程語言。JavaScript 的未來,似乎無可限量。
2007年,Jeff Atwood 發出豪言:”任何能用 JavaScript 編寫的應用,最終都會由 JavaScript 寫就。“這句話簡直如先知一般準確。事實上,JavaScript 已經延伸到許多本文未曾涉及的領域,例如通過 Johnny-Five 這類項目運行在硬件,甚至在蘋果最近宣布的用于 Apple TVs 的 tvOS 中成為創建本地應用的一等公民。
促使 JavaScript 不斷成長的一大原因,是人們對使用單一開發模型打造多種范型軟件的渴望。大多數公司,尤其是小公司,都無法雇傭足夠數量的開發者,以滿足人們當前使用的不計其數的操作系統與設備類型的需求。甚至在 Facebook 這種規模的公司,這也是一大問題,正如 Christopher Chedeau 所說:
”在我眼中,開發者世界的一大悲哀是社群依據語言(甚至是生態系統)進行劃分。 JavaScript、Java、Objective-C、Python 以及 C++ 等。實際上,這導致了資源的巨大浪費,因為針對每個生態系統,都要開發類似的一套工具,諸如包管理器,IDE,核心函數庫,知識庫等。
舉個具體的例子吧,在 Facebook,每個功能我們都必須實現三次:Web 版,iOS 版以及 Android 版。更糟的是,由于一個工程師往往難于同時掌握這些生態系統,我們通常需要三個人來實現一個功能。這真是悲哀。
為了解決該問題,我首先想到的是,我們需要一種單一的語言或生態系統。有了 React Native,我們更趨向于 JavaScript 語言,但從宏觀的角度看,哪一種語言并不重要。重要的是,只保留一種語言。“ —— Facebook,Christopher Chedeau。
隨著 JavaScript 迅速地在移動、桌面、服務器、硬件領域獲得青睞,它已經成為唯一可能讓此美好愿景成為現實的語言。時間會告訴我們,JavaScript 的極速增長能否在2016年持續下去。不過,JavaScript 工具在軟件生態系統的快速普及似乎預示著 JavaScript 無可限量的未來。
基于此,筆者將用 Brendan Eich 的名言作為本文的結尾:“永遠相信 JS(Always bet on JS)。”
本文系 OneAPM 工程師編譯呈現。OneAPM Browser Insight 是一個基于真實用戶的 Web 前端性能監控平臺,能夠幫大家定位網站性能瓶頸,網站加速效果可視化;支持瀏覽器、微信、App 瀏覽 HTML 和 HTML5 頁面。想閱讀更多技術文章,請訪問 OneAPM 官方技術博客。
原文地址:http://developer.telerik.com/featured/what-to-expect-from-javascript-in-2016-beyond-the-browser/
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79233.html
摘要:然而這次的文章,就像賀師俊所說的這篇文章是從程序員這個老年度總結前端掘金年對我來說,是重要的一年。博客導讀總結個人感悟掘金此文著筆之時,已經在眼前了。今天,我就來整理一篇,我個人認為的年對開發有年終總結掘金又到 2016 Top 10 Android Library - 掘金 過去的 2016 年,開源社區異常活躍,很多個人與公司爭相開源自己的項目,讓人眼花繚亂,然而有些項目只是曇花一...
摘要:年已經過去,這一年前端領域發生了什么有哪些技術和項目引人注目工程師們觀點和看法又有怎樣的變化在此,整理了一些對過去的年盤點的資料,一是希望能借此提高自己的姿勢水平,二是希望能為年的學習有所指導。 2016年已經過去,這一年前端領域發生了什么?有哪些技術和項目引人注目?工程師們觀點和看法又有怎樣的變化?在此,整理了一些對過去的2016年盤點的資料,一是希望能借此提高自己的姿勢水平,二是希...
摘要:前端每周清單年度總結與盤點在過去的八個月中,我幾乎只做了兩件事,工作與整理前端每周清單。本文末尾我會附上清單線索來源與目前共期清單的地址,感謝每一位閱讀鼓勵過的朋友,希望你們能夠繼續支持未來的每周清單。 showImg(https://segmentfault.com/img/remote/1460000010890043); 前端每周清單年度總結與盤點 在過去的八個月中,我幾乎只做了...
摘要:確定新的包命名規則為了盡可能避免包的誤植域名現象,將不會再允許使用相似的包命名不過會進一步鼓勵開發者使用自己的命名空間來發布包。本文是對其幾十年來技術之路的回顧與展望,也是一代技術人的青春回憶。 showImg(https://segmentfault.com/img/remote/1460000012846628); 前端每周清單專注前端領域內容,以對外文資料的搜集為主,幫助開發者了...
閱讀 1966·2023-04-25 16:19
閱讀 3091·2021-11-24 09:39
閱讀 828·2021-11-16 11:44
閱讀 1687·2019-08-29 12:52
閱讀 1138·2019-08-26 13:33
閱讀 1073·2019-08-26 10:26
閱讀 2199·2019-08-23 16:42
閱讀 2566·2019-08-23 14:37