成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

翻譯 | 擺脫瀏覽器限制的JavaScript

xfee / 1202人閱讀

摘要:在考慮宇航員的生命安全時(shí),輕微的打嗝或者服務(wù)中斷都會(huì)釀成生死事故。也許最大的挑戰(zhàn)來自谷歌主導(dǎo)的簡(jiǎn)稱。在最近的開發(fā)者峰會(huì),以及今年的會(huì)議上,谷歌都為安排了大量討論。由微軟提供,是廣受歡迎的編輯器,到月份已經(jīng)獲得了超過五百萬用戶。

譯者:安冬 (滬江Web前端開發(fā)工程師)
本文原創(chuàng)翻譯,轉(zhuǎn)載請(qǐng)注明作者及出處。
原文地址:http://developer.telerik.com/...

技術(shù)世界在發(fā)展,JavaScript也在同步發(fā)展。JavaScript在軟件世界建起地盤的頭幾年,它從沒想過涉足服務(wù)應(yīng)用程序、移動(dòng)端應(yīng)用程序以及機(jī)器人之類業(yè)務(wù)。今天,隨著JavaScript的發(fā)展,這門語(yǔ)言已經(jīng)進(jìn)入了聊天機(jī)器人、虛擬現(xiàn)實(shí)以及物聯(lián)網(wǎng)等新領(lǐng)域。

除了不斷開拓新領(lǐng)域,在服務(wù)端、移動(dòng)端以及桌面端應(yīng)用等生態(tài)中,JavaScript的地位也越來越穩(wěn)固。在本文中,我們將首先回顧去年所做的若干預(yù)測(cè),然后展望2017年JavaScript會(huì)在瀏覽器之外開拓哪些新地盤。先來看看JavaScript在服務(wù)端應(yīng)用程序中的情況吧。

Node.js

Node.js是構(gòu)建服務(wù)器端應(yīng)用程序的開源運(yùn)行時(shí)庫(kù),這類JavaScript代碼不是在瀏覽器中運(yùn)行的。在過去的幾年里,Node已經(jīng)從初創(chuàng)公司中流行的技術(shù)框架演變?yōu)楦鞣N規(guī)模公司所使用的主流開發(fā)技術(shù)。

Node的包管理工具npm也不再是托管服務(wù)端應(yīng)用程序模塊的工具,而是轉(zhuǎn)變?yōu)榱朔职l(fā)JavaScript代碼的規(guī)范化的工具。也許npm上的包的數(shù)量是最能表現(xiàn)Node的發(fā)展趨勢(shì)。在去年的預(yù)測(cè)中,我們制作了下面的圖表,比較了各種語(yǔ)言中包管理的數(shù)據(jù),顯示出了npm的優(yōu)勢(shì)。

截至2015年12月,modulecounts.com的模塊數(shù)量

在過去一年里,npm的增長(zhǎng)并沒有放緩的跡象。事實(shí)上,npm包的數(shù)量從20萬增長(zhǎng)到了大約35萬,促使整個(gè)Y軸比例尺都被迫調(diào)整。

截至2016年12月,modulecounts.com統(tǒng)計(jì)的包數(shù)量

增長(zhǎng)背后的因素有很多,其中一個(gè)就是很多公司在基礎(chǔ)服務(wù)中使用了Node。這同我們?nèi)ツ觐A(yù)測(cè)的結(jié)果相吻合。

“在2016年,我們可以預(yù)見到更多的公司將會(huì)進(jìn)一步采用Node和他的包管理工具npm。因?yàn)镹ode的長(zhǎng)期支持計(jì)劃,微軟、IBM、Intel、Progress等大公司將會(huì)繼續(xù)使用Node,用來替代一些.NET、Java之類的傳統(tǒng)企業(yè)解決方案?!?/p>

從Node的增長(zhǎng)趨勢(shì)來看,上面的預(yù)測(cè)結(jié)果并不意外。關(guān)于Node的案例研究表明,一部分中等規(guī)模的公司已經(jīng)開始使用Node,包括Netflix,GoDaddy和Capital One等。

Node在關(guān)鍵基礎(chǔ)設(shè)施中得到了應(yīng)用,其中最惹人注目的非NASA莫屬了。你也可以看看NASA對(duì)Node的研究,在這里我只摘錄一段話。

“在考慮宇航員的生命安全時(shí),輕微的打嗝或者服務(wù)中斷都會(huì)釀成生死事故。從EVA(艙外活動(dòng))的數(shù)據(jù)到太空中宇航員的各個(gè)領(lǐng)域里,Node.js都有助于確保所有人與事的安全?!?/p>

