淘新聞

2016年程式設計五大主流趨勢盤點

TechCrunch在去年一月時曾發佈過一篇文章,預測2016年程式設計方面的主要趨勢,但軟體發展的世界總是變幻莫測,很難明確預測到會有哪些全新的開發語言、框架以及工具出現。如今已是2016年底,之前的預測實現了多少呢?
最新版JavaScript的變化
2015年6月,JavaScript/ECMAScript 6(即ECMAScript 2015或ES6)發佈。根據之前的預測,在2016年JS語言將會獲得廣泛採用——這一預測基本實現。超過九成的主流流覽器,以及開源的JavaScript運行時Node.js都已相容ES6。目前,不僅企業內部工具及不太重要的小型系統都有更多用到ES6語法,面對客戶的主流系統也出現了更多ES6的痕跡,像Airbnb和穀歌這樣不依賴舊版用戶端的公司都在內部程式設計風格指南中明令要求使用ES6的語法。
然而,ES6並未在全球範圍內普及,仍有一些開發者必須對老版的JS提供支援。一方面想要在程式中使用ES6注釋,但仍有老版本流覽器客戶需要維護的開發者們可以通過transpilers或者polyfills這樣的工具,將ES6代碼轉為舊版語法。此外,某些ES6的功能尚未在所有JS環境中實現,比如正確的處理尾調用。這裡有張表格,列出了目標平臺是否相容ES6的情況。老版的JavaScript不會一夕消失,但2016年間ES6的應用確實取得了很大的進展,希望來年再斬佳績。
後端即服務
與預測一致,後端即服務(BaaS)在2016年間也有所增長。BaaS即通過協力廠商服務,執行專案中特定重複任務,比如雲存儲、推送通知等。有了這些服務的出色工作,開發者也更能專注於自身專業。由於前端框架不斷發展,跟這些服務交互更加容易,因此後端API服務也在蓬勃發展。開發者也偏向採用整合技術,通過一些較小的應用組合成整體系統。
簡易的鏡像管理與部署機制
如同預期那樣,類似Docker和Packer這樣的服務成為了許多開發團隊的支柱。工程師可以運用這些服務,快速生成、複製被稱為“容器”的機器鏡像——其中捆綁有運行時、軟體、系統工具及資料庫等,確保在任何環境下都能快速運行起來。在一個帶有預先版本控制的羽量級虛擬環境中構建專案的原型,再輕鬆將新版本部署到多台伺服器上非常簡單。手工配置伺服器費時費力,因此被自動化取代也是可以預見的。
去年間相關的配置管理工具都在普及開來,包括Vagrant、Puppet、Chef和Ansible。使用以容器為基礎的系統來工作成為了開發人員的基本技能,其大勢所趨,不可阻擋。
增加對函數式程式設計語言的依賴
類似Haskell、Clojure、Scala等函數式程式設計語言在2016年間也逐漸熱門起來,隨著智慧手機與聯網設備的普及,為了在這些設備上獲得更好的體驗,伺服器端語言也隨之興盛。隨著電腦、平板電腦、智慧手機和物聯網小物件的日趨強大,伺服器也成為了性能表現的瓶頸。目前發展方向就是:增進伺服器性能,實現任務並行,並在與大量互聯設備互動時獲得更積極的回應。
大多函數式程式設計模型都是無狀態的,也就是說無需複雜的同步,這些軟體便能更簡單、更高效地在不同的CPU內核或者機器上實現並行運行,函數式範式在執行類似網路請求這樣的並行任務時具有天然優勢。
Material Design和模式趨同
2016年的視覺設計前端非常有趣,穀歌果然在系列產品中加入了更多的material design元素,涉及範圍包括作業系統(ChromeOS、Android),應用(Chrome、Drive、Google Play Music),網站(YouTube、AdSense)甚至其網路搜索,從Slack、Twitter、Spotify、Airbnb以及Wikipedia等安卓應用,還有Asana、Geekbench等網站中都能看到material design的痕跡。不過除了Ubuntu有少量應用之外,其它平臺無論是iOS、Tizen、Windows、MacOS,我們都未見到相關的應用。
其它平臺的開發者也在努力推進相關平臺的特定風格。預測到2017年,開發者會拋棄傳統的設計風格,轉向非視覺介面——Amazon Alexa、Siri、Cortana、Google Home等語音助手,或AR、VR等超視覺介面。
結論
2016年,軟體發展方面出現了許多振奮人心的變化,我們預測在2017年,容器和函數式程式設計語言將獲得廣泛的採用,同時JavaScript語言將成為標準開發實踐中更為核心的部分。