【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 個反對理由
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/256321.html
標籤:AI
上一篇:[數學建模]差值演算法及代碼
