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