本文内容來源為 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 的搜尋字為:
- data
- Python
- Git
- test
- Java
這個學習平台的使用者非常企業導向,所以數據依然是重要的話題,Java 和 Python 也是企業後端偏好的程式語言。
Git 是開發者基本技能,測試在將來一定是基本技能。
Answers 最常問的問題:
- How do I write good unit test cases ? (如何寫出優良的測試案例?)
- 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, 可靠性工程
標題含有這些字的使用都有提升:
- observability
- container
- CI/CD
- monitoring
- testing
除了監控 (Monitoring)之外,現在還要求可觀察性 (observability),因為現在監控了很多數據, 依然不容易看出發生了什麼事。
關於部署主題:
- Git 上升 44%
- Kubertetes 上升 15%
- Docker 上升 5%
關於 Kubernetes 的證照也上升很多,該去考一張了嗎?
過去很紅的 DevOps 工具:
- Chef 下降 27%
- Puppet 下降 38%
- 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 加上元宇宙真的會出現什麼特別的事。
最後
技術的變遷真的很快,學習速度太慢會跟不上。
多一點了解技術趨勢,選擇符合自己的興趣,而且有價值的方向走,才不會這個也想要,那個也想要,到頭來什麼都沒有。
不過這是軟體開發有趣的地方,每個人都可以學習這些技術,將自己的想法實現,看著一行行的程式碼開始動起來,就是工程師的浪漫啊!