AI 告別炒作,Java 0 增長,2021 技術路在何方?

【CSDN 編者按】去年,CSDN 整理了O’Reilly 關於 2020 年技術趨勢的解讀,其中關於 Python、AI 和雲平臺的部分預測,在過去一年內都得到了驗證。作爲一個在線學習網站,O’Reilly 每年都會對開發者需要注意和探索的趨勢進行解析。在最新的 2021 年的技術趨勢報告中,有哪些新變化,又有哪些值得我們關注的信息,不妨通過本文來一探究竟

編譯 | 李磊  責編 | 張文

出品 | CSDN(ID:CSDNnews)

受新冠疫情影響, 2020 年在線學習的使用量處於穩定增長,很多公司關閉了辦公室,要求員工在家遠程辦公;線下教育也受到了衝擊,線上教育同比增長了 96%,圖書的使用量增加了 11%,教育視頻的使用量增加了 24%。

疫情期間,不少公司急需在線業務的支持以維持生存,包括小型餐館和農貿市場都增加了網上下單功能。在此之下,每個公司的開發部門成了一個非常重要的部門,爲其業務提供各種技術支持。具體在技術、編程語言、工具框架層面,O’Reilly 通過數據分析發現:

  • Python 使用量位列第一,並以 27% 的速度持續增長。

  • 多重編程範式、併發編程、動態類型與靜態類型的融合、低代碼甚至無代碼工具的普及將成爲未來的趨勢。

  • AI 的內容持續增長,機器學習增長了 14%,人工智能增長了 64%;數據科學增長了 16%,統計數據增長了 47%。

  • Web 開發越來越成爲程序員的專業領域,Ruby on Rails 和 Django 表現出了非常強勁的增長,有關 PHP 的內容使用量卻相對較低且在持續下降。

  • 雲相關的內容增長了 41%,微軟 Azure 的內容增長了 136%,Google Cloud 增長了 84%。許多公司已將重要的業務、關鍵軟件和數據轉移到雲上,但未來還有很長的路要走。

 

Python 位列第一,並持續增長

 

 O'Reilly 在線學習平臺上,使用量最高的幾種語言依次是 Python(上升 27%)、Java(下降 3%)、C ++(上升 10%)、C(上升 12%)和 JavaScript(上升 40%)。

圖1.各編程語言使用量與增長情況

令人驚訝的是,JavaScript 的使用量遠遠落後於 Python 和 Java,僅僅是 Python 的 20% 和 Java 的 33%。再往後看,我們發現 Go 語言和 Rust 語言也在以 16%和 94% 的速率持續增長。

Go 作爲一門併發編程語言,顯然已經確立了自己的地位。Rust 的受歡迎程度也將繼續增長,因爲其現有存量小,實現 94%的增長並不困難,下一步,Rust 可能會在“系統編程”確立自己的地位:構建新的操作系統和用於雲計算操作的工具。

因爲一些編程語言的名稱或其框架裏包含了另一個語言和工具,就像許多 Java 開發人員都使用 Spring 框架,搜索“Java”相關的關鍵詞時,往往會省略“Spring”。使用 React、Angular 和 Node.js 框架的 JavaScript 也是如此,而使用 Python 最常用的庫是 PyTorch 和 scikit-learn。所以我們將有關 Python、Java 和 JavaScript 的相關語言都添加到前者的搜索結果中。

圖2.編程語言和框架組合後的使用量情況

組合後的結果依然和前面相似,但在一些關鍵信息上有所區別。Spring 語言 7% 的增長可以中和 Java  7% 的下降,實現零增長,雖然零增長的表示並不恰當,尤其是對已經陷入困境的公司所擁有的語言來說。

如果在 JavaScript 的搜索結果中增加了最流行的框架:React、Angular和Node.js,那麼 O'Reilly 中的 JavaScript 使用量將上升到 Python 的 50%,僅略低於 Java 及其相關框架。將用戶頻繁使用的框架 PyTorch 和 scikit-learn 添加到 Python 中後,更是擴大了 Python 的領先優勢

建議

但對入門者來說,選擇一門優秀且有潛力的編程語言至關重要。初學者如果選擇了一門排名靠後的小衆的編程語言,可能會出現各種麻煩。

因此我們不提倡初學者使用 Python、Java 之外過於小衆的語言。如果你在某種語言的使用上已經很熟悉了,你可以換個新語言嚐嚐鮮,但不要把工作重心全部押在上面。

隨着潮流的變化和行業的發展,一些編程語言的使用量可能會上升或下降,但我們認爲 Python、Java 這些主流語言,在很長一段時間裏都不會過時,放心選擇吧。

 

 

影響編程語言發展的 4 個關鍵因素

 

如果說語言之間的競賽沒那麼重要,那什麼纔是影響編程語言發展的重要因素?我們總結出了這 4 點:

多重編程範式

