程式設計趨勢:21 個熱門和 21 個要降溫的

發表於2017-09-02

InfoWorld 作者總結的 21 個熱門程式設計趨勢和 21 個要變冷的趨勢,包含 Web 開發,移動開發,大資料,教育等方面。


熱門還是冷門?無論 Web 開發、主機板開發還是培訓教育,都需要了解應用開發過程中哪些技術正在興起,哪些技術要過時了。

程式設計師們喜歡嘲笑時尚界的潮流說變就變,像風一樣捉摸不定。裙子時而短時而長,流行色頻繁更替,領帶越來越窄,越來越薄。但是在技術的世界中,嚴謹、科學、數學和精準原則卻一直流行。

程式設計趨勢:21 個熱門和 21 個要降溫的

這並不是說程式設計沒有趨勢。區別在於程式設計的潮流由更高的效率、更多的自定義和更便於使用來驅動。具備這些特點的新技術取代舊技術,這是一種精益求精的過程,而不是朝令夕改的奇思妙想。

下面是現代程式世界的熱門技術和冷門技術列表。可能有人會不同的意見,也可能會有遺漏,而這正是程式設計的迷人之處:快速變化、激烈辯論、峰迴路轉。

熱門:前處理器

變冷:全語言堆疊

不久之前,人們創造一門新的程式語言需要進行許多工作(從原始碼到機器程式碼轉換過程的所有工作)。 然後一些人指出他們可以推翻前面的做法。 現在程式設計師有了想法以後只需要編寫一個前處理器,前處理器可以使用豐富的庫和 API 將新程式碼轉換成舊版本的程式碼。

Python 、JavaScript 這類的指令碼語言曾經僅限於小專案,但現在許多重要的工作都開始使用這些語言。不喜歡 JavaScript 的程式設計師還開發了 CoffeeScript (一種可以再次編碼的前處理器),以避免使用繁瑣的標點符號。它有幾十種以不同方式預處理語法的方法。

那些喜歡動態型別的程式設計師建立了 Groovy,Groovy 是 Java 省略掉過多標點符號的簡化版本。現在好像有幾十種語言(如 Scala 或 Clojure)在 JVM 上執行,但只有一個 JVM 。我們可以在 .Net 虛擬機器上執行多種語言,為什麼還要重新發明輪子?

熱門:Docker

變冷:Hypervisors(虛擬機器)

這並不完全正確,hypervisors 也有它們的用武之地,而且許多 Docker容器執行在以 hypevisors 為基礎的作業系統中。然而,Docker容器與虛擬機器映像相比實在太小了,這使得它們更容易使用和部署。

當開發人員可以使用 Docker容器時,它們更願意使用 Docker容器,這要歸功於它可以在部署過程中輕鬆操作。 像 Joyent 這樣的聰明公司正在開發可以佔用更多資源的技術,以便容器可以在“裸機”上執行。

在數字商業時代需要足夠敏捷來抓住新機會,同時還要有效地維護傳統的內部部署系統。

熱門:JavaScript MV* 框架

變冷:JavaScript檔案

很久以前,每個人都學習如何使用 JavaScript 彈出警告視窗或如何檢查表格中的電子郵件地址是否包含 @符號。 現在,HTML AJAX 應用程式已經如此成熟,以至於很少有人會再從頭開始編寫這些功能。 採用精心製作的框架,然後編寫一些膠水程式碼來實現業務邏輯要簡單得多。

現在有許多框架可以用來處理 app、網頁等的事件和內容,這些框架包括 Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS 等。

這些只是網路應用程式的框架。 還有一些框架旨在為智慧手機/平板電腦提供跨平臺開發技術。 NativeScript,PhoneGapExt JS 都是使用 HTML5 建立 app 的技術。

熱門:CSS 框架

變冷:通用層疊樣式表

曾幾何時,向網頁新增一點格式意味著開啟 CSS檔案然後寫入類似 font-style:italic 這樣的命令,然後儲存檔案,就可以在一上午的緊張忙碌之後去吃午飯了。現在網頁如此複雜以至於很難使用如此簡單的命令完成一個檔案。調整一個顏色可能會導致一切都無法正常執行。這就像他們評價陰謀家和生態學家一樣:一切都是互相聯絡的。

這就是 SASS 和 Compass 等 CSS框架的用武之地。 它們通過提供程式設計結構(如實變數,巢狀塊和混合)來鼓勵規範,可靠的編碼。 這在程式設計層面中可能聽起來並沒有多新穎,但對於設計層來說這是一個巨大的飛躍。

熱門:視訊標籤

