2022 技術趨勢,歐萊禮學習平台數據分析,企業導向的開發者在關注什麼?

本文内容來源為 Technology Trends for 2022

即便你不是軟體開發者,也一定都看過 OReilly 的書,也買過不少 OReilly 的書,但知道 OReilly 學習平臺的應該不多。learning.oreilly.com 是一個線上課程學習平臺,該平臺不只是單純的線上課程,裏面還有 OReilly 出版的各式技術書籍,所以也是電子書平臺,還有更多等待發掘…

這個學習平臺很新,和其他線上課程平臺不太一樣,不只是看影片學習技術,還有課程讓你直接動手做,線上研討會等等。

Technology Trends for 2022 是針對 OReilly 學習平臺的調查報告,藉由分析使用者如何與平臺互動,讓我們瞭解軟體開發的現況,窺見未來技術趨勢。

有什麽巨大變化正在塑造未來的開發架構,這份報告一直在追蹤並説明了這個轉換歷程。

這份報吿並不是問卷形式的調查,而是直接分析來自 100 多個國家使用者的資料,這份報告一樣不能代表全世界的軟體開發者,僅能統計分析使用這個平台的開發者特性。

OReilly 平台的企業軟體開發人員比例非常高,報告和其它機構有明顯不同差異。

歐萊禮解答 (OReilly Answers)

這是學習平台的最新產品,Answers 是一種智能搜尋,可以把它當作 Google 或 Stack Overflow 使用,可以依據我們提出的問題,直接把你帶到書本的某一個段落,或是某一段影片,或是某一段代碼,試試看,這個功能真的令人驚艷。

Python 和 Java 長期以來一直是這個平台排名前兩位的程式語言,今年也不例外。今年使用量略有下降,而有關 Rust 和 Go 語言的内容使用量正在迅速增長。

有關加密貨幣 (Bitcoin, Ethereum, NFT) 比 Python、Java 搜尋少一點,但還是在前 20%。

排名前 5 的搜尋字為:

  1. data
  2. Python
  3. Git
  4. test
  5. Java

這個學習平台的使用者非常企業導向,所以數據依然是重要的話題,Java 和 Python 也是企業後端偏好的程式語言。

Git 是開發者基本技能,測試在將來一定是基本技能。

Answers 最常問的問題:

  1. How do I write good unit test cases ? (如何寫出優良的測試案例?)
  2. What is dynamic programming ? (什麼是動態編程?)

增進安全性

因為勒索軟體的新聞愈來愈多,導致對於網路安全性的關注變多了。

有關安全領域特定主題的內容大幅增加。

  • 勒索軟件的內容使用量幾乎增加了兩倍(增加了 270%)
  • 關於隱私的內容增加了 90%
  • 威脅建模增加了 58%
  • 身份安全增加了 50%
  • 應用程序安全性提高 45%
  • 惡意軟件增加了 34%

標題中帶有“安全”或“網路安全”字樣的商品瀏覽量分別增加了 17% 和 24%。網路安全,也是一個普遍的話題,增長了 15%。

根據 加州大學伯克利分校信息學院的一項研究,在大多數州,網路安全的薪水略高於程序員的薪水,這表明對安全專業人員的需求有所增加。

軟體開發

軟體開發是這個平台的最大的主題,幾乎涵括了所有面向,從程式語言到雲端架構都有。

歐萊禮覺得比較不同程式語言沒什麼意義,哪個程式語言比較好,Python 是否比 Java 好用一點都不重要。

軟體架構、Kubernetes 和微服務 (Micro Service) 是 2021 使用量最多的三大主題,分別成長了 19%,15%,13%。

Serverless 下降幅度很大,Design patterns 失去焦點好幾年後,又開始得到關注。

程式語言

C++ 在過去一年顯著增長(13%),使用量大約是 C 的兩倍。

C++ 目前主宰了遊戲開發,在其它領域可能也開始超越 C 語言。

另一方面,雖然 C 一直是工具開發人員的傳統語言(所有 Unix 和 Linux 實用程序都是用 C 編寫的),但可能已經漸漸轉移到 Go 和 Rust 等更新的語言。

物件導向和函數式編程的比較,已經沒有過去那麼多,因為 Java、C# 等語言也開始內建函數式程式設計特性。

  • 物件導向下降 14%
  • 函數式編程下降 16%

Python、Java 和 JavaScript 仍舊處於領先地位,Java 上漲 4%,Python 下跌 6%,JavaScript 下跌 3%。 (“Python”和“Java”都是在 O’Reilly Answers 中使用的前五名。)

如果將 Spring 的使用添加到 Java 的使用中,Java 內容就僅略落 Python 一點點。 (Spring 是 Java 生態系統中一個龐大的、包羅萬象的框架組,但 Spring 的標題通常不會提到 Java)。

