2016年你應該學習的語言和框架

原文鏈接:2016年你應該學習的語言和框架 - 愛奇舞--H5.vc

作者:愛奇舞——H5.vc

  • 大趨勢
  • 語言和平台
  • JavaScript 框架
  • 前端
  • 後端
  • 內容管理系統(CMS)
  • 資料庫
  • 移動應用
  • 編輯器和開發工具
  • 搞物聯網
  • 規劃一個漂亮的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年你會想學些什麼呢?

譯文鏈接

本文首發:2016年你應該學習的語言和框架 - 愛奇舞--H5.vc

閱讀原文

推薦閱讀:

TAG:编程语言 | 框架 | 开发工具 |