熱門還是冷門?無論 Web 開發(fā)、主板開發(fā)還是培訓(xùn)教育,都需要了解應(yīng)用開發(fā)過程中哪些技術(shù)正在興起,哪些技術(shù)要過時(shí)了。

程序員們喜歡嘲笑時(shí)尚界的潮流說變就變,像風(fēng)一樣捉摸不定。裙子時(shí)而短時(shí)而長(zhǎng),流行色頻繁更替,領(lǐng)帶越來越窄,越來越薄。但是在技術(shù)的世界中,嚴(yán)謹(jǐn)、科學(xué)、數(shù)學(xué)和精準(zhǔn)原則卻一直流行。
這并不是說編程沒有趨勢(shì)。區(qū)別在于編程的潮流由更高的效率、更多的自定義和更便于使用來驅(qū)動(dòng)。具備這些特點(diǎn)的新技術(shù)取代舊技術(shù),這是一種精益求精的過程,而不是朝令夕改的奇思妙想。
下面是現(xiàn)代程序世界的熱門技術(shù)和冷門技術(shù)列表??赡苡腥藭?huì)不同的意見,也可能會(huì)有遺漏,而這正是編程的迷人之處:快速變化、激烈辯論、峰回路轉(zhuǎn)。
熱門:預(yù)處理器
變冷:全語言堆棧
不久之前,人們創(chuàng)造一門新的編程語言需要進(jìn)行許多工作(從源代碼到機(jī)器代碼轉(zhuǎn)換過程的所有工作)。?然后一些人指出他們可以推翻前面的做法。 現(xiàn)在程序員有了想法以后只需要編寫一個(gè)預(yù)處理器,預(yù)處理器可以使用豐富的庫(kù)和 API 將新代碼轉(zhuǎn)換成舊版本的代碼。
Python 、JavaScript 這類的腳本語言曾經(jīng)僅限于小項(xiàng)目,但現(xiàn)在許多重要的工作都開始使用這些語言。不喜歡 JavaScript 的程序員還開發(fā)了 CoffeeScript (一種可以再次編碼的預(yù)處理器),以避免使用繁瑣的標(biāo)點(diǎn)符號(hào)。它有幾十種以不同方式預(yù)處理語法的方法。
那些喜歡動(dòng)態(tài)類型的程序員創(chuàng)建了 Groovy,Groovy 是 Java 省略掉過多標(biāo)點(diǎn)符號(hào)的簡(jiǎn)化版本?,F(xiàn)在好像有幾十種語言(如 Scala 或 Clojure)在 JVM 上運(yùn)行,但只有一個(gè) JVM 。我們可以在 .Net 虛擬機(jī)上運(yùn)行多種語言,為什么還要重新發(fā)明輪子?
熱門:Docker
變冷:Hypervisors(虛擬機(jī))
這并不完全正確,hypervisors 也有它們的用武之地,而且許多 Docker容器運(yùn)行在以 hypevisors 為基礎(chǔ)的操作系統(tǒng)中。然而,Docker容器與虛擬機(jī)映像相比實(shí)在太小了,這使得它們更容易使用和部署。
當(dāng)開發(fā)人員可以使用 Docker容器時(shí),它們更愿意使用 Docker容器,這要?dú)w功于它可以在部署過程中輕松操作。 像 Joyent 這樣的聰明公司正在開發(fā)可以占用更多資源的技術(shù),以便容器可以在“裸機(jī)”上運(yùn)行。
在數(shù)字商業(yè)時(shí)代需要足夠敏捷來抓住新機(jī)會(huì),同時(shí)還要有效地維護(hù)傳統(tǒng)的內(nèi)部部署系統(tǒng)。
熱門:JavaScript MV* 框架
變冷:JavaScript文件
很久以前,每個(gè)人都學(xué)習(xí)如何使用 JavaScript 彈出警告窗口或如何檢查表格中的電子郵件地址是否包含 @符號(hào)。 現(xiàn)在,HTML AJAX 應(yīng)用程序已經(jīng)如此成熟,以至于很少有人會(huì)再?gòu)念^開始編寫這些功能。 采用精心制作的框架,然后編寫一些膠水代碼來實(shí)現(xiàn)業(yè)務(wù)邏輯要簡(jiǎn)單得多。
現(xiàn)在有許多框架可以用來處理 app、網(wǎng)頁(yè)等的事件和內(nèi)容,這些框架包括?Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS 等。
這些只是網(wǎng)絡(luò)應(yīng)用程序的框架。 還有一些框架旨在為智能手機(jī)/平板電腦提供跨平臺(tái)開發(fā)技術(shù)。?NativeScript,PhoneGap?和?Ext JS?都是使用 HTML5 創(chuàng)建 app 的技術(shù)。
熱門:CSS 框架
變冷:通用層疊樣式表
曾幾何時(shí),向網(wǎng)頁(yè)添加一點(diǎn)格式意味著打開 CSS文件然后寫入類似 font-style:italic 這樣的命令,然后保存文件,就可以在一上午的緊張忙碌之后去吃午飯了?,F(xiàn)在網(wǎng)頁(yè)如此復(fù)雜以至于很難使用如此簡(jiǎn)單的命令完成一個(gè)文件。調(diào)整一個(gè)顏色可能會(huì)導(dǎo)致一切都無法正常運(yùn)行。這就像他們?cè)u(píng)價(jià)陰謀家和生態(tài)學(xué)家一樣:一切都是互相聯(lián)系的。
這就是 SASS 和 Compass 等 CSS框架的用武之地。 它們通過提供編程結(jié)構(gòu)(如實(shí)變量,嵌套塊和混合)來鼓勵(lì)規(guī)范,可靠的編碼。 這在編程層面中可能聽起來并沒有多新穎,但對(duì)于設(shè)計(jì)層來說這是一個(gè)巨大的飛躍。
熱門:視頻標(biāo)簽
變冷:靜態(tài)標(biāo)簽
曾經(jīng)有段時(shí)間, 視頻是指 YouTube 或 Vimeo 上觀看的視頻。它是一種存在于專有頁(yè)面上的單獨(dú)內(nèi)容。然而隨著越來越多的網(wǎng)站使用音頻來構(gòu)建區(qū)塊,其過程與使用 靜態(tài) GIFs 或者 JPGs 進(jìn)行構(gòu)建區(qū)塊一樣,這種情況正在發(fā)生改變。突然之間,屏幕變得生動(dòng)起來。
設(shè)計(jì)師發(fā)現(xiàn),現(xiàn)代視頻標(biāo)簽只是另一個(gè)矩形,盡管矩形通常需要程序員使用更多的 JavaScript 代碼來控制。 我們只是開始明白,在客廳沙發(fā)前面的盒子可以不再是我們獲取視頻的主要來源,而可以僅僅是一個(gè)裝飾。
熱門:類大數(shù)據(jù)(不使用 Hadoop 分析)
變冷:大數(shù)據(jù)(使用 Hadoop)
每個(gè)人都希望自己看起來像是圈子里的大人物,如果他們?cè)谌ψ永镉袥]影響力,那么他們會(huì)尋找一個(gè)適合他們脫穎而出的圈子。 所以,當(dāng)“大數(shù)據(jù)”開始在高管之間開始流行時(shí),這些高管要求最大,最強(qiáng)大的大數(shù)據(jù)系統(tǒng),就像購(gòu)買游艇或摩天大樓一樣。
有趣的是,許多問題沒有大到要用高級(jí)大數(shù)據(jù)解決方案來解決。當(dāng)然,像谷歌或雅虎這種跟蹤我們?yōu)g覽的所有網(wǎng)頁(yè)的公司是需要大數(shù)據(jù)解決方案的,他們的數(shù)據(jù)文件很大需要用 petabytes 或 yottabytes 來計(jì)量。但大多數(shù)公司的數(shù)據(jù)都可以輕松地用一個(gè) PC機(jī)內(nèi)存進(jìn)行處理。我是用一臺(tái)在 16GB 內(nèi)存的 PC 機(jī)來寫這篇文章的,這臺(tái) PC 足夠處理十億件幾個(gè)字節(jié)的事件。在大多數(shù)算法中,數(shù)據(jù)不需要讀入內(nèi)存,因?yàn)橹苯訌?SSD 獲取就可以了。
可能存在需要 Hadoop云幾十臺(tái)機(jī)器并行運(yùn)算來實(shí)現(xiàn)快速響應(yīng)的需求,但是許多需求在單臺(tái)機(jī)器上處理即可,這樣還可以避免產(chǎn)生麻煩的協(xié)調(diào)或通信問題。
熱門:Spark
變冷:Hadoop
可能并不是 Hadoop 不流行了,而是 Spark 太熱門了,這使得 Hadoop 模型看起來有些老。Spark 借鑒了Hadoop 從大量數(shù)據(jù)中提取語義的做法的最佳思路,并通過一些改進(jìn)使代碼運(yùn)行的更快。Spark 最大的優(yōu)勢(shì)在于它將數(shù)據(jù)保存在快速內(nèi)存中而不是需要所有內(nèi)容都寫入分布式文件系統(tǒng)。
當(dāng)然,許多人正在通過使用 Spark 的處理速度對(duì)存儲(chǔ)在 Hadoop 分布式文件系統(tǒng)的數(shù)據(jù)進(jìn)行處理,因此,Spark 和 Hadoop 更像是合作伙伴而不是競(jìng)爭(zhēng)對(duì)手。
熱門:人工智能/機(jī)器學(xué)習(xí)
變冷:大數(shù)據(jù)
沒有人知道 “人工智能”的真正含義,它們對(duì)營(yíng)銷人員很有利,特別是在“大數(shù)據(jù)”廣泛應(yīng)用的今天。他們從人工智能中提取術(shù)語并且升級(jí)數(shù)字處理算法的復(fù)雜度來處理我們的 log 文件和點(diǎn)擊流。通過從具有 50年歷史的 AI研究中借鑒更復(fù)雜算法,我們比以往任何時(shí)候都更有可能從噪音中發(fā)現(xiàn)信號(hào)。從機(jī)器學(xué)習(xí)框架到認(rèn)知計(jì)算的工具,再到 IBM 的沃森,總能解決你的問題。它們每個(gè)都提供自己機(jī)器的智能水平,我們可以使用它們進(jìn)行更多的數(shù)據(jù)分析和取證。
熱門:機(jī)器人
變冷:虛擬現(xiàn)實(shí)
就在幾分鐘之前,我們還都將夢(mèng)想寄托在虛擬現(xiàn)實(shí)中,虛擬現(xiàn)實(shí)可以通過一些視頻卡在我們視網(wǎng)膜上繪制圖形。這種情況仍然可能發(fā)生,但與此同時(shí),機(jī)器人的世界也將迅速發(fā)展。每個(gè)學(xué)校都有一個(gè)機(jī)器人團(tuán)隊(duì),家庭的每個(gè)角落充斥著機(jī)器人,機(jī)器人吸塵器已經(jīng)是舊新聞了,無人機(jī)正在自由翱翔。
這意味著程序要開始考慮如何寫代碼來控制新機(jī)器。目前,這意味著為 Raspberry Pi 這樣的輕量級(jí)控制器寫腳本,但是隨著庫(kù)文件發(fā)展的越來越復(fù)雜,必然會(huì)發(fā)生變化。比如,許多機(jī)器人專家喜歡研究 C語言實(shí)現(xiàn)的機(jī)器視覺平臺(tái)OpenCV 中的代碼。這意味著需要考慮新的規(guī)則,新的類庫(kù),新的協(xié)議,和許多其他新的主題。
熱門:?jiǎn)雾?yè)Web應(yīng)用
變冷:網(wǎng)站
還記得 URLs 指向滿是靜態(tài)文本和圖片的網(wǎng)頁(yè)的時(shí)代嗎?把所有信息都放在被稱為網(wǎng)站的單獨(dú)網(wǎng)頁(yè)中是多么地簡(jiǎn)單和古雅。設(shè)計(jì)團(tuán)隊(duì)在網(wǎng)站地圖上花費(fèi)幾個(gè)小時(shí)的時(shí)間來使網(wǎng)站更易于導(dǎo)航。
新的 web 應(yīng)用通過數(shù)據(jù)庫(kù)填充內(nèi)容。當(dāng) web應(yīng)用需要信息時(shí),它從數(shù)據(jù)庫(kù)獲取信息并將其放入本地模板中。我們不需要使用構(gòu)建 web頁(yè)面的所有 web附加組件來標(biāo)記數(shù)據(jù)。數(shù)據(jù)層與展示和格式化層完全分離。移動(dòng)計(jì)算的興起是另一個(gè)原因在于:?jiǎn)蝹€(gè)響應(yīng)式頁(yè)面工作機(jī)制與app類似,可以減少?gòu)聂~龍混雜的應(yīng)用商店中尋找想要的內(nèi)容所浪費(fèi)的時(shí)間。
熱門:移動(dòng)Web app
變冷:原生移動(dòng)?App
假如你有一個(gè)移動(dòng)內(nèi)容的好主意,那么需要為 IOS、Android、Windows 8甚至黑莓OS 或者其他的系統(tǒng)開發(fā)不同的版本。每個(gè)版本都需要一個(gè)獨(dú)立的團(tuán)隊(duì)使用不同的編程語言實(shí)現(xiàn)。然后每個(gè)平臺(tái)應(yīng)用商店都需要使用自己的版本,才能把 app 分發(fā)給用戶。
或者,我們可以創(chuàng)建一個(gè) HTML 應(yīng)用,然后把它放到各個(gè)平臺(tái)都可以運(yùn)行的網(wǎng)站上。如果有變化,也不需要到應(yīng)用商店去請(qǐng)求快速審核錯(cuò)誤修復(fù)。 現(xiàn)在 HTML層速度越來越快,并且運(yùn)行在速度越來越快的芯片上,以便于它可以在更復(fù)雜和互動(dòng)性更高的應(yīng)用程序上更好地與本地應(yīng)用程序競(jìng)爭(zhēng)。
熱門:Android
變冷:iOS
是不是幾年前蘋果專賣店門前還要排蜿蜒的長(zhǎng)隊(duì)? 現(xiàn)在時(shí)代變了。 雖然 iPhone 和 iPad 還擁有大量熱愛它們豐富而復(fù)雜的界面的鐵桿粉絲,但從原始銷售數(shù)量來看,Android更具優(yōu)勢(shì) 。 有報(bào)道甚至說 80% 以上的手機(jī)都是 Android系統(tǒng)。
原因可能就在于成本。 即使 iOS設(shè)備只需要花費(fèi)很少的前,Android世界充斥的大量競(jìng)爭(zhēng)也可以將產(chǎn)品的價(jià)格壓縮到 iOS設(shè)備的五分之一。 省錢總是很有誘惑力的。
但另一方面,也可能與開源有關(guān)。每個(gè)人都可以在市場(chǎng)上競(jìng)爭(zhēng),他們也是這樣做的。我們有大大小小的安卓平板,安卓相機(jī)甚至安卓冰箱。沒有人需要在創(chuàng)新之前先請(qǐng)示“媽媽,我可以嗎?”。如果他們有一個(gè)好點(diǎn)子,做就可以了。
不過,Apple 也在向安卓學(xué)習(xí)。iPhone 6 有了不同尺寸的屏幕,或許機(jī)會(huì)就在眼前。
熱門:GPU
變冷:CPU
當(dāng)軟件非常簡(jiǎn)單,可以很好的安排一系列指令時(shí),CPU 是計(jì)算機(jī)的王者,因?yàn)樗袚?dān)了所有的工作。 現(xiàn)在,視頻游戲充滿了可以并行運(yùn)行的大量圖形程序,顯卡可以運(yùn)行這些圖形。 我們很容易花費(fèi) 500美元、600美元甚至更多來購(gòu)買各種顯卡,一些重度的游戲玩家可能擁有不止一兩個(gè)顯卡。 這些顯卡的價(jià)格是許多基本臺(tái)式機(jī)顯卡價(jià)格的兩倍。 游戲玩家并不是唯一吹噓他們的 GPU 的人。 計(jì)算機(jī)科學(xué)家現(xiàn)在將許多并行應(yīng)用程序轉(zhuǎn)換到 GPU 上運(yùn)行,這樣速度可以提高數(shù)百倍。
熱門:GitHub主頁(yè)
變冷:個(gè)人簡(jiǎn)歷
當(dāng)然,我們可以通過閱讀包括初中棋牌俱樂部副總裁的成就清單來了解候選人。 但閱讀某人的實(shí)際代碼則更加豐富和具有啟發(fā)性。 他們注釋寫的清楚嗎? 他們把很多時(shí)間浪費(fèi)在把內(nèi)容寫到作用寥寥的類里嗎?他的架構(gòu)真的有擴(kuò)展空間嗎? 所有這些問題都可以從他們的代碼的發(fā)現(xiàn)答案。
這就是為什么參與開源項(xiàng)目對(duì)找工作越來越重要。 從專有項(xiàng)目共享代碼是很難的,但開源代碼可以隨處可見。
熱門:租用
變冷:購(gòu)買
當(dāng)亞馬遜在黑色星期五賣力推銷電腦和其他電子產(chǎn)品時(shí),卻忘記了推銷他們的云服務(wù)。在不久的將來,它很可能會(huì)這么做。以前,公司設(shè)立自己的數(shù)據(jù)中心并且聘請(qǐng)員工來維護(hù)購(gòu)買的電腦。 現(xiàn)在,他們租賃電腦、數(shù)據(jù)中心、工作人員、甚至按小時(shí)租用軟件。 任何人都不想處理購(gòu)買帶來的麻煩。這一切都是好主意,至少在網(wǎng)站發(fā)生病毒事件(你的點(diǎn)擊將為所有物品支付費(fèi)用)之前是這樣的。盡管現(xiàn)在只有亞馬遜發(fā)現(xiàn)了自動(dòng)提供云的方法,趨勢(shì)將會(huì)趨同。
熱門:復(fù)雜云
變冷:簡(jiǎn)約云
云計(jì)算早期階段,供應(yīng)商強(qiáng)調(diào)一鍵獲得正在運(yùn)行的機(jī)器是多么地容易。那時(shí),簡(jiǎn)約是王道。
現(xiàn)在選擇正確的機(jī)器并找出合適的折扣方案可能比編寫代碼要花費(fèi)更多的時(shí)間。 我們可以獲得幾十種機(jī)器配置文件,大多數(shù)云提供商都提供一些老型號(hào)的電腦。 所有供應(yīng)商都提供不同性能水平的機(jī)器,因此我們需要對(duì)它們進(jìn)行基準(zhǔn)測(cè)試,以確定哪種性價(jià)比最高。 少用一些 RAM 來每小時(shí)節(jié)省 12美分有意義嗎? 如果需要幾個(gè)月連續(xù)運(yùn)行 100臺(tái)機(jī)器,那么這很重要。
更復(fù)雜的情況在于,云公司還會(huì)為提前付款或批量購(gòu)買提供不同的折扣方案, 我們也必須把它們考慮在內(nèi)。 購(gòu)買一個(gè)云成本工程的在線課程就可以了解這些內(nèi)容了。
熱門:數(shù)據(jù)移動(dòng)專家
變冷:備份磁帶
當(dāng)數(shù)據(jù)很少時(shí),我們不需要考慮如何移動(dòng)它。?我們可以將其備份到磁帶或者安裝 RAID硬盤。 但是現(xiàn)在數(shù)據(jù)如此之大,以至于我們不得不考慮我們?cè)谀睦锸褂盟鼈?。這變得越來越重要,因?yàn)楦嗟姆?wù)發(fā)生在云端的某個(gè)地方,而不是 RAID陣列所在的機(jī)架。
讓我們來看看亞馬遜的新款 Snowmobile ,這是一個(gè)可愛的內(nèi)部名稱,它是用于裝載可容納 100PB 數(shù)據(jù)硬盤的移動(dòng)容器。 他們還制作了一個(gè)叫做 Snowball 的小盒子,可以容納 80TB 。 兩者都將像運(yùn)送貨物一樣運(yùn)送數(shù)據(jù),而不是采用光纖信號(hào)。 一項(xiàng)估計(jì)表明,通過 1Gbps 的光纖線路下載 100PB 的數(shù)據(jù)需要 28 年,而貨運(yùn)卡車可能會(huì)在幾天內(nèi)將集裝箱運(yùn)送到全國(guó)各地。
所有這一切說明,開發(fā)人員需要開始考慮從哪里采集數(shù)據(jù)、在哪里使用數(shù)據(jù)。我們采集了比以前更多的數(shù)據(jù),把它們移動(dòng)到正確的地方也比以前也更加重要。正如 Wayne Gretzky 所說,他的成功在于提前計(jì)劃并且通過分析對(duì)趨勢(shì)進(jìn)行預(yù)測(cè),而不是僅僅把注意力放在正在發(fā)生的事情上。
熱門:語音
變冷:網(wǎng)站
網(wǎng)站并沒有真正死亡,只是新的音頻接口方興未艾。亞馬遜、谷歌和蘋果都在主推用語音來解決問題來替代通過敲打電腦鍵盤輸入內(nèi)容來解決。
這對(duì)于程序員來說意味著更多的工作,因?yàn)樗羞@些機(jī)制都有新的 API ,比如 Alexa 控制燈光的新開關(guān)。 如果您的公司想要連接這些音頻接口,您最好現(xiàn)在就開始了解。畢竟,鍵盤和 URL 已經(jīng)是上個(gè)世紀(jì)的發(fā)明了。
熱門:Node.js
變冷:JavaEE,Ruby on Rails
服務(wù)器領(lǐng)域一直在線程模式上蓬勃發(fā)展,這使得操作系統(tǒng)允許開發(fā)人員各種任性、低效、放縱的行為。 無論采用愚蠢的循環(huán)還是更多的程序編碼,操作系統(tǒng)將通過線程之間的切換平衡性能。
然后Node.js 與 JavaScript 回調(diào)模型出現(xiàn),這些代碼運(yùn)行速度非??歙C比任何人期望JavaScript達(dá)到的速度都要快。突然間,創(chuàng)建新線程的開銷變得明顯,Node.js 繁榮起來。 使用 node.js 時(shí),如果程序員的表現(xiàn)不好會(huì)出現(xiàn)問題,但這在很大程度上是對(duì)他們是很有好處的。約束程序員的可用資源會(huì)促使程序員開發(fā)出更快的代碼。
Node.js 還得益于它可以使前后臺(tái)保持一致。兩者運(yùn)行相同的代碼,這使得開發(fā)人員更容易遷移和重用函數(shù)。 因此,Node.js 已經(jīng)成為互聯(lián)網(wǎng)上最熱門的堆棧。
熱門:PHP7
變冷:舊版PHP
過去,PHP 是實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的簡(jiǎn)單方法。 我們可以通過在HTML 標(biāo)簽之間嵌入簡(jiǎn)單的代碼來實(shí)現(xiàn)一些變化。為了便于 Web 開發(fā)人員使用,它是如此的基礎(chǔ),但速度也慢得足以讓硬件程序員嘲笑。
這已成為過去,WordPress 和 Facebook 這樣的 PHP 愛好者通過引入即時(shí)編譯器技術(shù)(該技術(shù)使?Java 成為高性能解決方案)使得PHP代碼比以往任何時(shí)候都快。 現(xiàn)在,像 HipHop虛擬機(jī)和 PHP 7.0 這樣的工具的傳輸速度可能達(dá)到舊版本的兩倍。Node.js 和 Java,準(zhǔn)備接招吧。
熱門:即時(shí)教育
變冷:四年全日制
計(jì)算機(jī)輔助課程不再新鮮,每個(gè)人都可以觀看視頻講座,并且可以加快或者放慢視頻播放速度或者要求教授重復(fù)最后一點(diǎn)。在線論壇也改變了以前一個(gè)人主導(dǎo)討論的舊形式。
在線課程的本質(zhì)和技術(shù)不僅顛覆了教育產(chǎn)業(yè)結(jié)構(gòu),還實(shí)現(xiàn)了隨時(shí)隨地學(xué)習(xí)的靈活性。這正在改變?nèi)藗兊挠^念,人們不再需要為與他們有關(guān)或無關(guān)的大量課程而投入四年高昂的學(xué)費(fèi)。在你不知道自己是否需要在編譯器上工作時(shí),為什么要學(xué)習(xí)編譯器課程?如果老板想從關(guān)系數(shù)據(jù)庫(kù)切換到NoSQL引擎,那么我們可以將時(shí)間用于現(xiàn)代數(shù)據(jù)存儲(chǔ)的課程上。只有在需要的時(shí)候才獲得新信息,不要用快要腐爛的方法來擾亂思維。
覺得這條資訊有幫助?請(qǐng)轉(zhuǎn)發(fā)給更多人