去年以來,O'Reilly 平臺上函數式編程的使用量增加了 14%。但是,經典功能語言 Haskell 和 Erlang 卻不在其中,兩者均未顯示有開發者大量使用情況,且兩者均下降(同比下降約 20%)。面向對象編程的增長甚至超過了函數式編程,自去年以來增長了 29%。這表明真正的趨勢是,將函數特性集成到面向過程編程和麪向對象編程的語言中。

從 2008 年的 Python 3.0 開始,到 2014 年的 Java 8,編程語言持續增加了高階函數(lambda)和其他“函數”的功能,現在幾種流行的語言,包括 JavaScript 和 Go 語言從一開始就具有函數特性。這種趨勢最初於 20 年前的 C++ 的標準模板庫出現,我們希望它一直繼續下去。

併發編程

平臺數據顯示併發編程同比增長 8%,這不是一個很大的數字,但不要因爲數字小就忽略它。Java 是第一種被廣泛使用的支持併發的語言,在當時的 90 年代中期,因爲處理器內存等硬件條件限制,多線程運行在當時是一種奢侈,併發編程的條件並不充足。

得益於摩爾定律帶來的硬件發展,情況已經發生了巨大的改變,多線程運行越來越簡單,所以對併發編程的支持就像如對函數式編程的支持,已成爲板上釘釘的趨勢,Go、Rust 和大多數其他現代語言都內置了對併發的支持,而這一直是 Python 的弱點之一。

動態類型與靜態類型

相比面向過程編程和麪向對象編程之間的區別,Ruby、JavaScript 這類動態語言與 Java、Go 這類靜態語言之間的區別會更大。

曾幾何時,將靜態類型添加到動態語言的話題引起了不小的爭議,隨後,將各種類型範式進行融合也一度「甚囂塵上」。作爲動態語言之一的 Python 在 3.5 版本中添加了類型檢查功能,並且在之後的版本不斷增加靜態類型檢查的功能。TypeScript 在 JavaScript 加入靜態類型後,也實現了每年 12% 的增長。可見,動態類型和靜態類型的融合也會在未來成爲趨勢。

低代碼甚至無代碼

電子表格是低代碼計算的先驅,首款電子表格辦公軟件 VisiCalc 在 1979 年發佈,使數百萬人無需學習編程即可進行復雜計算。平民大衆化是許多技術領域的重要趨勢,編程也同樣如此,低代碼或無代碼編程將毋庸置疑地改變編程的未來。

將來,一定會有新的語言和新的工具出現,實現無代碼或低代碼的編程,它們極其簡單,可能會以任何方式出現(千萬別是 BASIC 這樣的),總會有程序員開發出這樣的編程工具。

可以預見的是,低代碼和無代碼帶來的強烈反差,會讓程序員一時難以接受,甚至視而不見。但更大衆化的低代碼,會將編程的能力交到更多人手上,這是一件好事。這種趨勢並不意味程序員會被「非程序員」淘汰,而是成爲生產力更高的羣體,成爲編寫這些低代碼工具的人。

小結

鑑於我們已經越來越接近摩爾定律的盡頭,併發對於編程的未來至關重要,我們不僅僅擁有更快的處理器,還將長期使用雲服務器、微型服務器甚至功能本身就是服務器的系統,它們天生就是併發系統。

函數式編程不能解決併發問題,但是一些確定的原則會讓我們少走彎路——每個人都喜歡一流的功能、軟件項目越來越大、系統會越來越複雜……因此對於編程語言來說,通過融合功能特性來擴展自身具有重大意義。

無論您是技術 leader 還是新手程序員,都要注意這些正在發生的趨勢,它們將長久改變我們行業的面貌。

 

 

AI、機器學習和數據科學

 

儘管 AI 和機器學習是兩個截然不同的概念,但它們經常被混淆,於是我們將機器學習定義爲「AI 的有效部分」。AI 更注重科研和前瞻性,機器學習是將 AI 從實驗室中帶出來並付諸實踐的技術。如果你理解了這個定義,那麼有關機器學習的內容佔使用量第一就很正常了:

圖3.人工智能,機器學習和數據

相比去年,機器學習增長了 14%,人工智能增長了 64%;數據科學增長了 16%,統計數據增長了47%,儘管有人說 AI 已經停滯不前,但我們在數據中並未看到這一點。

自然語言領域在去年取得了驚人的進步,增長了 21%,例如 OpenAI 的 GPT-3,引起了大家很大的關注。但類似於之前 AlphaGo 獲取圍棋勝利的新聞在減少,AI 以及機器學習、數據科學等相關領域進入了炒作的低谷,將當前的研究具體應用於商業產品上,還需要很多年的工作。

 

 

 

Web 開發

 

自 1990 年代初期 HTML 發明,第一批 Web 服務器和第一代瀏覽器誕生以來,Web 開發平臺在不斷地演變進化。這些平臺使 Web 開發變得更加靈活:可以支持各種設備,支持各種屏幕尺寸,可以在瀏覽器中運行復雜的應用程序。每到新的一年,之前的桌面應用就會看起來很過時。

那麼,Web 框架的世界在過去一年具體發生了什麼變化呢?

圖4. Web開發使用量排行