但是Node的發(fā)展并非只有NASA幫忙。Node的包管理工具npm已經(jīng)成為了存儲(chǔ)跨環(huán)境JavaScript代碼的不二選擇,包管理工具的統(tǒng)一化反之也推動(dòng)了Node的發(fā)展。

在本文中,我們討論的每個(gè)框架、每項(xiàng)技術(shù)都使用npm來存儲(chǔ)和分發(fā)其源代碼。在npm中搜索“jquery”,“polymer”,“react”,“cordova”或“nativescript”,你大概就能了解npm現(xiàn)在的規(guī)模。隨著JavaScript的普及,npm也越來越受歡迎。npm越普及,Node.js發(fā)展越快。我們相信,這個(gè)趨勢(shì)將會(huì)在一段時(shí)間內(nèi)繼續(xù)保持下去。

在npmjs.com搜索“angular”得到近1萬個(gè)結(jié)果。Angular是通過npm分發(fā)的眾多類庫(kù)之一。

在2017年,我們相信更多的公司將從傳統(tǒng)的開發(fā)方式(比如JAVA和C#)切換到Node。我們相信TypeScript也將有助于推動(dòng)Node的成長(zhǎng),因?yàn)樗鼘?duì)Java和C#的開發(fā)人員更加友好。Node對(duì)LTS版本的支持承諾也將有助于這一趨勢(shì),因?yàn)樗WC了這些公司使用的版本會(huì)在未來幾年得到持續(xù)的支持和維護(hù)。

總的來說,大公司不喜歡維護(hù)多套開發(fā)系統(tǒng)和語(yǔ)言,而借助Node,這些公司可以用單一語(yǔ)言來整合所有的開發(fā)系統(tǒng),還不僅僅是是服務(wù)器端的代碼。下來我們看看JavaScript是如何影響移動(dòng)端的。

PhoneGap和Cordova

PhoneGap以及它的基石Cordova,是JavaScript進(jìn)入原生開發(fā)領(lǐng)域的初次嘗試。Cordova將web代碼封裝在WebView中,借由WebView來驅(qū)動(dòng)原生的移動(dòng)應(yīng)用。這種方法允許Web開發(fā)人員使用他們已經(jīng)掌握的技能(即JavaScript)來開發(fā)移動(dòng)應(yīng)用程序,正因?yàn)槿绱?,在很多年里,Cordova都是開發(fā)移動(dòng)應(yīng)用的重要選擇。

但是這種情況開始慢慢改變了。今天,Cordova面臨了很多替代方案的挑戰(zhàn),它們大部分使用與Cordova類似的基于JavaScript的方案。也許Cordova最大的挑戰(zhàn)來自谷歌主導(dǎo)的Progressive Web Apps(簡(jiǎn)稱PWAs)。

Google的Progressive Web Apps主頁(yè)

PWAs為web世界了帶來了很多近似原生的功能,比如推送通知、離線訪問和主屏幕圖標(biāo)等。去年,我們預(yù)測(cè)Google將開始慢慢推行PWA方法。事實(shí)證明,這一預(yù)測(cè)還是過于保守,因?yàn)镚oogle已經(jīng)明確表示,他們將開展多種活動(dòng)來推廣PWAs。在最近的Chrome開發(fā)者峰會(huì),以及今年的Google I/O會(huì)議上,谷歌都為PWAs安排了大量討論。

PWAs和我們的討論息息相關(guān),因?yàn)樗呀?jīng)開始蠶食 Cordova的領(lǐng)域——需要使用原生功能的Web應(yīng)用程序。如果你的web應(yīng)用需要離線訪問或者推送通知的功能,選擇基于PWA 而不是 Cordova會(huì)是個(gè)更好的方案。盡管很難測(cè)量有多少人在混合應(yīng)用中選擇了PWAs,但已經(jīng)有很多證據(jù)表明Cordova的使用量正在縮減。下面是最近兩年Cordova每周被人們下載的次數(shù)。你可以看到,盡管Cordova下載數(shù)沒有大幅波動(dòng),但增幅已經(jīng)沒有那么明顯了。

從2014年12月至2016年12月,“cordova”npm軟件包的每周下載量。(數(shù)據(jù)來自npm-stat.com)

衰退還有一個(gè)原因。盡管我們認(rèn)為PWA正在蠶食Cordova的份額,但我們也相信,移動(dòng)領(lǐng)域中更新的開發(fā)方式也在蠶食了Cordova的份額。

Native mobile apps

