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