編譯地址:The Languages And Frameworks You Should Learn In 2016
原文地址:http://wx.h5.vc/post/translations/2015-12-14
2015 年白群,軟件開發(fā)界發(fā)生了很多變化。有很多流行的新語言發(fā)布了掩幢,也有很多重要的框架和工具發(fā)布了新版本列林。下面有一個我們覺得最重要的簡短清單鸥咖,同時也有我們覺得值得你在 2016 年花時間精力去學(xué)習(xí)的新事物的一些建議俊犯。
大趨勢
在過去的幾年里抱环,有一個越來越明顯的趨勢是 Web 應(yīng)用的商業(yè)邏輯逐步從后端轉(zhuǎn)移到了前端帽衙,然后后端變得只需要處理簡單的數(shù)據(jù) API菜皂。這就讓前端開發(fā)框架的選擇變得尤為重要了。
另外一個重要的改變是 2015 年發(fā)布的 Edge 瀏覽器佛寿。這是 IE 的替代品幌墓,擁有全新的界面和更好的性能。跟 IE 不一樣的是它同樣采用了跟 FireFox 和 Chrome 一樣的快速發(fā)布策略冀泻。這讓 JavaScript 開發(fā)者社區(qū)能夠以周為單位獲得最新版 JavaScript 和 Web 標(biāo)準(zhǔn)特性支持而不是像過去一樣需要等很多年。
語言和平臺
Python 3.5 在今年發(fā)布了蜡饵,帶來了很多新特性 弹渔。比如 Asyncio,為你帶來了類似 node.js 的事件機(jī)制溯祸,還有type hints肢专。 鑒于Python 3 終于真正地火起來了我們強(qiáng)烈建議你替換掉 Python 2。幾乎所有的庫都已經(jīng)支持 Python 3 了焦辅,所以現(xiàn)在是一個升級歷史遺留代碼的好時機(jī)博杖。
PHP 7 是一個重要的新版本,這個版本修復(fù)了很多問題并且?guī)砹诵绿匦院托阅芴嵘?a target="_blank" rel="nofollow">看看概覽) 筷登。 PHP 7 大約比 PHP 5.6 快 2 倍剃根, 這對一些大型項目還有WordPress 和 Drupal之類的CMS系統(tǒng)影響很大。 我們強(qiáng)烈推薦 PHP之道前方,已經(jīng)更新到最新的 PHP7 版本狈醉。 如果你需要更快的速度并且不介意換一個解釋引擎的話廉油,可以試試Facebook在用的 HHVM。
JavaScript 也以 ES2015 標(biāo)準(zhǔn) ( 大家通常叫做 ES6 )的形式發(fā)布了更新苗傅。 為我們帶來了激動人心的新功能抒线。 感謝大多數(shù)瀏覽器版本的快速更新, 對 ES2015 的支持已經(jīng)非常棒了渣慕,并且還有 Babel.js 這樣的工具可以讓你的新代碼跑在低版本瀏覽器上嘶炭。
Node.js 在這一年變化很多,開發(fā)者社區(qū)曾經(jīng)分裂成 Node.js 和 io.js逊桦,然后又再度合并旱物。 經(jīng)歷過這些之后的結(jié)局就是我們得到了一個有很多代碼貢獻(xiàn)者積極維護(hù)的項目,并且擁有了兩個版本的 Node : 一個穩(wěn)定的 LTS (長期支持) 版本卫袒,這個版本注重穩(wěn)定性宵呛,比較適合長期項目和大公司,和一個非長期支持但是最快實現(xiàn)新特征的版本夕凝。
Swift 2 在今年初發(fā)布了宝穗。 這是 Apple 出品的旨在簡化 iOS 和 OS X 開發(fā)的現(xiàn)代編程語言。 幾周前码秉, Swift 正式開源并已經(jīng)兼容 Linux逮矛。這意味著你可以用它來編寫服務(wù)端應(yīng)用了。
Go 1.5 在幾個月前發(fā)布了转砖, 并帶來了重大的架構(gòu)調(diào)整须鼎。 在 2015 年它變得越來越流行并被早期創(chuàng)業(yè)項目和開源項目所采納。這門語言是 非常簡單的府蔗,所以花一個周末你就能學(xué)會晋控。
TypeScript 是一個可編譯成 JavaScript 的靜態(tài)類型語言 。這是由微軟開發(fā)的姓赤,所以跟 Visual Studio 和開源的 Visual Studio Code editors 完美地集成了赡译。它很快就要大紅大紫了,因為即將到來的 Angular 2 就是用它寫的不铆。靜態(tài)類型對大型團(tuán)隊的大型項目特別有用蝌焚,所以如果你正在大型團(tuán)隊中做大型項目,或者僅僅出于好奇誓斥,你也應(yīng)該嘗試一下 TypeScript 只洒。
如果為了好玩兒,你也可以試試某種函數(shù)式編程語言比如 Haskell 或者 Clojure劳坑。也有有趣的高性能語言比如 Rust 和 Elixir毕谴。如果你在找一份程序員的工作的話, 職業(yè)開發(fā)語言比如 Java (在第8版中有一些很好的新特性) 和 C# (感謝 Visual Studio Code 和 .net core 實現(xiàn)了跨平臺開發(fā)和運行) 都值得你在 2016 年投入時間。
挑一個或幾個學(xué)習(xí): Python 3, Go, PHP 7, ES2015, Node.js, Swift, TypeScript
JavaScript 框架
JavaScript 框架是 Web 開發(fā)技術(shù)棧中非常重要的一部分析珊,所以我們單獨拿一小節(jié)來說這個羡鸥。今年有兩個新標(biāo)準(zhǔn)—— Service Workers 和 Web Assembly,基本改變了現(xiàn)代 Web APP 的開發(fā)方式忠寻。還有一些我們覺得你在 2016 年應(yīng)該保持關(guān)注的框架新版本發(fā)布惧浴。
Angular.js 已經(jīng)成為了大型企業(yè)首選的 JavaScript 框架。 這個框架即將發(fā)布下一個大版本的消息相信大家已經(jīng)聽過一段時間了奕剃, 在今年初的時候 Angular 2 發(fā)布了開發(fā)者預(yù)覽版衷旅。 相對 Angular 1 而言是一次顛覆性的重構(gòu),而對我們而言帶來了巨大的改進(jìn)纵朋。一旦正式發(fā)布就很有可能成為企業(yè)應(yīng)用開發(fā)框架的首選柿顶,所以 Angular 2 的開發(fā)經(jīng)驗將會是你簡歷里很好的一個加分項。我們建議再等幾個月直到最終版正式發(fā)布之后才用于生產(chǎn)操软,不過你不妨現(xiàn)在就讀一讀他們的 快速上手指南嘁锯。
React 在 2015 年里持續(xù)升溫并且持續(xù)升級,越來越多的新項目采用它開發(fā)聂薪。 幾個月前他們發(fā)布了新的開發(fā)工具 家乘。 Facebook 還發(fā)布了用于開發(fā)支持 Android 和 iOS 平臺原生應(yīng)用的 React Native 框架,這個框架使用了原生界面配合運行在后臺的JavaScript 線程實現(xiàn)基于 React 開發(fā)原生應(yīng)用藏澳。 可以參考我們今年發(fā)表的React初級教程 仁锯。
Polymer 1.0 是在 5 月份發(fā)布的。 這是第一個穩(wěn)定且可用于生產(chǎn)的版本翔悠。Polymer 主要是基于 Web Components 標(biāo)準(zhǔn), 這是一份將 HTML, JS 和 CSS 打包成獨立組件并便于快速引用的標(biāo)準(zhǔn)业崖。目前只有 Chrome 和 Opera 支持 Web Components 標(biāo)準(zhǔn),但是 Polymer 搞定了瀏覽器兼容性問題蓄愁。
Ember.js 也發(fā)布了一個新版本双炕。 Ember 2 帶來了模塊化功能、廢棄了一些舊特性并提升了性能涝登。 Ember 遵循語義化版本并且開發(fā)團(tuán)隊盡可能保證大家能夠平滑升級雄家。如果你需要一個穩(wěn)定且易于升級的框架的話,Ember 是個不錯的選擇胀滚。
挑一個或幾個學(xué)習(xí): Angular 2, React, Ember.js, Polymer, Web Components, Service Workers
前端
Bootstrap 在過去的一年里變得更加流行了,正在成為 Web 開發(fā)的標(biāo)配乱投。 使用SASS 并支持 flexbox 的第四版將在幾個月之后發(fā)布咽笼,官方保證可以從 V3 平滑升級 (不會像 2 年前從 v2 升級到 v3 那樣 ), 所以盡管放心戚炫,你學(xué)的第 3 版的相關(guān)知識照樣會適用于第 4 版剑刑。
Foundation 是另一個可替代 Bootstrap 的前端框架。 第 6 版在年初的時候發(fā)布了,這個版本主要側(cè)重于模塊化施掏,你可以根據(jù)需要定制自己需要的部分以便縮短加載時間钮惠。
MDL 是一個 Google 官方發(fā)布的用于開發(fā) material design web app 的框架。 這個框架在今年初發(fā)布并和 Polymer 目標(biāo)相似七芭,但是更容易上手素挽。我們曾經(jīng)寫過一篇 精彩的 MDL 與 Bootstrap 差異總結(jié)。
CSS 預(yù)處理器也在持續(xù)改良狸驳。LESS 和 SASS 是當(dāng)下最流行的兩個预明,大部分功能都差不多。但是耙箍,最新的 Bootstrap 4 都已經(jīng)轉(zhuǎn)向了 SASS撰糠,所以 2016 年要學(xué)的 CSS 預(yù)處理器中 SASS 獲得了一些優(yōu)勢。當(dāng)然了辩昆,也還有更新的 PostCSS 工具值得留意阅酪,但是我們強(qiáng)烈建議先掌握了預(yù)處理器再來學(xué)這個。
挑一個或幾個學(xué)習(xí): Bootstrap, MDL, Foundation, SASS, LESS, PostCSS
后端
這幾年的 Web 開發(fā)有一個非常明顯的趨勢汁针。越來越多的應(yīng)用邏輯轉(zhuǎn)移到了前端术辐,然后后端僅僅是 API。然而傳統(tǒng)的后端生成頁面的應(yīng)用依然還有生存空間扇丛,所以我們覺得學(xué)一個經(jīng)典的全站框架依然是非常重要的术吗。
關(guān)鍵取決于你更喜歡那種語言,可選擇的非常多帆精。用 PHP 你可以選 Symfony, Zend, Laravel (還有 Lumen, 這是新一代專注于 API 開發(fā)的框架), Slim 等较屿。用 Python 有 Django 和 Flask 。用 Ruby 有Rails 和Sinatra卓练。用 Java 有 Play 和 Spark隘蝎。用 Node.js 你可以選擇 Express, Hapi 和 Sails.js ,還有 Go 語言的Revel襟企。
AWS Lambda 去年就已經(jīng)發(fā)布了嘱么,但是這個概念到現(xiàn)在才穩(wěn)定并能用于生產(chǎn)。這是一種可無限擴(kuò)展的完全取代傳統(tǒng)后端服務(wù)器的云服務(wù)顽悼。你可以根據(jù) API 被訪問時的特定條件或者路由來定義不同的響應(yīng)方法曼振。這意味著你可以完全不用管服務(wù)器。
另一個趨勢是靜態(tài)站點生成器比如 Jekyll 和 Octopress (這里有一個完整的同類清單)蔚龙。這類工具的主要功能是把一堆文本和圖片文件渲染成一個完整的靜態(tài)網(wǎng)站冰评。那些以前通常自己搭一個 Wordpress 博客程序的開發(fā)者現(xiàn)在更喜歡事先生成并直接上傳一個靜態(tài)網(wǎng)站。這樣會更加安全(沒有后端服務(wù)器也不需要數(shù)據(jù)庫)并且性能非常好木羹。結(jié)合 MaxCDN 或 CloudFlare之類的 CDN 服務(wù)可以讓用戶就近訪問甲雅,明顯減少等待時間解孙。
挑一個學(xué)習(xí): 傳統(tǒng)的全棧后端框架,AWS Lambda抛人,一種靜態(tài)生成器
內(nèi)容管理系統(tǒng)(CMS)
我們主要介紹兩種最流行的 CMS 系統(tǒng)弛姜。都是用 PHP 寫的并且易于部署和上手。他們都因為 PHP7 的發(fā)布獲得了明顯的速度提升妖枚。
最近幾年 Wordpress 已經(jīng)變得早就不僅僅是個博客程序了廷臼。它是一個成熟的 CMS/框架,配合插件可以做任何一種網(wǎng)站盅惜。高質(zhì)量的 Wordpress 皮膚是一個巨大的市場中剩,很多自由職業(yè)者以 Wordpress 相關(guān)開發(fā)為生。配合類似 WP-API 之類的項目你可以把Wordpress 變成一組 REST API 抒寂。
Drupal 8 在今年發(fā)布了结啼。這是一次側(cè)重現(xiàn)代開發(fā)最佳實踐的重構(gòu)。使用了 Symfony 2 組件屈芜、 Composer 包管理器 和 Twig 模板引擎郊愧。成千上萬的網(wǎng)站在使用 Drupal,它確實是以內(nèi)容為主的門戶網(wǎng)站的一個很好的選擇井佑。
數(shù)據(jù)庫
這一年 Web 開發(fā)社區(qū)對 NoSQL 數(shù)據(jù)庫失去了一些熱情属铁,重新回到了關(guān)系型數(shù)據(jù)庫比如 Postgres 和 MySQL 身邊。這方面著名的例外是 RethinkDB 和 Redis 躬翁,他們都很火焦蘑,我強(qiáng)烈建議你在2016年都試試。
MySQL 是最火并且大部分主機(jī)供應(yīng)商都支持的開源數(shù)據(jù)庫盒发。在 5.7 版里例嘱,MySQL 也提供了JSON columns 來存儲非關(guān)系型數(shù)據(jù)。如果你剛開始接觸后端開發(fā)宁舰,你可能正在找連接到服務(wù)器已安裝的數(shù)據(jù)庫的方法拼卵。很可能是舊版本的,所以你沒辦法嘗試 JSON 類型數(shù)據(jù)蛮艰。MySQL 已經(jīng)包含在了很流行的 XAMPP 或 MAMP 之類的軟件包里腋腮,所以上手很容易。
挑一個學(xué)習(xí): Redis, RethinkDB, MySQL/MariaDB, PostgreSQL
移動應(yīng)用
移動平臺一直在進(jìn)步并且智能機(jī)的硬件配置現(xiàn)在跟低端筆記本的性能差不多了壤蚜。這對于 hybrid 移動開發(fā)框架來說是個好消息即寡,基于 Web 技術(shù)開發(fā)的移動應(yīng)用將得到更加順滑、更像原生的體驗了袜刷。
我們曾經(jīng)寫過一篇不錯的 Hybrid應(yīng)用開發(fā)框架概覽 你或許會感興趣嘿悬。最火的 Ionic 框架 和 Meteor 都在最近發(fā)布了 1.0 版本且都適合做移動應(yīng)用開發(fā)。Facebook 開源的 React Native水泉,可以在后臺 JavaScript 進(jìn)程里運行 React 組件并更新原生的UI界面,讓你可以用幾乎同一套代碼同時寫 iOS 和 Android 應(yīng)用。
挑一個學(xué)習(xí): Ionic, React Native, Meteor
編輯器和開發(fā)工具
Atom 在今年發(fā)布了 1.0草则。它是一款使用 Web 技術(shù)開發(fā)的免費且功能強(qiáng)大的代碼編輯器钢拧。它背后有一個很多大開發(fā)者社區(qū)(譯者注:github)提供了很多擴(kuò)展包。它提供好用的自動完成并集成了代碼重構(gòu)和校驗工具炕横。差點忘了它還有很多漂亮的皮膚可以選擇源内,并且你可以自己寫 CoffeeScript 和 CSS 來定制自己喜歡的皮膚。Facebook 已經(jīng)這么干了份殿,并且發(fā)布了名為 Nuclide 的編輯器膜钓。
微軟在今年年初發(fā)布的 Visual Studio Code 給了大家一個驚喜。這是一款支持多種語言并兼容 Windows, Linux 和 OS X 平臺的輕量級 IDE卿嘲。它提供了強(qiáng)大的智能代碼檢查并集成了 ASP.Net 和 Node.js 的調(diào)試工具颂斜。
NPM,Node.js 的包管理器拾枣,火得一塌糊涂并已經(jīng)成為了前端和 node 開發(fā)者的標(biāo)準(zhǔn)包管理器沃疮。這是幫你的項目管理 JavaScript 依賴最簡單的方法并且上手很容易。
目前哪怕是一個人開發(fā)也有必要用 Git梅肤。它的分布式模型讓你可以把任何一個文件夾變成一個版本控制倉庫司蔬,然后你可以把這個倉庫發(fā)布到 Bitbucket 或 Github,同步到其他電腦上姨蝴。如果你還沒用過 Git俊啼,我們強(qiáng)烈建議你把它加入你 2016 年需要學(xué)習(xí)的清單里面。
挑一個學(xué)習(xí): Atom, Visual Studio Code, NPM, Git
搞物聯(lián)網(wǎng)
樹莓派基金會提前給我們送來了圣誕禮物左医,Raspberry PI Zero 一種只賣 5 美金的高性能電腦發(fā)布了授帕。它搭載了 Linux,所以你可以把它變成一臺服務(wù)器炒辉,一個家用自動化裝置豪墅,一面智能鏡子,或者把它集成到別的電器里面打造一個你夢寐以求的能聯(lián)網(wǎng)控制的咖啡機(jī)黔寇。2016 年是你應(yīng)該擁有樹莓派的一年偶器。
規(guī)劃一個漂亮的 2016 年吧!
我們已經(jīng)度過了非常棒的 2015 年缝裤,看起來 2016 年會更有意思屏轰。那么 2016 年你會想學(xué)些什么呢?