JavaScript驅(qū)動(dòng)的原生移動(dòng)應(yīng)用,這種概念由Appcelerator倡導(dǎo),借助Facebook的React Native和Progress的NativeScript,目前已經(jīng)流行開來。用JavaScript開發(fā)的原生應(yīng)用程序不使用WebView,因此,不需要考慮基于Cordova的應(yīng)用程序遇到的Web性能問題 。

在去年的討論中,我們預(yù)測(cè)2016年將會(huì)是這些框架成熟并廣泛使用的一年,現(xiàn)在看來這些預(yù)測(cè)是準(zhǔn)確的。在過去的兩年里,React Native的每周下載次數(shù)在持續(xù)增加。

從2014年12月到2016年12月,“react-native”npm軟件包的每周下載量。(數(shù)據(jù)來自npm-stat.com)

NativeScript也有同樣的趨勢(shì)。

從2014年12月至2016年12月,“nativescript”npm軟件包的每周下載量。(數(shù)據(jù)來自npm-stat.com)

變化不只體現(xiàn)在這些JavaScript驅(qū)動(dòng)的原生框架的下載數(shù)據(jù)提升上,最近的一項(xiàng)調(diào)查研究(State of JavaScript 2016)表明,JavaScript開發(fā)人員對(duì)React Native和NativeScript都很感興趣。

State of JavaScript 2016對(duì)移動(dòng)開發(fā)領(lǐng)域興趣調(diào)查的結(jié)果

對(duì)JavaScript調(diào)查分析總結(jié)出了這些結(jié)果。

在興趣分?jǐn)?shù)上,“Cordova”和“PhoneGap”的得分很低,這也許是它們的性能問題導(dǎo)致的。雖然Cordova和PhoneGap所依賴的手機(jī)瀏覽器和JavaScript引擎有了很大提升,但還是不如運(yùn)行原生代碼(如React Native)。

在2017年,隨著越來越多的JavaScript開發(fā)人員開始嘗試構(gòu)建原生應(yīng)用,我們期待這些使用JavaScript構(gòu)建原生應(yīng)用的框架能夠加速發(fā)展。React框架的快速發(fā)展也將使React Native獲益,而NativeScript則宣布在5月份完成Angular 2的支持,很多項(xiàng)目也會(huì)從Angular 1升級(jí)到Angular 2,NativeScript也將會(huì)從中獲益。我們也希望JavaScript驅(qū)動(dòng)原生框架能夠吸引原生iOS和Android開發(fā)人員,因?yàn)樗试S你只用一份代碼就能在兩個(gè)平臺(tái)上構(gòu)建真正的原生應(yīng)用程序。

JavaScript越來越多地侵占了曾經(jīng)以O(shè)bjective-C和Java等語(yǔ)言為主的移動(dòng)端領(lǐng)域。但這不是JavaScript正在侵入的唯一新領(lǐng)域。下面我們將討論轉(zhuǎn)到桌面應(yīng)用程序 。

桌面應(yīng)用

根據(jù)傳統(tǒng),如果要構(gòu)建Windows或Mac應(yīng)用程序,就要使用針對(duì)專門平臺(tái)的工具,如WPF和Windows Forms,或者采用跨平臺(tái)的方案,比如Java或Adobe Air 。不過,像上文中討論的其他軟件生態(tài)一樣,基于JavaScript的解決方案也在蠶食這個(gè)領(lǐng)域。

在去年的討論中,我們討論了用來構(gòu)建桌面應(yīng)用程序的兩個(gè)最流行的JavaScript框架——NW.js和GitHub的Electron,同時(shí)判斷其使用量在2016年將大幅增長(zhǎng)。從現(xiàn)實(shí)來看,增長(zhǎng)已經(jīng)出現(xiàn)了,Electron現(xiàn)在也已經(jīng)成為開發(fā)基于JavaScript的桌面應(yīng)用程序的重要選擇。

如果比較“electron”和“nw”在npm上下載量,你將會(huì)看到“electron”(紅線)和React Native的趨勢(shì)類似,而NW.js的下載曲線相對(duì)平坦。

從2016年9月至十一月2016年,“electron”和“NW”npm包的周下載量。(數(shù)據(jù)來自npm-stat.com)

2015年12月,在GitHub上,Electron有2萬個(gè) star,NW.js有2萬5千個(gè);今天,Elecron擁有近4萬個(gè)star,NW.js則剛剛超過3萬。

Electron也被主流桌面應(yīng)用所接納。該框架現(xiàn)在為Visual Studio Code提供支持。Visual Studio Code由微軟提供,是廣受歡迎的編輯器,到4月份已經(jīng)獲得了超過五百萬用戶。Electron還在React和Angular社區(qū)做了推廣,所以在這兩個(gè)框架中使用Electron的教程可以很容易地在網(wǎng)上被找到。