因為企業導向的關係,OReilly 平台的 JavaScript 內容使用率非常的低。

OReilly 的數據和 TIOBE的數據相似,Python 和 Java、C 是排名較前面的程式語言。

參考其它排名:

OReilly 還有另一份關於薪資的調查,如果你傾向企業或後端開發,最好要會 Java;如果你傾向前端開發,最好要學會 JavaScript,如果傾向數據處理,那最好要會 Python。

但不管你的主要程式語言是什麼,多學一個新時代程式語言像 Go 或 Rust,可以增加你的價值。

學習雲端

AWS 依然是雲端服務龍頭,但亞馬遜的競爭正在加劇。有關 Microsoft Azure 的內容使用量增長了 32%,Google Cloud 增長了 54%,而 AWS 相關內容的使用量下降了 3%。

關於混合雲和多雲的內容使用量仍然很小,但增長非常快(分別為 145% 和 240%),顯示企業正避免把雲端架構綁定在同一個服務商。

穩定的 Web

網站開發的核心相關技術一直都很穩定,學習 HTML、CSS、JavaScript 的內容沒有太大差異。
這三樣就是前端技術的基礎,如果不懂這些,表示離前端開發還很遠。

PHP 絕對不是一項新技術,但幾乎 80% 的 Web 都是 用它構建的

關於 PHP 的內容使用量增加了 6%,再度打臉 PHP 已死的說法。

關於 jQuery(另一種經常與 PHP 結合使用的舊技術)的內容使用量增加了 28%。

網頁設計這個永遠不會消失的話題的興趣增加了 23%。

Svelte 似乎正在蓬勃發展,增長 71%。

對 Vue 和 Next.js 的興趣下降了 13%。

如果這種情況持續下去,Svelte 可能會在幾年內成為最廣泛使用的前端框架。

資料、人工智慧、機器學習

標題含有 “artificial intelligence” 的內容使用率,在2021 下降了23%,標題含有 “AI” 則下降 11%。

深度學習的使用率下降了 14%,但神經網路的使用率上升了 13%,強化學習上升了 37%,對抗性網絡上升了 51%。興趣顯然已從一般主題轉向具體主題。

有趣的人工智慧寫程式:GitHub Copilot

資料庫

Oracle 處於領先地位,但增長緩慢。

MySQL 增長 22%。

關聯式資料庫一樣主宰資料庫的世界,NoSQL 並沒有辦法取代 RDBMS。

營運, DevOps, 可靠性工程

標題含有這些字的使用都有提升:

  1. observability
  2. container
  3. CI/CD
  4. monitoring
  5. testing  

除了監控 (Monitoring)之外,現在還要求可觀察性 (observability),因為現在監控了很多數據, 依然不容易看出發生了什麼事。 

關於部署主題:

  1. Git 上升 44%
  2. Kubertetes 上升 15%
  3. Docker 上升 5%

關於 Kubernetes 的證照也上升很多,該去考一張了嗎?

過去很紅的 DevOps 工具:

  1. Chef 下降 27%
  2. Puppet 下降 38%
  3. Ansible 下降 20%

哇哩學習速度太慢,還沒學會就退流行了。

Linux 是僅次於 Kubernetes 的主題,就算是微軟 Azure 雲端,也使用 Linux。

微軟開發者表示 Azure 使用 Linux Server 比 Windows Server 還多。

加密貨幣和區塊鏈

  • 加密貨幣 (cryptocurrency)上升 271%
  • 比特幣 (Bitcoin) 上升 166%
  • 以太幣 (Ethereum) 上升 185%

這個學習平台不是教你如何投資比特幣,是開發者對區塊鏈技術的興趣非常高。

關於區塊鏈的一般內容上升 78%。

Hyperledger,針對企業使用的超級錢包技術,上升 66%。

搜尋 NFT 這個字竟然上升了 4,474%。NFT 超紅,不知道會不會暴跌。

Web3 不知道會不會成功,但值得關注。

VR,AR,元宇宙

沒人想要一直帶著 3D 眼睛或頭盔,所以這個主題一直收到關注,但沒有什麼真的獲得成功。

  • Virtual Reality 上升 13%
  • VR 上升 28%
  • AR 上升 116%

搜尋 “metaverse” (元宇宙) 這個字,急遽上升 489%。

也許 NFT 加上元宇宙真的會出現什麼特別的事。

最後

技術的變遷真的很快,學習速度太慢會跟不上。

多一點了解技術趨勢,選擇符合自己的興趣,而且有價值的方向走,才不會這個也想要,那個也想要,到頭來什麼都沒有。

不過這是軟體開發有趣的地方,每個人都可以學習這些技術,將自己的想法實現,看著一行行的程式碼開始動起來,就是工程師的浪漫啊!