變冷:靜態標籤

曾經有段時間, 視訊是指 YouTube 或 Vimeo 上觀看的視訊。它是一種存在於專有頁面上的單獨內容。然而隨著越來越多的網站使用音訊來構建區塊,其過程與使用 靜態 GIFs 或者 JPGs 進行構建區塊一樣,這種情況正在發生改變。突然之間,螢幕變得生動起來。

設計師發現,現代視訊標籤只是另一個矩形,儘管矩形通常需要程式設計師使用更多的 JavaScript 程式碼來控制。 我們只是開始明白,在客廳沙發前面的盒子可以不再是我們獲取視訊的主要來源,而可以僅僅是一個裝飾。

熱門:類大資料(不使用 Hadoop 分析)

變冷:大資料(使用 Hadoop)

每個人都希望自己看起來像是圈子裡的大人物,如果他們在圈子裡有沒影響力,那麼他們會尋找一個適合他們脫穎而出的圈子。 所以,當“大資料”開始在高管之間開始流行時,這些高管要求最大,最強大的大資料系統,就像購買遊艇或摩天大樓一樣。

有趣的是,許多問題沒有大到要用高階大資料解決方案來解決。當然,像谷歌或雅虎這種跟蹤我們瀏覽的所有網頁的公司是需要大資料解決方案的,他們的資料檔案很大需要用 petabytes 或 yottabytes 來計量。但大多數公司的資料都可以輕鬆地用一個 PC機記憶體進行處理。我是用一臺在 16GB 記憶體的 PC 機來寫這篇文章的,這臺 PC 足夠處理十億件幾個位元組的事件。在大多數演算法中,資料不需要讀入記憶體,因為直接從 SSD 獲取就可以了。

可能存在需要 Hadoop雲幾十臺機器並行運算來實現快速響應的需求,但是許多需求在單臺機器上處理即可,這樣還可以避免產生麻煩的協調或通訊問題。

熱門:Spark

變冷:Hadoop

可能並不是 Hadoop 不流行了,而是 Spark 太熱門了,這使得 Hadoop 模型看起來有些老。Spark 借鑑了Hadoop 從大量資料中提取語義的做法的最佳思路,並通過一些改進使程式碼執行的更快。Spark 最大的優勢在於它將資料儲存在快速記憶體中而不是需要所有內容都寫入分散式檔案系統。

當然,許多人正在通過使用 Spark 的處理速度對儲存在 Hadoop 分散式檔案系統的資料進行處理,因此,Spark 和 Hadoop 更像是合作伙伴而不是競爭對手。

熱門:人工智慧/機器學習

變冷:大資料

沒有人知道 “人工智慧”的真正含義,它們對營銷人員很有利,特別是在“大資料”廣泛應用的今天。他們從人工智慧中提取術語並且升級數字處理演算法的複雜度來處理我們的 log 檔案和點選流。通過從具有 50年曆史的 AI研究中借鑑更復雜演算法,我們比以往任何時候都更有可能從噪音中發現訊號。從機器學習框架到認知計算的工具,再到 IBM 的沃森,總能解決你的問題。它們每個都提供自己機器的智慧水平,我們可以使用它們進行更多的資料分析和取證。

熱門:機器人

變冷:虛擬現實

就在幾分鐘之前,我們還都將夢想寄託在虛擬現實中,虛擬現實可以通過一些視訊卡在我們視網膜上繪製圖形。這種情況仍然可能發生,但與此同時,機器人的世界也將迅速發展。每個學校都有一個機器人團隊,家庭的每個角落充斥著機器人,機器人吸塵器已經是舊新聞了,無人機正在自由翱翔。

這意味著程式要開始考慮如何寫程式碼來控制新機器。目前,這意味著為 Raspberry Pi 這樣的輕量級控制器寫指令碼,但是隨著庫檔案發展的越來越複雜,必然會發生變化。比如,許多機器人專家喜歡研究 C語言實現的機器視覺平臺OpenCV 中的程式碼。這意味著需要考慮新的規則,新的類庫,新的協議,和許多其他新的主題。

熱門:單頁Web應用

變冷:網站

還記得 URLs 指向滿是靜態文字和圖片的網頁的時代嗎?把所有資訊都放在被稱為網站的單獨網頁中是多麼地簡單和古雅。設計團隊在網站地圖上花費幾個小時的時間來使網站更易於導航。