我們預(yù)計(jì),Electron在2017年將會(huì)繼續(xù)占據(jù)統(tǒng)治地位。我們期待Electron能夠跟最流行的框架(主要是React和Angular)進(jìn)一步集成,從而獲得軟件供應(yīng)商更多的關(guān)注。而且隨著JavaScript繼續(xù)侵入傳統(tǒng)上由Java和基于Microsoft技術(shù)主導(dǎo)的領(lǐng)域,我們希望Electron將繼續(xù)被用作WPF,Java和Adobe Air等開發(fā)的替代品。

使用單一語(yǔ)言完成你的所有開發(fā)需求,這個(gè)方案不但有足夠吸引力,還采取了JavaScript的一些最新的開發(fā)方式。最后,讓我們看看JavaScript在一些新的軟件領(lǐng)域的表現(xiàn)。

JavaScript的新邊界

如果你向分析師詢問發(fā)展中國(guó)家的發(fā)展情況,他們脫口而出的是虛擬現(xiàn)實(shí),聊天機(jī)器人和物聯(lián)網(wǎng)(IoT)等一系列流行概念。

在所有這些新技術(shù)中,JavaScript在聊天機(jī)器人這個(gè)領(lǐng)域是最重要的,人們使用JavaScript來開發(fā)從簡(jiǎn)單的Slack機(jī)器人乃至進(jìn)行商業(yè)交易的復(fù)雜機(jī)器人。在聊天機(jī)器人領(lǐng)域中,大多數(shù)的框架在他們的SDK中都集成了Node庫(kù),包括Botkit,Microsoft的Bot Framework和Facebook的wit.ai。微軟的Bot框架的文檔甚至介紹了為什么要用Node來開發(fā)機(jī)器人。

“基于Node的Bot Builder是很有力的構(gòu)建機(jī)器人的框架,可以處理各種形式的交互,給出更多的引導(dǎo),它可以將這些可能性很清楚地展示給用戶,它使用一些框架(如Express和Restify),可以讓開發(fā)人員用熟悉的方式來開發(fā)機(jī)器人?!?/p>

重用JavaScript同樣為許多流行的IoT庫(kù)(如Losant和zetta)以及Leap Motion等設(shè)備提供了Node API。 Chrome瀏覽器團(tuán)隊(duì)和A-Frame框架團(tuán)隊(duì)就是其中的典型,還有不少團(tuán)隊(duì)在虛擬現(xiàn)實(shí)中使用JavaScript。

Google Chrome小組擁有一系列令人印象深刻的虛擬現(xiàn)實(shí)實(shí)驗(yàn),它們都是基于JavaScript構(gòu)建的,你也可以自己嘗試。

然而在C ++,Python和C#主導(dǎo) 的領(lǐng)域,JavaScript并不具有很大的優(yōu)勢(shì)。比如,Oculus Rift設(shè)備主要使用C ++,Microsoft的HoloLens則需要你用C#編寫。

我們預(yù)計(jì)這一趨勢(shì)將在2017年開始發(fā)生改變。隨著JavaScript的普及以及運(yùn)行速度的提高,JavaScript將繼續(xù)延伸到像VR和物聯(lián)網(wǎng)這樣的領(lǐng)域。隨著新的軟件開發(fā)生態(tài)系統(tǒng)的涌現(xiàn),我們期待JavaScript能夠快速上升為一等公民。

萬金油 JavaScript

10年前,在服務(wù)器上使用JavaScript是不可想象的; 今天,Node擁有350萬用戶,年增長(zhǎng)率達(dá)100%。5年前,使用JavaScript來驅(qū)動(dòng)原生iOS或Android應(yīng)用程序還只是星星之火, 今天NativeScript和React Native正以驚人的速度增長(zhǎng)。3年前,使用JavaScript構(gòu)建桌面應(yīng)用程序很少見, 今天Electron每月下載超過1萬次。

JavaScript不會(huì)用于所有場(chǎng)景下編程,因?yàn)樵S多其它語(yǔ)言更適合于解決某些具體場(chǎng)景下的問題。但是不管采用什么開發(fā)平臺(tái),JavaScript的廣泛使用一定會(huì)是個(gè)重要因素。關(guān)于這個(gè)話題,Jeff Atwood有一句廣為流傳的話,也許用它來結(jié)尾再合適不過了,因?yàn)樗陌l(fā)言總是充滿了預(yù)見性。

“可以用JavaScript編寫的應(yīng)用程序,最終都將用JavaScript編寫?!?/p>


