2017程式設計趨勢預測:哪些技術大熱?哪些技術遇冷?
程式設計師們喜歡嘲笑時裝界的潮流總是變化得像一陣風一樣。這與程式設計界的潮流趨勢是不一樣的,因為在技術世界,流行的是嚴謹,科學,數學和精確的準則。這不是說程式設計是一種缺乏趨勢的行業。不同的是,程式設計的趨勢是由更高效率,改良的使用者化和使用方便來驅動的。這些可以帶來更多便利的新技術讓前一代技術黯然失色。這是一種知識界的精華,而不是異想天開。
那麼在程式設計界,在即將到來的2017年和未來的幾年內,會有哪些新技術出現,成為新的潮流,又有哪些技術的熱潮會漸漸消退呢?infoworld.com的一位編輯Peter Wayner在他撰寫的文章21 hot programming trends — and 21 going cold中,提到了21種會流行的技術,以及相應地,21種可能會遇冷的技術。
本文旨在與大家一起討論這個話題。下面所列出的10種技術,摘自Peter的文章。大家也可以閱讀他的全文,瞭解他對其它技術的預測。
1. 大熱: JavaScript MV 框架
遇冷:JavaScript檔案
很久以前,每個人都學會了寫JavaScript程式碼,用來彈出一個訊息視窗或檢查表格中含有@符號的電子郵件地址。不過現在有了HTML Ajax應用程式,它們非常精細,因此很少人從零開始寫程式碼了。使用一個有詳細說明的框架和寫一點膠水程式碼來執行你的商業邏輯是比較簡單的方法。
現在有很多框架,如Kendo, Sencha,jQuery Mobile,AngularJS,Ember, Backbone, Meteor JS等等,所有這些框架都是為了處理Web應用程式以及頁面事件和內容而準備的。另外,還有一些為智慧手機和平板電腦提供的跨平臺框架,其中包括native script,Phone Gap和Sencha Touch等,它們可以用來建立源自HTML5技術的app。
(一位開發者使用Phonegap開發一款HTML5 App )
2. 大熱: SVG + JavaScript on Canvas
遇冷: Flash
Flash已經令人們瘋狂了很多年,但程式設計大師們一直看重的是結果。反鋸齒渲染看起來很棒,以及很多有才華的程式設計大師已經建立了一個Flash程式碼堆垛來處理複雜的過渡和動畫。
現在JavaScript層具有很多相同的能力。瀏覽器的製造商和開發者都在為Flash的結束而歡呼。JavaScript可以與DOM層更好地整合在一起,DOM層來自一些新的格式,例如SVG(可縮放向量圖形)。SVG和HTML包含了一大堆標籤,Web開發者使用起來往往更方便,現在還有了大的APIs,讓你可以在畫布物件上詳細地繪畫圖形,通常還會提供視訊卡來幫助你使用。把它們結合起來使用,你還有什麼理由要用Flash呢?
(在livecoding.tv上,可以找到400多個與JavaScript on Canvas相關的視訊。)
3. 大熱: 遊戲框架
遇冷: 原生遊戲開發
很久以前,遊戲開發意味著要請大量開發人員,他們從零開始用C語言寫所有程式碼。當然這得投入巨資,但它看起來很棒。現在,沒有人能負擔得起奢侈的自定義程式碼了。大多數遊戲開發者放下了他們多年前的驕傲資本,現在他們使用庫,如Unity, Corona, 或LibGDX來建立系統。他們不會再寫像庫說明那麼多的C程式碼了。這現象是否會令人慚愧呢?我們的遊戲不再是用手工寫程式碼完成,而是由相同的引擎來製作而成的。不過,大多數開發者都對此感到很欣慰,因為他們不需要被迫去處理細節,這樣他們可以專注於遊戲玩法,情節,人物和藝術。
(Livecoding.tv上的直播者使用Unity及其它庫來開發各種遊戲。)
4. 大熱: 單一網頁的Web apps
遇冷: 網站
如何把所有資訊放在一個由數個獨立網頁組成的網站中,網站設計人員要花幾個小時來製作網站地圖,以令網站導航變得簡單。
新的Web應用程式是從前端到有大量內容的大資料庫。當Web應用程式需要資訊時,它就從資料庫中提取資訊並將資訊注入到本地的模具中。現在沒有必要使用Web附加裝置所需要的所有東西來標記資料,以便建立一個網頁了。資料層是完全獨立於演示和格式層。移動計算的興起是另一個因素:單頁的,響應式設計的網頁,它工作起來就像一個app——所有這些都更好,以避免混亂的App商店。
(在livecoding.tv上,可以找到800多個與單一網頁app的相關視訊。)
5. 大熱: 移動Web apps
遇冷: 原生移動 apps
對於移動內容,你可能會有很多很好的想法。你可以寫不同版本的app來應用於不同的系統:Android,iOS,Windows 8,甚至BlackBerry OS或是其它任何一個系統。每一個版本的app需要由一個獨立的,懂得不同程式語言的團隊來開發。然後,每一個平臺上的app商店在把app交到使用者手中之前,可能會各自提出種種合理不合情的要求。
或者你可以建立一個HTML app,把它放在一個網站上,在所有平臺上執行。如果出現了什麼變化,你不需要返回app商店去請求獲得一個迅速的錯誤檢查和修復。現在,HTML層越來越快,而且它在速度較快的晶片上執行,這種方法可以使移動Web app更好地與原生app競爭,甚至是與更復雜的互動式app競爭。
(瀏覽這些app的開發視訊,會給你帶來啟發)
6. 大熱: Android
遇冷: iOS
幾年前,蘋果專賣店門前排起的“人龍”還記得吧?時代在改變,雖然iPhone和iPad仍然擁有忠實粉絲,他們喜歡豐富、複雜的使用者介面,但原始銷售資料依然對Android有利。一些報導甚至說,超過80%的手機是Android的。
原因可能很簡單,因為成本。當iOS的裝置成本仍然很高的時候,Android正在以大量競爭洶湧而來,那就是用五分之一的價格來生產平板電腦。省錢永遠是一種誘惑。不過,另一個因素可能是開源的效果。任何人都可以在市場上競爭。現在市場上有大的安卓平板電腦,也有小的;有安卓攝像頭,甚至還有安卓冰箱。
7. 大熱: Web介面
遇冷: 整合開發環境(IDEs)
很久以前,人們用的是命令列編譯器,然後有人把編輯器和其它工具整合在一起,創造了IDE。現在又輪到IDE的熱潮消退了,因為有了基於瀏覽器的工具出現。它們通常是一個工作系統,可以讓你編輯程式碼。如果你不喜歡WordPress的功能,它配備了一個內建的編輯器,讓你可以即時更改程式碼。微軟的Azure允許你在它的入口寫JavaScript膠水程式碼。雖然這些系統不能提供最好的除錯環境,並且在編輯生產程式碼時可能會有一些危險,但這個創意是不錯的。
你可以嘗試Cloud9,Aptana,和Mozilla WebIDE,但要堅持探索。Web介面正在變得越來越強大。有可能會出現這樣的情況,在微軟的Azure網站上建立一個完整的大資料分析專案。
8. 大熱: Node.js
遇冷: JavaEE, Ruby on Rails
伺服器的世界一直線上程模型上長盛不衰,它讓程式設計師在使用作業系統時可以有種種行為,如固執,低效或是放任。無論是由程式設計師編碼而造成的愚蠢的迴圈或是浪費的計算,作業系統都可以線上程之間切換來平衡效能。
Node連同JavaScript一起回撥程式設計模型,它的程式碼的確執行得很快,比任何人預期的還快。它曾經可能是一種無實用價值的語言,只是被用於警告訊息框。但意外地,由於建立新執行緒的開銷變得明顯,Node.js騰飛了。當程式設計師表現得不好時,問題就會出現了,但責任在很大程度上是對他們有好處的。顯然,限制資源往往可以令程式設計師更快地寫程式碼。
Node.js還有利於瀏覽器和伺服器之間的和諧。執行在瀏覽器和伺服器上的相同程式碼可以讓開發人員更方便地移動和複製功能。因此,Node.js層已經成為網際網路上最熱門的棧。
9. 大熱: PHP 7.0
遇冷:舊版PHP
在過去,PHP是一種簡單的方法來淘汰一些動態網頁。如果你需要一點點的變化,你可以在HTML標籤之間嵌入簡單的程式碼。Web開發者有了它就基本足夠了,但它的緩慢足以令程式設計師中的中堅分子看不起它。
這是一則舊聞了,因為一些喜愛PHP的程式設計師在Wordpress和Facebook等地方都在爭相利用即時編譯器,這種曾創造出Java如此高效能解決方案的技術來執行比以前更快的PHP程式碼。現在的工具如HipHop,虛擬機器和PHP7.0提供的速度可能是舊版本的2倍。這會給Node.js和java帶來挑戰。
10. 大熱: 與時並進的教育
遇冷: 四年傳統教育
以計算機為介導的課程不再是新玩意了,每個人正在享受著觀看視訊講座的好處。我們可以隨意調整視訊的播放進度,加快或放緩,還可以重複觀看自己想看的部分。線上論壇同樣比以前的討論室有了改善,以前每一次討論,只能由一個人來主宰。
但這不僅是教育的一種本質,網上課程技術的背後是它顛覆了教育產業技術的複雜性;它還可以讓你靈活地支配自己的學習時間和地點。這正在改變我們的生活動態,因為我們不再需要投資四年的時間以及負擔高額的學費去學習一系列課程了。 當你需要獲得新資訊的時候,你的需要可以得到滿足,而且不要讓迅速腐爛的想法困擾你的頭腦。
就程式設計來說,我們可以在網上找到很多學習網站、社群、部落格,這些都是很好的學習資源。例如Livecoding.tv, 這是一個將直播,教育,社交和工作結合在一起的綜合平臺。這個平臺以直播程式設計的方式,將世界各地的程式設計師開發產品或專案的過程直觀地呈現給觀眾使用者。你可以學到很多在書本上不一定能學到的程式設計知識和技巧,因為每一個直播,都是一個真實的案例。除了直播,你還可以觀看每一個直播者的視訊。因此,你可以在這個網站上學習某種程式語言的基礎知識,也可以學習某個產品,工具甚至是整個專案的開發,看看優秀的開發者是如何寫程式碼,除錯,建立框架等等。當直播與線上學習結合在一起時,這也是網際網路的一個趨勢。
以上分享的內容,可能不一定是你認同的,這沒有關係。因為無論是哪一種潮流的興起或衰退,都令程式設計成為一種有著無窮吸引力的行業:它總是在快速變化,又總是有著充滿激情的爭論。這也正是程式設計世界精彩的地方。
相關文章
- 2019 年技術大趨勢預測
- 2017年酒店技術的5大趨勢
- 大資料技術趨勢大資料
- 亞馬遜技術長Werner Vogels預測2021:八大技術趨勢改變世界亞馬遜
- IEEE預測:2019年十大技術趨勢
- 大資料技術包括哪些大資料
- 大資料技術有哪些大資料
- 大資料技術特點及優勢有哪些大資料
- Pack:2017年最新技術工具以及技術趨勢調查
- 亞馬遜技術長Werner Vogels:2022年及未來五大技術趨勢預測亞馬遜
- 大資料探勘有哪些技術大資料
- 2020 有哪些不容錯過的前端技術趨勢?前端
- 阿里宣佈成立雲原生技術委員會,釋放哪些趨勢資訊?阿里
- 回顧2017系列篇(三):UX設計大會,都預示了哪些設計趨勢UX
- Java程式設計師技術培訓需要培訓哪些?Java程式設計師
- 中國程式設計師主要使用哪些技術網站程式設計師網站
- 程式設計師有哪些常用的技術網站呢?程式設計師網站
- it程式設計師常用的技術社群網站有哪些?程式設計師網站
- 2020 雲原生技術 7 大領域趨勢全預測
- Gartner:預測未來五年內十大技術發展趨勢
- 學習Python技術有哪些優勢?Python
- 盤一盤亞馬遜re:Invent爆出了哪些新的雲技術趨勢?亞馬遜
- 大資料相關技術有哪些?大資料
- 2020年Java程式設計師需要哪些技術Java程式設計師
- 採購技術的七大趨勢
- VC眼中的十大技術趨勢
- 雲端計算技術發展的六大趨勢
- Python技術發展如何?具有哪些優勢?Python
- hadoop包含哪些技術?Hadoop
- 雲端計算人才技術要求現狀:入行需要掌握哪些技術?
- 在網路通訊方面,有哪些新技術或趨勢值得關注?
- DevSecOps 技術趨勢dev
- IT應用技術趨勢展
- 大資料技術棧,主要有哪些大資料
- 大資料技術的特點有哪些大資料
- 恆訊科技技術分享:雲端計算中的核心技術有哪些?
- 幻影成像技術具備了哪些應用優勢
- Amazon CTO Werner Vogels:2024年及未來四大技術趨勢預測