2016年你應該學習的語言和框架
2015年,軟體開發界發生了很多變化。有很多流行的新語言釋出了,也有很多重要的框架和工具釋出了新版本。下面有一個我們覺得最重要的簡短清單,同時也有我們覺得值得你在2016年花時間精力去學習的新事物的一些建議。
大趨勢
在過去的幾年裡,有一個越來越明顯的趨勢是web應用的商業邏輯逐步從後端轉移到了前端,然後後端變得只需要處理簡單的資料API。這就讓前端開發框架的選擇變得尤為重要了。
另外一個重要的改變是2015年釋出的 Edge 瀏覽器。這是IE的替代品,擁有全新的介面和更好的效能。跟IE不一樣的是它同樣採用了跟 FireFox 和 Chrome 一樣的快速釋出策略。這讓JavaScript 開發者社群能夠以周為單位獲得最新版JavaScript 和 Web標準特性支援而不是像過去一樣需要等很多年。
語言和平臺
Python 3.5 在今年釋出了,帶來了很多新特性 比如 Asyncio,為你帶來了類似 node.js 的事件機制,還有type hints。 鑑於Python 3 終於真正地火起來了我們強烈建議你替換掉 Python 2。幾乎所有的庫都已經支援 Python 3 了,所以現在是一個升級歷史遺留程式碼的好時機。
PHP 7 是一個重要的新版本,這個版本修復了很多問題並且帶來了新特性和效能提升(看看概覽) 。 PHP 7 大約比 PHP 5.6 快2倍, 這對一些大型專案還有WordPress 和 Drupal之類的CMS系統影響很大。 我們強烈推薦 PHP之道,已經更新到最新的PHP7版本。 如果你需要更快的速度並且不介意換一個解釋引擎的話,可以試試Facebook在用的 HHVM。
JavaScript 也以ES2015 標準 (大家通常叫做 ES6)的形式釋出了更新。 為我們帶來了激動人心的新功能。 感謝大多數瀏覽器版本的快速更新, 對 ES2015 的支援已經非常棒了,並且還有 Babel.js 這樣的工具可以讓你的新程式碼跑在低版本瀏覽器上。
Node.js 在這一年變化很多,開發者社群曾經分裂成 Node.js 和 io.js,然後又再度合併。 經歷過這些之後的結局就是我們得到了一個有很多程式碼貢獻者積極維護的專案,並且擁有了兩個版本的 Node : 一個穩定的LTS (長期支援) 版本,這個版本注重穩定性,比較適合長期專案和大公司,和一個非長期支援但是最快實現新特徵的版本。
Swift 2 在今年初發布了。 這是 Apple 出品的旨在簡化 iOS 和 OS X 開發的現代程式語言。 幾周前, Swift 正式開源並已經相容 Linux。這意味著你可以用它來編寫服務端應用了。
Go 1.5 在幾個月前釋出了, 並帶來了重大的架構調整。 在 2015 年它變得越來越流行並被早期創業專案和開源專案所採納。這門語言是 非常簡單的,所以花一個週末你就能學會。
TypeScript 是一個可編譯成 JavaScript 的靜態型別語言 。這是由微軟開發的,所以跟Visual Studio 和開源的 Visual Studio Code editors 完美地整合了。它很快就要大紅大紫了,因為即將到來的 Angular 2 就是用它寫的。靜態型別對大型團隊的大型專案特別有用,所以如果你正在大型團隊中做大型專案,或者僅僅出於好奇,你也應該嘗試一下 TypeScript 。
如果為了好玩兒,你也可以試試某種函數語言程式設計語言比如 Haskell 或者 Clojure。也有有趣的高效能語言比如 Rust 和 Elixir。如果你在找一份程式設計師的工作的話, 職業開發語言比如Java (在第8版中有一些很好的新特性) 和 C# (感謝 Visual Studio Code 和 .net core 實現了跨平臺開發和執行) 都值得你在2016年投入時間。
挑一個或幾個學習: Python 3, Go, PHP 7, ES2015, Node.js, Swift, TypeScript
JavaScript 框架
JavaScript框架是web開發技術棧中非常重要的一部分,所以我們單獨拿一小節來說這個。今年有兩個新標準—— Service Workers 和 Web Assembly,基本改變了現代 Web APP的開發方式。還有一些我們覺得你在2016年應該保持關注的框架新版本釋出。
Angular.js 已經成為了大型企業首選的 JavaScript 框架。 這個框架即將釋出下一個大版本的訊息相信大家已經聽過一段時間了, 在今年初的時候 Angular 2 釋出了開發者預覽版。 相對 Angular 1 而言是一次顛覆性的重構,而對我們而言帶來了巨大的改進。一旦正式釋出就很有可能成為企業應用開發框架的首選,所以 Angular 2 的開發經驗將會是你簡歷裡很好的一個加分項。我們建議再等幾個月直到最終版正式釋出之後才用於生產,不過你不妨現在就讀一讀他們的 快速上手指南。
React 在2015年裡持續升溫並且持續升級,越來越多的新專案採用它開發。 幾個月前他們釋出了新的開發工具 。 Facebook 還發布了用於開發支援 Android 和 iOS 平臺原生應用的 React Native 框架,這個框架使用了原生介面配合執行在後臺的JavaScript執行緒實現基於React開發原生應用。 可以參考我們今年發表的 React初級教程 。
Polymer 1.0 是在5月份釋出的。 這是第一個穩定且可用於生產的版本. Polymer 主要是基於 Web Components 標準, 這是一份將 HTML, JS 和 CSS 打包成獨立元件並便於快速引用的標準。目前只有 Chrome 和 Opera 支援 Web Components標準,但是 Polymer 搞定了瀏覽器相容性問題。
Ember.js 也釋出了一個新版本。 Ember 2 帶來了模組化功能、廢棄了一些舊特性並提升了效能。 Ember 遵循語義化版本並且開發團隊儘可能保證大家能夠平滑升級。如果你需要一個穩定且易於升級的框架的話,Ember是個不錯的選擇。
挑一個或幾個學習: Angular 2, React, Ember.js, Polymer, Web Components, Service Workers
前端
Bootstrap 在過去的一年裡變得更加流行了,正在成為Web開發的標配。 使用SASS 並支援 flexbox 的第四版將在幾個月之後釋出,官方保證可以從V3平滑升級 (不會像2年前從 v2 升級到 v3 那樣 ), 所以儘管放心,你學的第3版的相關知識照樣會適用於第4版。
Foundation 是另一個可替代Bootstrap的前端框架。 第6版在年初的時候釋出了,這個版本主要側重於模組化,你可以根據需要定製自己需要的部分以便縮短載入時間。
MDL 是一個Google官方釋出的用於開發material design web app 的框架。 這個框架在今年初發布並和Polymer目標相似,但是更容易上手。我們曾經寫過一篇 精彩的 MDL 與 Bootstrap 差異總結。
CSS前處理器也在持續改良。LESS 和 SASS 是當下最流行的兩個,大部分功能都差不多。但是,最新的 Bootstrap 4 都已經轉向了 SASS,所以2016年要學的CSS前處理器中 SASS 獲得了一些優勢。當然了,也還有更新的 PostCSS 工具值得留意,但是我們強烈建議先掌握了前處理器再來學這個。
挑一個或幾個學習: Bootstrap, MDL, Foundation, SASS, LESS, PostCSS
後端
這幾年的Web開發有一個非常明顯的趨勢。越來越多的應用邏輯轉移到了前端,然後後端僅僅是API。然而傳統的後端生成頁面的應用依然還有生存空間,所以我們覺得學一個經典的全站框架依然是非常重要的。
關鍵取決於你更喜歡那種語言,可選擇的非常多。用PHP你可以選 Symfony, Zend, Laravel (還有 Lumen, 這是新一代專注於API開發的框架), Slim 等。用Python 有 Django 和 Flask 。用 Ruby 有Rails 和 Sinatra。用Java有 Play 和 Spark。用Node.js你可以選擇 Express, Hapi 和 Sails.js ,還有 Go 語言的Revel。
AWS Lambda去年就已經發布了,但是這個概念到現在才穩定並能用於生產。這是一種可無限擴充套件的完全取代傳統後端伺服器的雲服務。你可以根據API被訪問時的特定條件或者路由來定義不同的響應方法。這意味著你可以完全不用管伺服器。
另一個趨勢是靜態站點生成器比如 Jekyll 和 Octopress(這裡有一個完整的同類清單)。這類工具的主要功能是把一堆文字和圖片檔案渲染成一個完整的靜態網站。那些以前通常自己搭一個Wordpress部落格程式的開發者現在更喜歡事先生成並直接上傳一個靜態網站。這樣會更加安全(沒有後端伺服器也不需要資料庫)並且效能非常好。結合 MaxCDN 或 CloudFlare之類的CDN服務可以讓使用者就近訪問,明顯減少等待時間。
挑一個學習: 傳統的全棧後端框架, AWS Lambda, 一種靜態生成器
內容管理系統(CMS)
我們主要介紹兩種最流行的 CMS系統。都是用PHP寫的並且易於部署和上手。他們都因為PHP7的釋出獲得了明顯的速度提升。
最近幾年 Wordpress 已經變得早就不僅僅是個部落格程式了。它是一個成熟的 CMS/框架,配合外掛可以做任何一種網站。高質量的 Wordpress 皮膚是一個巨大的市場,很多自由職業者以 Wordpress 相關開發為生。配合類似 WP-API 之類的專案你可以把Wordpress變成一組 REST API 。
Drupal 8 在今年釋出了。這是一次側重現代開發最佳實踐的重構。使用了 Symfony 2 元件、 Composer 包管理器 和 Twig 模板引擎。成千上萬的網站在使用 Drupal,它確實是以內容為主的入口網站的一個很好的選擇。
資料庫
這一年Web開發社群對 NoSQL 資料庫失去了一些熱情,重新回到了關係型資料庫比如 Postgres 和 MySQL 身邊。這方面著名的例外是 RethinkDB 和 Redis ,他們都很火,我強烈建議你在2016年都試試。
MySQL 是最火併且大部分主機供應商都支援的開源資料庫。在5.7版裡,MySQL 也提供了JSON columns 來儲存非關係型資料。如果你剛開始接觸後端開發,你可能正在找連線到伺服器已安裝的資料庫的方法。很可能是舊版本的,所以你沒辦法嘗試 JSON 型別資料。MySQL已經包含在了很流行的 XAMPP 或 MAMP 之類的軟體包裡,所以上手很容易。
挑一個學習: Redis, RethinkDB, MySQL/MariaDB, PostgreSQL
移動應用
移動平臺一直在進步並且智慧機的硬體配置現在跟低端筆記本的效能差不多了。這對於 hybrid 移動開發框架來說是個好訊息,基於web技術開發的移動應用將得到更加順滑、更像原生的體驗了。
我們曾經寫過一篇不錯的 Hybrid應用開發框架概覽 你或許會感興趣。最火的 Ionic 框架 和 Meteor 都在最近釋出了1.0版本且都適合做移動應用開發。Facebook 開源的 React Native,可以在後臺JavaScript程式裡執行 React 元件並更新原生的UI介面,讓你可以用幾乎同一套程式碼同時寫 iOS和Android應用。
挑一個學習: Ionic, React Native, Meteor
編輯器和開發工具
Atom在今年釋出了1.0。它是一款使用web技術開發的免費且功能強大的程式碼編輯器。它背後有一個很多大開發者社群(譯者注:github)提供了很多擴充套件包。它提供好用的自動完成並整合了程式碼重構和校驗工具。差點忘了它還有很多漂亮的皮膚可以選擇,並且你可以自己寫 CoffeeScript 和 CSS 來定製自己喜歡的皮膚。Facebook 已經這麼幹了,並且釋出了名為 Nuclide 的編輯器。
微軟在今年年初發布的 Visual Studio Code 給了大家一個驚喜。這是一款支援多種語言併相容 Windows, Linux 和 OS X 平臺的輕量級IDE。它提供了強大的智慧程式碼檢查並整合了 ASP.Net 和 Node.js 的除錯工具。
NPM,Node.js的包管理器,火得一塌糊塗並已經成為了前端和node開發者的標準包管理器。這是幫你的專案管理 JavaScript 依賴最簡單的方法並且上手很容易。
目前哪怕是一個人開發也有必要用 Git。它的分散式模型讓你可以把任何一個資料夾變成一個版本控制倉庫,然後你可以把這個倉庫釋出到 Bitbucket 或 Github,同步到其他電腦上。如果你還沒用過 Git,我們強烈建議你把它加入你2016年需要學習的清單裡面。
挑一個學習: Atom, Visual Studio Code, NPM, Git
搞物聯網
樹莓派基金會提前給我們送來了聖誕禮物,Raspberry PI Zero 一種只賣 5 美金的高效能電腦釋出了。它搭載了Linux,所以你可以把它變成一臺伺服器,一個家用自動化裝置,一面智慧鏡子,或者把它整合到別的電器裡面打造一個你夢寐以求的能聯網控制的咖啡機。2016年是你應該擁有樹莓派的一年。
規劃一個漂亮的2016年吧!
我們已經度過了非常棒的2015年,看起來2016年會更有意思。那麼2016年你會想學些什麼呢?
譯自:http://tutorialzine.com/2015/12/the-languages-and-frameworks-you-should-learn-in-2016/
相關文章
- 2017 年你應該學習的程式語言、框架和工具框架
- 你應該學習哪種程式語言?
- 你應該學習的第一門程式語言
- 學習java,,,你應該研究的Java
- 學習Mysql 你應該懂得MySql
- 前端開發者,2017 年你應該學習什麼前端
- 你應該學習正規表示式
- 10個你應該學習使用的PHP特性PHP
- 英語不應該那麼學(正確的英語學習方法)
- [譯] Bulma: 2018年你應該關注的CSS框架CSS框架
- 為什麼你應該學習程式設計程式設計
- Android開發,你應該知道的學習資源Android
- 老公,我應該好好學習C語言了C語言
- Java後端學習,你應該看那些書籍?Java後端
- 【NLP學習其三】在學習什麼是嵌入之前,你應該瞭解什麼是詞語表徵
- 你應該知道的9個優秀的CSS框架CSS框架
- jmeter學習指南之響應斷言和beanshell斷言JMeterBean
- C# 中 10 個你真的應該學習(和使用!)的功能C#
- Node.JS學習之二,你應該更多的使用constNode.js
- 你確實應該學習並使用的 10 個 C# 特性C#
- 作為 2016 年的開發者,你需要學習 Emacs 或 ViMac
- 2016年我們需要關注學習這些框架框架
- 什麼是2016年最值得學習的程式語言?
- 你好banq,我想學習jdon框架,應該怎麼來學比較合理!!框架
- 你該學習 Python 的 7 個理由Python
- Python語言和R語言之間有什麼不同?Python學習教程PythonR語言
- 新手應該如何學習JAVAJava
- 你現在應該閱讀的7本最好的深度學習書籍深度學習
- 2016年應該使用SQLite的5大原因SQLite
- 2016 年開發者應該掌握的十個 Postgres 技巧
- 你應該知道Go語言的幾個優勢Go
- 為什麼你應該使用一個PHP框架PHP框架
- 轉享:為什麼你應該使用Play框架?框架
- Java程式設計師應該在2018年學習三種JVM語言Java程式設計師JVM
- 學習Tomcat,我們應該懂的Tomcat
- 學習 MySQL 應該掌握的 6 個技巧MySql
- 2020年Java程式設計師應該學習的七大前後端框架 - javarevisitedJava程式設計師後端框架
- Java學習路線圖應該怎麼學習?Java