1. 程式人生 > >墮落 Java vs 新貴 Python,2018 年最應該學習哪一門程式語言?

墮落 Java vs 新貴 Python,2018 年最應該學習哪一門程式語言?

點選上方“CSDN”,選擇“置頂公眾號”

關鍵時刻,第一時間送達!

2017 年,程式語言領域發生了巨大的變化,一方面,Java、Kotlin 等語言在企業和移動開發方面吸引了很多開發者的關注;另一方面,對 Web 開發至關重要的 JavaScript 生態系統也在不斷擴大;TypeScript 、C ++ 等程式語言的特性都迎來了較大的更新。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

接下來,我們就與大家共同回顧一下 2017 年程式語言所發生的大事件並剖析其未來的發展趨勢。

Java 的曲折之路

千呼萬喚始出來,在經歷了多次跳票的 JDK 9 最終於 2017 年 9 月正式釋出了,作為 Java 標準的最新實現,曾因為其模組化技術引起爭議。儘管模組化系統旨在提供可伸縮性,效能和安全性方面的優勢,但包括 Red Hat 和 IBM 在內的關鍵參與者卻不同意 Oracle 實施它。他們對應用的相容性表示擔憂,並對最初的建議投了反對票。直到最後的再次修改,才讓反對方感到滿意,通過了複審提案,為遲遲不能釋出的版本掃清了道路。

0?wx_fmt=jpeg

下一個版本 JDK 10 計劃將在 2018 年 3 月迅速推出,具有區域性變數的型別推導和垃圾收集器介面等特性。

而 Java EE ,甲骨文已將其交由 Eclipse 基金會管理。同時,Oracle 在釋出 Java 9 的同時也釋出了 Java EE 8 。 Java EE 8 包含雲、HTML5 和 HTTP / 2 等特性。

未來趨勢

過去一年中,因 Google 開始擁抱 Kotlin、Python 因人工智慧而興起,由此不少開發者開始認為 Java 霸主地位即將被取代。

相比往年的 TIOBE 排行榜來看,Java 使用率確實有所下降,但是依舊穩居首位。同時根據去年 11 月 RebelLabs 釋出的《

2017 年開發者生產力報告》分析得出,開發者主要使用的程式語言中,Java 8 高達 72%。最後綜合 StackOverFlow 調查報告、IEEE Spectrum 排行榜的資料,雖然這些榜單的評分標準和涉及人群雖然有所差異,但在任何一個榜單中, Java 都佔據程式語言前三的位置,無疑是最大的贏家。

從整體網際網路開發的大環境來看,Java 語言的應用方向主要體現在三個方面:

  • 大中型的企業應用中,如複雜的大企業的軟體系統、各種型別的網站;

  • 桌面應用,即 C/S應用,主要用來開發運行於不同的作業系統上的桌面應用程式;

  • 移動開發應用,如 Android 開發、Java 遊戲開發等。

基於以上穩定的排行榜以及數十億裝置都是 Java 開發的應用領域來看,未來一年中,不能說其他語言的興起對這個老牌語言沒有任何影響,但是想要短期之內想要撼動 Java 的位置也絕非易事。

學習資料

JavaScript 的大更新

0?wx_fmt=jpeg

在 Web 開發中,2017 年許多 JavaScript 工具迎來了大版本更新,包括:

  • 11 月的 Angular 5:包含一個構建優化器,支援漸進的網路應用程式和 Material Design 元件。

  • 9 月的 React 16 :重寫了 React 核心以提高對複雜應用程式的響應速度。

  • 3 月的 Angular 4 :專注於構建更小的應用。

同時,TypeScript 也迎來多次更新:

  • 11 月的 TypeScript 2.6 具有嚴格的模式標記和錯誤抑制註釋。

  • 8 月的 TypeScript 2.5 使得複雜的重寫變得更容易。

  • 6 月的 TypeScript 2.4 具有動態展示功能,使應用更加節省資源。

  • 4 月的 TypeScript 2.3 支援 ECMAScript 非同步生成器和迭代器。

  • 2 月的 TypeScript 2.2 強調與 React Native 框架的相容性,以更好地構建原生移動應用。

即將於 2018 年 1 月推出的 TypeScript 2.7,將改進物件字面量的型別推斷。

未來趨勢