新的 web 應用通過資料庫填充內容。當 web應用需要資訊時,它從資料庫獲取資訊並將其放入本地模板中。我們不需要使用構建 web頁面的所有 web附加元件來標記資料。資料層與展示和格式化層完全分離。移動計算的興起是另一個原因在於:單個響應式頁面工作機制與app類似,可以減少從魚龍混雜的應用商店中尋找想要的內容所浪費的時間。

熱門:移動Web app

變冷:原生移動 App

假如你有一個移動內容的好主意,那麼需要為 IOS、Android、Windows 8甚至黑莓OS 或者其他的系統開發不同的版本。每個版本都需要一個獨立的團隊使用不同的程式語言實現。然後每個平臺應用商店都需要使用自己的版本,才能把 app 分發給使用者。

或者,我們可以建立一個 HTML 應用,然後把它放到各個平臺都可以執行的網站上。如果有變化,也不需要到應用商店去請求快速稽核錯誤修復。 現在 HTML層速度越來越快,並且執行在速度越來越快的晶片上,以便於它可以在更復雜和互動性更高的應用程式上更好地與本地應用程式競爭。

熱門:Android

變冷:iOS

是不是幾年前蘋果專賣店門前還要排蜿蜒的長隊? 現在時代變了。 雖然 iPhone 和 iPad 還擁有大量熱愛它們豐富而複雜的介面的鐵桿粉絲,但從原始銷售數量來看,Android更具優勢 。 有報導甚至說 80% 以上的手機都是 Android系統。

原因可能就在於成本。 即使 iOS裝置只需要花費很少的前,Android世界充斥的大量競爭也可以將產品的價格壓縮到 iOS裝置的五分之一。 省錢總是很有誘惑力的。

但另一方面,也可能與開源有關。每個人都可以在市場上競爭,他們也是這樣做的。我們有大大小小的安卓平板,安卓相機甚至安卓冰箱。沒有人需要在創新之前先請示“媽媽,我可以嗎?”。如果他們有一個好點子,做就可以了。

不過,Apple 也在向安卓學習。iPhone 6 有了不同尺寸的螢幕,或許機會就在眼前。

熱門:GPU

變冷:CPU

當軟體非常簡單,可以很好的安排一系列指令時,CPU 是計算機的王者,因為它承擔了所有的工作。 現在,視訊遊戲充滿了可以並行執行的大量圖形程式,顯示卡可以執行這些圖形。 我們很容易花費 500美元、600美元甚至更多來購買各種顯示卡,一些重度的遊戲玩家可能擁有不止一兩個顯示卡。 這些顯示卡的價格是許多基本桌上型電腦顯示卡價格的兩倍。 遊戲玩家並不是唯一吹噓他們的 GPU 的人。 電腦科學家現在將許多並行應用程式轉換到 GPU 上執行,這樣速度可以提高數百倍。

熱門:GitHub主頁

變冷:個人簡歷

當然,我們可以通過閱讀包括初中棋牌俱樂部副總裁的成就清單來了解候選人。 但閱讀某人的實際程式碼則更加豐富和具有啟發性。 他們註釋寫的清楚嗎? 他們把很多時間浪費在把內容寫到作用寥寥的類裡嗎?他的架構真的有擴充套件空間嗎? 所有這些問題都可以從他們的程式碼的發現答案。

這就是為什麼參與開源專案對找工作越來越重要。 從專有專案共享程式碼是很難的,但開原始碼可以隨處可見。

熱門:租用

變冷:購買

當亞馬遜在黑色星期五賣力推銷電腦和其他電子產品時,卻忘記了推銷他們的雲服務。在不久的將來,它很可能會這麼做。以前,公司設立自己的資料中心並且聘請員工來維護購買的電腦。 現在,他們租賃電腦、資料中心、工作人員、甚至按小時租用軟體。 任何人都不想處理購買帶來的麻煩。這一切都是好主意,至少在網站發生病毒事件(你的點選將為所有物品支付費用)之前是這樣的。儘管現在只有亞馬遜發現了自動提供雲的方法,趨勢將會趨同。

熱門:複雜雲

變冷:簡約雲

雲端計算早期階段,供應商強調一鍵獲得正在執行的機器是多麼地容易。那時,簡約是王道。

現在選擇正確的機器並找出合適的折扣方案可能比編寫程式碼要花費更多的時間。 我們可以獲得幾十種機器配置檔案,大多數雲提供商都提供一些老型號的電腦。 所有供應商都提供不同效能水平的機器,因此我們需要對它們進行基準測試,以確定哪種價效比最高。 少用一些 RAM 來每小時節省 12美分有意義嗎? 如果需要幾個月連續執行 100臺機器,那麼這很重要。

