在編程世界,流行的是科學(xué),嚴(yán)謹(jǐn)和精確的準(zhǔn)則。這不是說編程是一種缺乏趨勢的行業(yè)。不同的是,由于編程重視的是高效,用戶化和使用方便,因此編程技術(shù)需要不斷更新?lián)Q代。那么,在即將到來的2017年和未來的幾年內(nèi),會有哪些新技術(shù)出現(xiàn),成為新的潮流,又有哪些技術(shù)的熱潮會漸漸消退呢?下面所列出的10種技術(shù),摘自infoworld.com的一位編輯Peter Wayner撰寫的文章21 hot programming trends -- and 21 going cold。本文旨在與大家一起討論這個(gè)話題。
1. JavaScript MV 框架成為熱門,JavaScript文件遇冷
很久以前,我們寫JavaScript代碼來彈出一個(gè)消息窗口或檢查表格中含有@符號的電子郵件地址。不過現(xiàn)在有了HTML Ajax應(yīng)用程序,它們非常精細(xì),因此很少人從零開始寫代碼了?,F(xiàn)在比較簡單的方法是:使用一個(gè)有詳細(xì)說明的框架和寫一點(diǎn)膠水代碼來執(zhí)行商業(yè)邏輯?,F(xiàn)在有很多框架,如Kendo, Sencha,jQuery Mobile,AngularJS,Ember, Backbone, Meteor JS等等,所有這些框架都是為了處理Web應(yīng)用程序以及頁面事件和內(nèi)容而準(zhǔn)備的。另外,還有一些為智能手機(jī)和平板電腦提供的跨平臺框架,其中包括nativescript,PhoneGap和Sencha Touch等,它們可以用來創(chuàng)建源自HTML5技術(shù)的app。
在livecoding.tv上,一位開發(fā)者使用Phonegap開發(fā)一款HTML5 App
2. SVG + JavaScript on Canvas受歡迎,F(xiàn)lash風(fēng)光不再
Flash風(fēng)光了很多年,很多有才華的編程大師建立了一個(gè)Flash代碼堆垛來處理復(fù)雜的過渡和動畫。不過,現(xiàn)在JavaScript層具有很多相同的能力。瀏覽器的制造商和開發(fā)者都在為Flash的結(jié)束而歡呼。JavaScript可以與DOM層更好地整合在一起,DOM層來自一些新的格式,例如SVG(可縮放矢量圖形)。SVG和HTML包含了一大堆標(biāo)簽,Web開發(fā)者使用起來往往更方便,現(xiàn)在還有了大的APIs,讓你可以在畫布對象上詳細(xì)地繪畫圖形,通常還會提供視頻卡來幫助你使用。當(dāng)把它們結(jié)合起來使用,你還有什么理由要用Flash呢?
3. 游戲框架比本土游戲開發(fā)更受歡迎
以前,游戲開發(fā)意味著要請大量開發(fā)人員,他們從零開始用C語言寫所有代碼。這需要投入巨資?,F(xiàn)在,大多數(shù)游戲開發(fā)者放下了他們多年前的驕傲資本,現(xiàn)在他們使用庫,如Unity, Corona, 或LibGDX來建立系統(tǒng)。他們不會再寫像庫說明那么多的C代碼了。我們的游戲不再是用手工寫代碼完成,而是由相同的引擎來制作而成的。這也許讓人覺得慚愧,不過,大多數(shù)開發(fā)者都對此感到很欣慰,因?yàn)樗麄儾恍枰黄热ヌ幚砑?xì)節(jié),這樣他們可以專注于游戲玩法,情節(jié),人物和藝術(shù)。
Livecoding.tv 上的直播者使用 Unity 及其它庫來開發(fā)各種游戲
4. 單一網(wǎng)頁的Web apps盛行,網(wǎng)站遇冷
制作傳統(tǒng)網(wǎng)站的時(shí)候,網(wǎng)站設(shè)計(jì)人員要花幾個(gè)小時(shí)來制作網(wǎng)站地圖,以令網(wǎng)站導(dǎo)航變得簡單。新的Web應(yīng)用程序是從前端到有大量內(nèi)容的大數(shù)據(jù)庫。當(dāng)Web應(yīng)用程序需要信息時(shí),它就從數(shù)據(jù)庫中提取信息并將信息注入到本地的模具中。現(xiàn)在沒有必要使用Web附加設(shè)備所需要的所有東西來標(biāo)記數(shù)據(jù),以便創(chuàng)建一個(gè)網(wǎng)頁了。數(shù)據(jù)層是完全獨(dú)立于演示和格式層。移動計(jì)算的興起是另一個(gè)因素:單頁的,響應(yīng)式設(shè)計(jì)的網(wǎng)頁,它工作起來就像一個(gè)app——所有這些都更好,以避免混亂的App商店。
5. 移動Web apps比本土移動Web apps更具競爭力
APP開發(fā)者可以寫不同版本的app來應(yīng)用于不同的系統(tǒng):Android,iOS,Windows 8,甚至BlackBerry OS或是其它任何一個(gè)系統(tǒng)。每一個(gè)版本的app需要由一個(gè)獨(dú)立的,懂得不同編程語言的團(tuán)隊(duì)來開發(fā)。然而,每一個(gè)平臺上的app商店在把a(bǔ)pp交到用戶手中之前,可能會提出種種合理不合情的要求。這是開發(fā)者不希望看到的。開發(fā)者可以創(chuàng)建一個(gè)HTML app,把它放在一個(gè)網(wǎng)站上,在所有平臺上運(yùn)行。如果出現(xiàn)了什么變化,你不需要返回app商店去請求獲得一個(gè)迅速的錯(cuò)誤檢查和修復(fù)?,F(xiàn)在,HTML層越來越快,而且它在速度較快的芯片上運(yùn)行,這種方法可以使移動Web app更好地與本土app競爭,甚至是與更復(fù)雜的交互式app競爭。
6. Android大熱, iOS遇冷
幾年前,蘋果專賣店門前排起的“人龍”還記得吧?時(shí)代在改變,雖然iPhone和iPad仍然擁有忠實(shí)粉絲,他們喜歡豐富、復(fù)雜的用戶界面,但原始銷售數(shù)據(jù)依然對Android有利。甚至有報(bào)道說,超過80%的手機(jī)是Android的。原因可能很簡單,因?yàn)槌杀?。?dāng)iOS的設(shè)備成本仍然很高的時(shí)候,Android正在以大量競爭洶涌而來,那就是用五分之一的價(jià)格來生產(chǎn)平板電腦。省錢永遠(yuǎn)是一種誘惑。不過,另一個(gè)因素可能是開源的效果。任何人都可以在市場上競爭。
7. Web界面興起,IDEs熱潮消退
很久以前,人們用的是命令行編譯器,然后有人把編輯器和其它工具整合在一起,創(chuàng)造了IDE?,F(xiàn)在又輪到IDE的熱潮消退了,因?yàn)橛辛嘶跒g覽器的工具出現(xiàn)。它們通常是一個(gè)工作系統(tǒng),可以讓你編輯代碼。如果你不喜歡WordPress的功能,它配備了一個(gè)內(nèi)置的編輯器,讓你可以即時(shí)更改代碼。微軟的Azure允許你在它的入口寫JavaScript膠水代碼。雖然這些系統(tǒng)不能提供最好的調(diào)試環(huán)境,并且在編輯生產(chǎn)代碼時(shí)可能會有一些危險(xiǎn),但這個(gè)創(chuàng)意是不錯(cuò)的。
你可以嘗試Cloud9,Aptana,和Mozilla WebIDE,但要堅(jiān)持探索。Web界面正在變得越來越強(qiáng)大。有可能會出現(xiàn)這樣的情況,在微軟的Azure網(wǎng)站上建立一個(gè)完整的大數(shù)據(jù)分析項(xiàng)目。
8. 大熱的是Node.js, 遇冷的是JavaEE, Ruby on Rails
服務(wù)器的世界一直在線程模型上長盛不衰,它讓程序員在使用操作系統(tǒng)時(shí)可以有種種行為,如固執(zhí),低效或是放任。無論是由程序員編碼而造成的愚蠢的循環(huán)或是浪費(fèi)的計(jì)算,操作系統(tǒng)都可以在線程之間切換來平衡性能。
Node連同JavaScript一起回調(diào)編程模型,它的代碼的確運(yùn)行得很快,比任何人預(yù)期的還快。它曾經(jīng)可能是一種無實(shí)用價(jià)值的語言,只是被用于警告消息框。但意外地,由于創(chuàng)建新線程的開銷變得明顯,Node.js騰飛了。當(dāng)程序員表現(xiàn)得不好時(shí),問題就會出現(xiàn)了,但責(zé)任在很大程度上是對他們有好處的。顯然,限制資源往往可以令程序員更快地寫代碼。Node.js還有利于瀏覽器和服務(wù)器之間的和諧。運(yùn)行在瀏覽器和服務(wù)器上的相同代碼可以讓開發(fā)人員更方便地移動和復(fù)制功能。因此,Node.js層已經(jīng)成為互聯(lián)網(wǎng)上最熱門的棧。
9. PHP7.0速度提升,舊版PHP淡出
在過去,PHP是一種簡單的方法來淘汰一些動態(tài)網(wǎng)頁。如果你需要一點(diǎn)點(diǎn)的變化,你可以在HTML標(biāo)簽之間嵌入簡單的代碼。Web開發(fā)者有了它就基本足夠了,但它的緩慢足以令程序員中的中堅(jiān)分子看不起它。一些喜愛PHP的程序員在Wordpress和Facebook等地方都在爭相利用即時(shí)編譯器,這種曾創(chuàng)造出Java如此高性能解決方案的技術(shù)來執(zhí)行比以前更快的PHP代碼?,F(xiàn)在的工具如HipHop,虛擬機(jī)和PHP7.0提供的速度可能是舊版本的2倍。這會給Node.js和java帶來挑戰(zhàn)。
10. 在線即時(shí)教育成趨勢,四年傳統(tǒng)教育不再是主流
以計(jì)算機(jī)為媒介的課程已經(jīng)不是新玩意了,每個(gè)人正在享受著觀看視頻講座的好處。但這不僅是教育的一種本質(zhì),網(wǎng)上課程技術(shù)的背后是它顛覆了教育產(chǎn)業(yè)技術(shù)的復(fù)雜性;它還可以讓你靈活地支配自己的學(xué)習(xí)時(shí)間和地點(diǎn)。這正在改變我們的生活動態(tài),因?yàn)槲覀儾辉傩枰顿Y四年的時(shí)間以及負(fù)擔(dān)高額的學(xué)費(fèi)去學(xué)習(xí)一系列課程了。當(dāng)你需要獲得新信息的時(shí)候,你的需要可以即時(shí)得到滿足