此前 Coding Dojo(編碼道場)解析了來自 Indeed 的 25 們程式語言,得出有超過 80% 的開發者和 95% 的網站的都使用 JavaScript 來實現頁面上的動態邏輯。 且未來隨著物聯網和移動裝置越來越流行,React 和 AngularJS 等 JavaScript 前端框架具有巨大的未來潛力。

目前,據最新發布的《JavaScript 年度調查報告》來看,React 似乎會在 2018 年有更大的發展空間。

學習資料

星星之火——Kotlin

0?wx_fmt=jpeg

成為 Android 官方支援開發一級語言的 Kotlin 在 2017 年時一顆冉冉升起的新星, 2017 年推出的版本包括:

  • Kotlin 1.2 於 11 月釋出,提供在多個平臺上重複使用程式碼的實驗性功能。支援 Java 9 。

  • Kotlin 1.1 於 3 月釋出,提供了對 JavaScript 支援。

未來趨勢

距離 TIOBE 公佈年度程式語言的時間已所剩無幾。在 12 月的 TIOBE 指數中,Kotlin 和 C 語言成為年度程式語言的候選人。最終是否會花落 Kotlin,我們還需等待幾日。

不過因 Google 而火的 Kotlin,從開發者角度來看,確實讓程式碼更加簡潔,並減輕了開發人員的程式碼量,為 Android 程式設計提升了效率。但是還處於滲透 Android 開發階段的 Kotlin,只能說值得一試,具體還是需要根據專案來判斷是否適合。

學習資料

微軟釋出量子程式語言——Q#

0?wx_fmt=jpeg

繼斥巨資研製量子計算機之後,微軟於 12 月推出一門新的程式語言,名叫“Q#”(唸作Q Sharp),這是一種表達量子演算法的特定語言,它將傳統的程式設計概念如函式、變數、分支、以及語法高亮的開發環境和量子偵錯程式帶到量子計算領域。該語言與主要與 Visual Studio IDE 協同工作,並在 Quantum 開發工具包中整合推出。可以幫助程式設計人員為量子計算機編寫軟體。

未來趨勢

對於剛剛釋出的新語言,Q# 體現了微軟用語言定義行為、用語言規範框架的思維,且該語言是一個獨立的程式語言,未來前景可觀。但就目前而言,不少開發者表示量子計算機離我們還有一段距離且如今量子線路規模太小,想要落地 Q# 語言 ,在實際應用中還有一定的難度。

為程式設計提速的 C ++

0?wx_fmt=jpeg

今年等到了 C ++ 17 的釋出,旨在使 C++ 成為一個不那麼臃腫複雜的程式語言,以簡化該語言的日常使用,使開發者可以更簡單地編寫和維護程式碼。

接下來是 C ++ 20 ,預計將於 2019 年夏季完成功能並於 2020 年釋出。它計劃包含對併發性和庫特性的改進。

未來趨勢

隨著工具的不斷增加,許多開發者發現 C ++ 比 Python 或 JavaScript 等語言更復雜,學習和使用起來也更困難,因此開始逐漸棄用 C++,所以 2017 年中,C++ 的普及程度有所降低,但不容忽視的是,它仍然被運用在大型企業的許多遺留系統中,且在遊戲開發、驅動程式、客戶端伺服器中都有不可替代的地位。

人生苦短,我用 Python

0?wx_fmt=png

2017 年,可以說是 Python 的幸運之年。2 月,Python 正式遷移到 Github (https://github.com/python/cpython)上,擁抱了 Git 版本控制系統。7 月,據 IEEE Spectrum 雜誌釋出的一年一度的程式語言排行榜來看,Python 一路躍升至第一名。而在國內的程式設計環境之下,Python 淘汰了 VB, 被列入全國計算機等級考試。

未來趨勢

為什麼 Python 增長的這麼快?不難看出,如今從 Web 開發到資料科學,機器學習再到 DevOps,越來越多的應用是基於 Python 開發。其次,電子、製造業、軟體、政務,甚至如上所說的高校,也都在主推 Python 程式語言。未來,隨著這些領域對開發者需求的增長,對 Python 的需求仍將勢不可擋。

學習資料

總結

逐漸下滑的 Java、極具前景的 Javascript、新型 Q#、簡化的 C++、飛速增長的 Python......各有千秋的程式語言,2018 年,你最看好哪種?

————— 推薦閱讀 —————

0?wx_fmt=jpeg

0?wx_fmt=png

0?wx_fmt=png

640?wx_fmt=jpeg0?wx_fmt=gif