更復雜的情況在於,雲公司還會為提前付款或批量購買提供不同的折扣方案, 我們也必須把它們考慮在內。 購買一個雲成本工程的線上課程就可以瞭解這些內容了。

熱門:資料移動專家

變冷:備份磁帶

當資料很少時,我們不需要考慮如何移動它。 我們可以將其備份到磁帶或者安裝 RAID硬碟。 但是現在資料如此之大,以至於我們不得不考慮我們在哪裡使用它們。這變得越來越重要,因為更多的服務發生在雲端的某個地方,而不是 RAID陣列所在的機架。

讓我們來看看亞馬遜的新款 Snowmobile ,這是一個可愛的內部名稱,它是用於裝載可容納 100PB 資料硬碟的移動容器。 他們還製作了一個叫做 Snowball 的小盒子,可以容納 80TB 。 兩者都將像運送貨物一樣運送資料,而不是採用光纖訊號。 一項估計表明,通過 1Gbps 的光纖線路下載 100PB 的資料需要 28 年,而貨運卡車可能會在幾天內將集裝箱運送到全國各地。

所有這一切說明,開發人員需要開始考慮從哪裡採集資料、在哪裡使用資料。我們採集了比以前更多的資料,把它們移動到正確的地方也比以前也更加重要。正如 Wayne Gretzky 所說,他的成功在於提前計劃並且通過分析對趨勢進行預測,而不是僅僅把注意力放在正在發生的事情上。

熱門:語音

變冷:網站

網站並沒有真正死亡,只是新的音訊介面方興未艾。亞馬遜、谷歌和蘋果都在主推用語音來解決問題來替代通過敲打電腦鍵盤輸入內容來解決。

這對於程式設計師來說意味著更多的工作,因為所有這些機制都有新的 API ,比如 Alexa 控制燈光的新開關。 如果您的公司想要連線這些音訊介面,您最好現在就開始瞭解。畢竟,鍵盤和 URL 已經是上個世紀的發明了。

熱門:Node.js

變冷:JavaEE,Ruby on Rails

伺服器領域一直線上程模式上蓬勃發展,這使得作業系統允許開發人員各種任性、低效、放縱的行為。 無論採用愚蠢的迴圈還是更多的程式編碼,作業系統將通過執行緒之間的切換平衡效能。

然後Node.js 與 JavaScript 回撥模型出現,這些程式碼執行速度非常快–比任何人期望JavaScript達到的速度都要快。突然間,建立新執行緒的開銷變得明顯,Node.js 繁榮起來。 使用 node.js 時,如果程式設計師的表現不好會出現問題,但這在很大程度上是對他們是很有好處的。約束程式設計師的可用資源會促使程式設計師開發出更快的程式碼。

Node.js 還得益於它可以使前後臺保持一致。兩者執行相同的程式碼,這使得開發人員更容易遷移和重用函式。 因此,Node.js 已經成為網際網路上最熱門的堆疊。

熱門:PHP7

變冷:舊版PHP

過去,PHP 是實現動態網頁的簡單方法。 我們可以通過在HTML 標籤之間嵌入簡單的程式碼來實現一些變化。為了便於 Web 開發人員使用,它是如此的基礎,但速度也慢得足以讓硬體程式設計師嘲笑。

這已成為過去,WordPress 和 Facebook 這樣的 PHP 愛好者通過引入即時編譯器技術(該技術使 Java 成為高效能解決方案)使得PHP程式碼比以往任何時候都快。 現在,像 HipHop虛擬機器和 PHP 7.0 這樣的工具的傳輸速度可能達到舊版本的兩倍。Node.js 和 Java,準備接招吧。

熱門:即時教育

變冷:四年全日制

計算機輔助課程不再新鮮,每個人都可以觀看視訊講座,並且可以加快或者放慢視訊播放速度或者要求教授重複最後一點。線上論壇也改變了以前一個人主導討論的舊形式。

線上課程的本質和技術不僅顛覆了教育產業結構,還實現了隨時隨地學習的靈活性。這正在改變人們的觀念,人們不再需要為與他們有關或無關的大量課程而投入四年高昂的學費。在你不知道自己是否需要在編譯器上工作時,為什麼要學習編譯器課程?如果老闆想從關聯式資料庫切換到NoSQL引擎,那麼我們可以將時間用於現代資料儲存的課程上。只有在需要的時候才獲得新資訊,不要用快要腐爛的方法來擾亂思維。

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

任選一種支付方式

程式設計趨勢:21 個熱門和 21 個要降溫的 程式設計趨勢:21 個熱門和 21 個要降溫的

相關文章