如上圖所示,React 在使用量上處於領先地位,同時呈現 34%的顯着增長。儘管有傳言稱 Angular 正在逐漸消失,但它依然是排名第二的平臺,增長了 10%。服務器端平臺 Node.js 的內容使用量僅次於 Angular,增長了 15%,這些都還比較合理。

令人驚訝的是,Ruby on Rails 因爲其穩定的性能表現,相比往年同比增長了 77%。與 Rails 同時期出現 Django 也呈現了 63%顯著增長。

這些增長是否適用於所有舊平臺?並沒有。儘管幾乎 80%的網站仍在使用 PHP,但有關 PHP 的內容使用量卻相對較低,且下降了 8%,期待看到 PHP 8 如何改變這一局面。

萬維網的最初願景是爲每個人賦能,讓技術和信息普及,大衆無需成爲技術極客,不需要學會編程,在瀏覽器中查看源代碼,只要在感興趣的地方點擊一下即可。

25 年後,情況依然沒有改變,你仍然需要查看源代碼,依然會看到各種難以理解的 JavaScript,Web 開發越來越成爲程序員的專業領域,其它語言也是如此,這真的很諷刺。新一代平臺或網絡結構的出現是否會逆轉這種趨勢?我們拭目以待。

 

 

雲服務

 

雲服務在迅速增長已經不是什麼新鮮事了。自去年以來,雲的關鍵詞使用量增長了 41%,這還不包含特定供應商例如 Amazon Web Services、Microsoft Azure 或 Google Cloud,如果加上這些,增長率高達 46%。

圖7.雲

領先的雲供應商 AWS、Azure 和 Google Cloud 之間的競爭愈演愈烈,AWS 保持領先,甚至超過了「Cloud」這個詞,微軟和谷歌正在努力追趕,有關 Azure 的內容顯示 136%的增長,比任何其他競爭對手都快。Google Cloud 84% 的增長也很不錯。隨着 Azure 和 Google Cloud 的快速增長,亞馬遜的主導地位可能即將不保。

微軟 Azure 強勢增長的背後,顯示着它在將自己改造成雲計算公司方面做得非常出色。在過去的十年,微軟重新梳理了各條業務線的方方面面,並轉型成爲了開源領域的領導者,同時擁有了 GitHub 和 LinkedIn。沒有如此堅定而激進的轉型動作,微軟永遠不可能獲得 Azure 這樣的成功。

儘管大多數公司都在以各種方式使用雲服務,並且許多公司已經將重要的業務、關鍵軟件和數據轉移到雲上,但未來還有很長的路要走。

 

 

寫在最後

 

所謂趨勢不只是最新的流行動向,也是一個漫長的過程:容器化最早可以追溯到 1979 年的 Unix 7,而 Sun  Microsystems 早在 1990 年代就通過其工作站發明了雲。

我們總是喜歡談論“互聯網時代”,認爲技術的發展日新月異,但是最重要的技術趨勢並不是幾個月或幾年就能形成的,而是橫跨了幾十年的時間,來到我們面前,甚至是在發明後不久就被大家遺忘,在漫長的歲月後被重新發掘,浮出水面,引領潮流。

帶着這個思考,讓我們往後退一步,重新觀察一下棋面:我們要如何利用 AI 所賦予的強大能力?併發對處理海量運算很重要,然後呢?摩爾定律即將走到盡頭,下一個突破點在哪裏?開發者對計算機的操作從多對一變成了一對數千,自動化是否從一種選擇變成了一種必要?

毋庸置疑,人人都應該學會編程,但這並不意味着每個人都要成爲專業的程序員,而是每個人都可以有效地使用計算機,這一定要通過編程來實現嗎?要知道,無代碼和低代碼的編程工具已經開始進入市場,使得用戶可以獨自構建從業務——應用——AI 原型的所有內容,這個趨勢甚至可以追溯到 1950 年代後期。

最後,還有一種可能就是,最重要的趨勢根本不存在於我們的數據和工具之中。現有的法律對技術還沒有進行監管和規範,使得工具和數據很大程度上都是免費的,在未來幾年,法律法規將對技術起到重要作用,對隱私等問題會越來越重視,這也許是影響下一個趨勢的關鍵因素。

二十年前,我們建造了一個並不是真正想要的未來,今後我們面臨的問題也很簡單:我們想要建立什麼樣的未來?

原文鏈接:

https://www.oreilly.com/radar/where-programming-ops-ai-and-the-cloud-are-headed-in-2021/

程序員如何避免陷入“內卷”、選擇什麼技術最有前景,中國開發者現狀與技術趨勢究竟是什麼樣?快來參與「2020 中國開發者大調查」,更有豐富獎品送不停!



☞支付寶 “集五福”今日開啓;小米起訴美國國防部;Chrome 再次屏蔽七個端口 | 極客頭條☞因爲在企業軟件中採用了React,我差點被公司開除☞和 Apple “較上勁”了?Google 解決 Cookie 隱私問題上拒絕“一刀切”
☞Windows 比 Linux 好?我有 13 個反對理由


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章