iKcamp原創(chuàng)新書《移動(dòng)Web前端高效開發(fā)實(shí)戰(zhàn)》已在亞馬遜、京東、當(dāng)當(dāng)開售。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/85054.html

相關(guān)文章

  • 前端_JavaScript

    摘要:為此決定自研一個(gè)富文本編輯器。例如當(dāng)要轉(zhuǎn)化的對(duì)象有環(huán)存在時(shí)子節(jié)點(diǎn)屬性賦值了父節(jié)點(diǎn)的引用,為了關(guān)于函數(shù)式編程的思考作者李英杰,美團(tuán)金融前端團(tuán)隊(duì)成員。只有正確使用作用域,才能使用優(yōu)秀的設(shè)計(jì)模式,幫助你規(guī)避副作用。 JavaScript 專題之惰性函數(shù) JavaScript 專題系列第十五篇,講解惰性函數(shù) 需求 我們現(xiàn)在需要寫一個(gè) foo 函數(shù),這個(gè)函數(shù)返回首次調(diào)用時(shí)的 Date 對(duì)象,注意...

    Benedict Evans 評(píng)論0 收藏0
  • CSS開發(fā)

    摘要:譯十六進(jìn)制顏色揭秘原文地址原文作者譯文出自掘金翻譯計(jì)劃本文永久鏈接教程入門篇關(guān)于是一款進(jìn)行柵格布局的輔助工具,它讓開發(fā)者擺脫了冗雜的數(shù)學(xué)計(jì)算,同時(shí)降低了樣式與結(jié)構(gòu)的耦合程度。 【譯】CSS 十六進(jìn)制顏色揭秘 原文地址:CSS Hex Colors Demystified 原文作者:Dave Gash 譯文出自:掘金翻譯計(jì)劃 本文永久鏈接:https://github.com/xitu/...

    warkiz 評(píng)論0 收藏0
  • 怎么擺脫主機(jī)控制-怎樣擺脫電腦主機(jī)控制?

    摘要:進(jìn)去之后,點(diǎn)擊用戶賬戶下的添加或刪除用戶賬戶。當(dāng)主機(jī)控制的時(shí)候,按鍵,選擇切換用戶,進(jìn)去剛剛自己創(chuàng)建的用戶里面,就完成脫離主機(jī)了。怎樣能讓電腦脫離主機(jī)控制?一般的情況是行不通的,在學(xué)校機(jī)房里面都有相應(yīng)的軟件來管理這些學(xué)生用的電腦,而上課的時(shí)候,老師們把模式自動(dòng)調(diào)成上課的模式,這就意味著只能使用一部分軟件,當(dāng)在運(yùn)行別的無關(guān)軟件的時(shí)候就會(huì)自動(dòng)屏蔽,以前我也嘗試過用任務(wù)管理器來關(guān)掉這個(gè)客戶端,但是...

    BlackMass 評(píng)論0 收藏0
  • 如何擺脫主機(jī)控制-怎樣擺脫電腦主機(jī)控制?

    摘要:怎樣擺脫電腦主機(jī)控制步在一開始的時(shí)候點(diǎn)擊開始菜單,選擇控制面板,點(diǎn)擊用戶賬戶和家庭安全。當(dāng)主機(jī)控制的時(shí)候,按鍵,選擇切換用戶,進(jìn)去剛剛自己創(chuàng)建的用戶里面,就完成脫離主機(jī)了。怎樣擺脫電腦主機(jī)控制?1、步在一開始的時(shí)候點(diǎn)擊開始菜單,選擇控制面板,點(diǎn)擊用戶賬戶和家庭安全。2、進(jìn)去之后,點(diǎn)擊用戶賬戶下的添加或刪除用戶賬戶。3、進(jìn)去管理賬戶界面之后,點(diǎn)擊創(chuàng)建一個(gè)新帳戶。4、輸入用戶名稱,點(diǎn)擊創(chuàng)建帳戶,...

    wanglu1209 評(píng)論0 收藏0
  • 【譯】當(dāng)不使用JavaScript框架時(shí)

    摘要:在其他方面,我們只需要考慮針對(duì)特定任務(wù)時(shí)所使用框架的成本。當(dāng)我們必須使用或不應(yīng)該使用框架時(shí)我強(qiáng)烈主張要了解編寫某個(gè)工具的目的。 非常有價(jià)值的建議:哪些框架是合理的,哪些并不合理。 作者:Tod Hansmann 來源:https://opensource.com/articl...翻譯:瘋狂的技術(shù)宅說明:本專欄文章首發(fā)于公眾號(hào):jingchengyideng 。 showImg(htt...

    blair 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

xfee

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<