2021年軟件開發趨勢預測

2020 年是近代史上史無前例的一年。人類在過去一百年中都沒有經歷過像 COVID-19 這樣的全球性大流行病。它影響了我們星球上所有的國家、部門和幾乎所有的個人。

一年以前,我寫了一篇文章來預測 2020 年的軟件開發趨勢:

《20個2020年軟件開發趨勢預測》

在軟件開發行業,一年幾乎就是一光年。我沒有更新舊帖子,而是創建了一個新的預測清單,預測 2021 年軟件開發行業的重要技術趨勢。

做預測是一項有風險的任務。但是我會使用來自認證來源的數據、圖表和事實,根據過去來預測未來。如果你想要了解軟件行業在 2021 年有哪些變化,請閱讀本文。

1. 集中式基礎設施:雲,無處不在的雲

在 COVID-19 期間,大部分行業遭受了沉重的打擊,儘管只有少數行業。雲是朝陽行業,在大流行期間,它實際上比以往任何時候都更強大。如果在雲應用方面存在任何疑問和不確定性,COVID-19 已經消除了這一點。

像 Corona 這樣的全球性災難表明,我們不僅需要雲升級規模,也需要降低規模,例如,當我們的服務需求顯著下降時。想想旅遊和運輸行業,他們不得不維護昂貴的數據中心,儘管他們的市場下降了 90%。

Forrester 預測,全球公有云 IT 基礎設施將在 2021 年增長 35%至 1200 億美元:

Amazon to help 29 million people grow their tech skills with free cloud computing skills training

2. 分散式基礎設施:邊緣計算將出現指數級增長

在公有云中,我們希望有一個集中的數據中心來提供數據和計算能力。但在許多場景中,我們有相反的需求,例如,數據和計算能力接近終端用戶。有些是非常低的延遲(5 到 20ms)、高帶寬、監管原因、實時用例、智能且強大的終端設備等等。

雖然邊緣計算是一個老概念,並且我們已經在內容交付網絡 (Content Delivery Network,CDN)中使用邊緣計算,但近年來它正變得越來越流行。隨着互聯車輛(自動汽車、無人機)、在線遊戲、物聯網、智能設備和邊緣 AI/ML 的興起,邊緣計算將在 2021 年及以後成爲一個巨大的市場。邊緣計算將在 2021 年成爲關鍵的另一個原因是 5G 移動設備的興起。

2021 年,兩個行業集團將爭奪邊緣計算的市場份額。其中一個集團是公有云提供商,例如亞馬遜、微軟、谷歌,如下所述:

Out on edge: The new cloud battleground isn't in the cloud at all - SiliconANGLE

在這方面,亞馬遜AWS Snow familyAWS IoT Greengrass等許多服務的領導者。微軟也提供Azure Stack EdgeAzure Edge Zone等邊緣計算服務。谷歌也使用Google Anthos將它的數據中心服務轉移到終端用戶。

另一個集團是已經具備邊緣基礎設施的行業,例如電信公司、數據中心提供商、網絡提供商。如果它們能夠快速行動並利用它們的優勢(例如,現有的基礎設施),他們就有機會在這方面發揮領導作用。混合雲提供商 RedHat(IBM)憑藉其混合雲平臺OpenShiftOpenStack的參與,將成爲這裏的關鍵選手。最近,三星與 IBM 合作開發邊緣計算解決方案:

Samsung, IBM to Develop Edge Computing, 5G and Hybrid Cloud Solutions for Industry 4.0

State of the Edge是爲邊緣計算制定開放標準,使邊緣計算供應商中立的倡議。最近 State of the Edge 成爲了 Linux 基金會的一部分。與 CNCF 一樣,在 2021 年及以後,State of the Edge 也將獲得更多高光時刻。

請爲 2021 年及以後邊緣計算領域的許多創新、融合、並肩戰鬥和標準化做好準備。

3. 雲:AWS 領先,但多雲會是未來

在公有云供應商中,誰是領導者是毫無疑問的。在 2020 年第三季度,亞馬遜以 32%的市場份額領跑公有云市場,如下所示:

Global cloud infrastructure market Q3 2020

微軟在其雲產品方面表現強勁,在 2020 年實現了 48%的年度增長。在 2020 年第三季度,微軟的市場份額爲 19%,而它在 2019 年第三季度的市場份額爲 17%。

目前,谷歌是第三大公有云提供商,在 2020 年第三季度的市場份額爲 7%。

在 2021 年,亞馬遜和微軟將分別保持第一和第二的位置。然而,阿里巴巴將在 2021 年取代谷歌,因爲它在 2020 年第三季度的市場份額爲 6%,僅次於谷歌。

此外,多雲倡議將在 2021 年獲得更大的發展勢頭。許多公司也轉向了多雲策略。中情局(CIA)最近將其雲合同授予了多個雲供應商而不是單個供應商:

Microsoft, AWS among C2E cloud provider contract awardees - Washington Business Journal

直到現在,亞馬遜還不願意加入多雲倡議來保護它的市場份額。但正如我們 10 年前在微軟身上看到的那樣,整個行業和社區比最大的單個公司更強大。最近,亞馬遜已經悄然加入了多雲倡議:

AWS quietly enters the multi-cloud era

雲原生計算基金會(Cloud Native Computing Foundation ,CNCF) 在多雲運動中扮演着關鍵角色,可以說已經超過了 Linux 基金會。在 2021 年,我們可以看到 CNCF 有更多增長。此外,像HashiCorp這樣的多雲服務供應商會變得更加重要。

一些突出的項目也提供了與流行的特定供應商的雲服務的 API 兼容性,例如 MinIO(提供兼容 AWS S3 的對象存儲)。在 2021 年,將會有更多類似 MinIO 的倡議,這樣我們就可以輕鬆地切換受歡迎的供應商的服務。

這對整個行業來說是個好消息,正如我夢想的那樣,公司可以在多個雲上無縫部署它們的應用程序。

4. 容器化:Kubernets 稱王,Docker 將退場

容器化是雲原生 IT 的核心技術,無論是公有云、私有云,甚至是邊緣計算。幾年來,Kubernetes已經成爲領先的容器編排和管理技術。就像 Linux 之前統治着數據中心一樣,Kubernetes 也統治着公有云和私有云。起初,谷歌是 Kubernetes 背後的主導力量,但是現在幾乎所有的巨頭科技公司都支持 Kubernetes。

所有主要的公有云提供商現在都提供託管的 Kubernets 服務(Amazon EKSAzure AKSGoogle GKE)以及它們的託管容器化服務。另一方面,RedHat 正在使用OpenShift在私有云中提供託管的 Kubernetes 服務。

在 2021 年,我們將看到更多對 Kubernetes 的採用,因爲它是混合雲或多雲戰略的核心組件。非傳統企業應用程序,如 AI/ML、數據庫、數據平臺、無服務器和邊緣計算應用程序也將轉移到 Kubernetes。

另一方面,Docker正在慢慢失去它作爲一種現代化技術的魅力。已經有一些倡議來標準化容器格式和運行時,其中兩個在最近幾年得到了巨大的推動。一方面是 Kubernetes 引領的容器運行時接口(Container Runtime Interface,CRI)。另一方面是 Linux 基金會引領的開放容器倡議(Open Container Initiative,OCI)。

最近,Kubernetes 棄用 Docker 而支持 CRI,並計劃在 2021 年的後續 Kubernetes 版本(1.22)中完全移除 Docker:

Kubernetes to deprecate Docker container runtime in v1.22 - SD Times

由於 Kubernetes 是容器生態系統中的巨頭,2021 年將會是 Docker 終結的開始。從好的方面看,CRI 和 OCI 在 2021 年會獲得更大的發展勢頭,尤其是基於 CRI 的容器將在 2021 年獲得巨大的爆發式增長。

5. 計算:量子計算將得到推動

量子計算是這個清單上最具革命性的技術。就像數字計算機一樣,它有潛力影響每一個領域。我已經創建了一份 2030 年代最熱技術的清單,而量子計算排名第一:

10 Predictions about the Software Development trends in the 2030s

換個角度看:如果我們把當今最先進的超級計算機當作正常人類,例如,一名象棋選手或者一個 8 年級數學學生,那麼量子計算就是像馬格努斯·卡爾斯(Magnus Carles)這樣的超級天才,他可以同時和 50 名普通象棋選手對弈,或者像歐拉(Euler)這樣的天才數學家。

在 2020 年,量子計算有了一些重大的突破和進步。在 2020 年 6 月,霍尼韋爾(Honeywell)聲稱其創建了最強大的量子計算機,打破了谷歌之前創造的記錄:

Honeywell Says It Has Built The World's Most Powerful Quantum Computer

許多政府和科技巨頭都在探索和投資量子計算。谷歌和 IBM 是這個領域的兩個最大的選手。谷歌甚至推出了一個開源庫TensorFlow Quantum (TFQ),用於製作量子機器學習模型的原型:

Google launches TensorFlow for quantum computers

亞馬遜也通過其Amazon Braket雲服務提供託管的量子計算服務。

考慮到其巨大的利潤和無限的可能性,2021 年計算機量子將有一些突破和驚人的發現。

如果你想要探索量子計算,那麼你可以使用開源 SDK qiskit,它還提供了免費課程:

Qiskit Learn

6. 區塊鏈:過山車仍將繼續

區塊鏈** (分佈式賬本)**也是近年來開發的主要顛覆性技術之一。就技術而言,它有改變整個行業的潛力。雖然加密貨幣在普及這項技術方面發揮了重要作用。它在推動這項技術走向 Gartner 的炒作週期曲線(Gartner’s Hype Cycle curve)的“期望膨脹期”方面也扮演了主要角色。

許多流氓實體利用比特幣Bitcoin的流行,製造詐騙項目來欺騙那些想在短時間內暴富的普通人。現在,區塊鏈正經歷炒作週期曲線的“幻滅低谷”。另外,政府正在干預加密貨幣來防止詐騙。最近,中國政府查獲了一個加密貨幣詐騙“Plus Token 龐氏騙局”:

Chinese Authorities Have Seized a Massive $4B in Crypto From PlusToken Scam - CoinDesk

Facebook 在 2019 年發佈了它的加密貨幣 Libra,但在 2020 年面臨巨大的監管壓力:

Facebook is shifting its Libra cryptocurrency plans after intense regulatory pressure

其它開源區塊鏈,如以太坊(Ethereum),正在將代碼放入區塊中,使它能夠用於智能合約,這是區塊鏈的未來。

在 2021 年,區塊鏈將更多地作爲一種智能合約機制使用,有望進入“啓蒙斜坡(Slope of Englishtenment)”階段。區塊鏈將在 2021 年獲得重大爆發,中國已經將它納入其雄心勃勃的 50 萬億“新基建”計劃:

Blockchain Officially Included in China's 50 Trillion "New Infrastructure" Plan | NEWS.8BTC.COM

7. 人工智能:AI 將惠及所有人

作爲近來最熱門的技術之一,人工智能在 2020 年也取得了許多突破。另一個有意思的趨勢是,人工智能開始以“全民 AI(AI for all)”的口號進入所有領域。

在自然語言處理領域,GPT-3 是 2020 年 5 月取得的最大的突破。美國公司OpenAI創建了GPT-3,使得使用深度學習創建類似人類的文本成爲可能。僅僅過了 4 個月,當《衛報》用 GPT-3 撰寫了以下文章時,全世界都一起爲之震驚:

A robot wrote this entire article. Are you scared yet, human? | GPT-3

在 2021 年,自然語言處理將取得突破性進展,人工智能將撰寫文章或編寫小型應用程序。

另一個有趣的發展是AutoML 2.0,它支持工程自動化。在 2021 年,全週期人工智能自動化將取得重大進展,人工智能將更加平民化。

人工智能並不是沒有偏見的,有道德的人工智能正變得越來越有吸引力。人工智能領域的另一個主要趨勢是可解釋的人工智能,即人工智能爲什麼做出某種決定需要一個解釋。在 2021 年,隨着歐盟對解釋人工智能的決定製定法規,這些領域將取得重大進展。

人工智能在 2021 年及以後也將在航空業得到廣泛應用。就在幾天前,美國空軍用人工智能作爲副駕駛來駕駛了一架飛機:

U-2 Flies with Artificial Intelligence as Its Co-Pilot - Air Force Magazine

人工智能也將成爲未來中國數字基礎設施的核心:

AI is Key to China Infrastructure Plan, as is AI Talent

預計到 2021 年,人工智能會有許多令人振奮的創新和平民化。

8. 深度學習庫:TensorFlow 2.0 和 PyTorch

谷歌Facebook 是深度學習和神經網絡領域的兩大主導者。谷歌的主要業務是搜索能力,它是自然語言處理領域的領先創新者。Facebook 的主要業務是社交網絡,它必須處理圖像、視頻和文本。在圖像處理領域,Facebook 是技術領導者,有許多創新。

出自谷歌的TensorFlow是深度學習領域的領先的庫,但是 2016 年 Facebook 發佈了 PyTorch 後一切都發生了變化。PyTorch使用動態圖而不是(TensorFlow 使用的)靜態圖,並且對 Python 更加友好。作爲迴應,谷歌在 2019 年創建了 TensorFlow 2.0,複製了 PyTorch 的很多功能(動態圖、對 Python 友好)。它還與谷歌的Collab完美結合(Collab 是一款非常現代且功能強大的筆記本)。從那時起,谷歌的 TensorFlow 2.0 就越來越受歡迎。目前,根據 Stack Overflow 開發者調研 2020,TensorFlow 是最流行的深度學習框架:

圖片來源:Stack Overflow Developer Survey, 2020

另一方面,開發人員喜歡用 PyTorch 工作,它以更好的開發人員工效學而更受開發人員的喜愛:

圖片來源:Stack Overflow Developer Survey, 2020

在 2021 年,TensorFlow 2.0 和 PyTorch 將成爲企業和社區的“首選”庫。擁有 TensorFlow 代碼庫或者想要使用 Collab 筆記本的企業應該使用 TensorFlow 2.0。剛進入深度學習或者想要繼續使用 Juypter 筆記本的企業或個人應該選擇 PyTorch。

9. 數據存儲:一個尺寸不能填滿所有

現代數據庫的前景充滿選擇和廣泛的變化。我們有經典的 SQL 數據庫,主要是四大數據庫:MySQLOracleMS-SQLPostgreSQL。我們也有 NoSQL 數據庫,主要由一系列數據庫組成:文檔、鍵值對、寬列、時間序列、搜索、圖。還有許多其它類型的數據存儲。

我們最近看到了所謂的全球分佈式 ACID 事務數據庫或者NewSQL數據庫。谷歌憑藉Google Spanner成爲這個領域的領導者,Google Spanner 是首個水平讀/寫可伸縮的 ACID 兼容數據庫。亞馬遜也有一個水平可擴展 ACID 兼容數據庫,Amazon Aurora,提供幾乎所有的 SQL 功能,但沒有水平寫入伸縮。除了超大規模雲提供商之外,CockroachDB也是一個非常突出的 NewSQL 或分佈式 SQL 數據庫。

在 2021 年,數據存儲生態系統將保持現在的樣子,有很多選擇。沒有一種數據庫可以滿足所有的目的。在 2021 年,選擇正確的數據也將是一個非常具有挑戰性的任務,需要仔細考慮。

許多流行的數據庫已經修改了它們的許可 (MongoDB、 Cassandra、 Redis、Kafka),因爲超級規模的雲提供商,尤其是亞馬遜,濫用了它們的創新,賺了錢卻沒有回報。這一趨勢在 2021 年將繼續,其它初創公司或創新型公司將使用更嚴格的許可來保護他們免受雲提供商的掠奪。

10. 數據密集型計算:Spark 將繼續領先

就在幾年前,Hadoop還是數據密集型計算分佈式批處理任務的默認選擇。Apache Spark 目前是供應商中立的分佈式批處理任務平臺的首選,在大多數情況下幾乎取代了 Hadoop。

這一趨勢將在 2021 年繼續,Spark 將被用作數據密集型計算的首選平臺。Spark 是一個基於 JVM 的系統,需要非常大的資源,你將得到一份巨大的雲賬單。但不幸的是,目前還沒有一個資源節約型的框架能匹配 Spark 的能力和成熟度。

所有主流的雲提供商都有它們自己的雲原生解決方案來進行數據密集型計算。我的個人建議是在 2021 年使用 Spark 而不是特定的雲解決方案,以避免供應商鎖定。

11. 實時流處理:Flink 將是明顯的選擇

近年來,隨着企業拋棄傳統的Lambda架構,轉而使用實時流處理框架,實時流處理正變得越來越流行。

此外,這裏存在兩種類型的框架。一種是以Spark Streaming爲核心的基於微批量的平臺。另一種是以Apache Flink爲核心的低延遲流處理平臺。

Apache Flink 在需要實時流處理(欺詐檢測、異常檢測、基於規則的警報、實時數據即時分析)的場景中超越了 Spark 流處理。

所有超大規模雲提供商也提供了它們自己的解決方案。我建議在 2021 年選擇 Flink,而不是 Spark 或者專有云解決方案,因爲它在實時流處理方面具有無與倫比的能力。

12. 數據平臺:其他人將追隨 Snowflake

現代數據架構相當複雜。它包含數據源、ETL 管道、數據倉庫、數據湖、數據分析工具以及許多其它組件。下面是企業數據平臺(ABM AMRO 的數據平臺)的一個示例:

https://medium.com/abn-amro-developer/abn-amros-data-integration-architecture-f33506a211c3

Snowflake通過提供一個集中的數據源、單平臺,以及在它上面構建許多不同的工作負載,從而徹底改變了現代數據架構。在經典架構中,數據需要在不同的平臺上轉移,但在 Snowflake 中只有一個數據的“信源”。

這不是適用於所有情況的完美案例。但是對於大部分情況,這將普及並賦能數據平臺和數據倉庫。正如甲骨文的 CEO 拉里·埃裏森(Larry Ellison)所說,它已經動搖了數據倉庫市場:

Oracle's Larry Ellison Admits Snowflake Is a Killer: 'It's Killing Amazon Redshift'

在 2021 年,我預期更多的創新將爲企業案例帶來像 Snowflake 一樣的單數據平臺。這對於許多公司將是一個巨大的幫助並改變遊戲規則。

13. 快速應用開發:低代碼/無代碼將擴展

快速的數字化轉型正創造巨大的軟件工程師供需缺口。儘管越來越多的新工程師加入這個行業,但仍然不夠。近年來,低代碼/無代碼倡議的勢頭正越來越強勁。

市場上有許多低代碼/無代碼平臺,主要是在 Web 開發領域,例如Bubble。它們的成功也爲 LCNC 在其它領域的開發鋪平了道路:無代碼應用程序開發、無代碼人工智能、無代碼機器學習。LCNC 工具可以通過如下所述的好主意促進業務或人員的發展:

Low-code platforms will save your business. Here's how.

而且,正如我去年預測的一樣,公有云提供商正提供 LCNC 服務。微軟提供Power Apps,谷歌提供AppSheet,AWS 提供Honeycode作爲一個 LCNC 平臺來快速構建應用程序。

在 2021 年,LCNC 將成爲激烈競爭的領域之一,有許多創新、合併和收購。如果你是一個擁有偉大想法的個人或企業,請關注 2021 年的 LCNC。

14. 軟件架構:微服務、單體式、無服務器將共存

近年來,微服務架構成爲大型企業應用程序開發的首選。然而,設計微服務應用程序比設計“一刀切”單體應用程序要複雜得多。微服務架構需要一組最佳實踐,正如我在下面這篇文章中所列出的:

Effective Microservices: 10 Best Practices

像其它軟件架構一樣,微服務也有它擅長的用例和失敗的案例。它還需要一套設計模式,我總結如下:

Microservice Architecture and its 10 Most Important Design Patterns

最近,由於微服務架構的複雜性和在某些用例中的失敗,人們對它產生了強烈的反感。Kelsey Hightower在下面的推特中總結了對微服務的批評:

這與我們幾年前所看的趨勢形成鮮明對比,當時單體架構受到批評並被視爲過時的。實際上,單體架構也是一種很好的架構,它特別適合我在下面這篇文章中提到的用例:

Looking Beyond the Hype: Is Modular Monolithic Software Architecture Really Dead?

另一個近年來大肆宣傳的軟件架構是無服務器架構(Serverless Architecture)。亞馬遜開創了無服務器計算的先河,推出了開創性的AWS Lambda服務,開發人員只編寫代碼,服務提供商託管服務器。這個架構也有人炒作,有人批評。像單體架構和微服務架構一樣,無服務器架構也不是萬能的,應該用在它適合的地方(例如,事件驅動和突發負載)。

在 2021 年,所有的軟件架構(單體架構、微服務、無服務器)都將共存,因爲它們都有各自的用例和優缺點。我建議在大型企業開發中選擇微服務架構(傳統上使用 SOA),在小型開發中使用單體架構,在事件驅動和突發負載中選擇無服務器架構。

15. 編程(主流):Python 和 JavaScript 將引領潮流

近些年,編程語言領域也經歷了重大變化。傳統的偏重的編程語言的市場份額正逐漸被更簡單且對開發人員更友好的編程語言所佔據。在 2020 年 1 月,我對需求中的語言進行了廣泛的分析,將PythonJavaScript分別放在第一位和第二位:

Top 10 In-Demand programming languages to learn in 2020

最後,最受歡迎的編程語言排名網站TIOBE承認了這一變化,並將 Python 置於 Java 之上:

TIOBE Index: Python slithers ahead of Java for the first time

隨着軟件開發行業的蓬勃發展,以及大量新開發人員加入這個行業,更簡單、對開發人員更友好的編程語言將在 2021 年更受歡迎。

Python是數據科學中排名第一的編程語言,在除了底層編程之外的幾乎所有其它領域也都是排名第二或第三的編程語言。

JavaScript是 Web 開發領域毫無爭議的頭號語言,在其它領域(包括後端開發)中也越來越流行。它也是初學者的絕佳語言。

Java正慢慢喪失其作爲最流行的編程語言的受歡迎程度。然而,由於其傳奇般的向後兼容性和不斷更新(6 個月的發佈週期,polyglot Virtual Machine GraalVM),它仍然是企業軟件開發的首選編程語言。

C++是另一個近年來發生了重大變化的主流編程語言。幾天前剛剛發佈了C++20,它將完全改變 C++截至目前的編程方式。這是近年來最具破壞性的 C++版本之一,將極大地影響其在 2021 年及以後的流行度。

在 2021 年,主流編程語言將保持它們的地位,儘管它們會感受到來自現代編程語言的壓力。

16. 編程(現代):Rust 終將到來

最近幾年,編程領域的另一個有趣的趨勢是現代編程語言的興起。比較老的語言存在過去的包袱,不能快速變遷(Java),或者通過增加越來越多的功能而變得臃腫且令人望而卻步(C++)。

現代的比較新的編程語言沒有過去的包袱,能夠滿足當今開發者的需求。它們大多非常關注開發人員的工效學,支持現代功能,例如類型推理、null 安全性、表達力強、簡潔。其中許多還被設計來利用現代硬件和現代基礎設施(雲、多核、GPU、TPU)。

Rust、 Go、 Kotlin、 Swift、 TypeScript 爲首的現代編程語言正日益流行,正如我在下面這篇帖子中預測的那樣:

Top 7 Modern programming languages to learn now

這一趨勢將在 2021 年繼續,因爲它們是增長最快的語言之一。

其中,隨着行業的注意,Rust 將在 2021 年取得突破。在過去 5 年中,根據 Stack Overflow 開發者調研,它是最受喜愛的編程語言:

圖片來源:Stack Overflow Developer Survey, 2020

科技巨頭終於在安全敏感的複雜項目中使用 Rust 而不是 C/C++。微軟最近聲明,他們將使用 Rust 來修復安全漏洞:

Microsoft: Here's why we love programming language Rust and kicked off Project Verona | ZDNet

就在幾周前,亞馬遜宣佈大力投入 Rust 並解釋了他們這樣做的原因:

Amazon AWS Invests In Rust

谷歌的Go已經是主流且成熟的編程語言。隨着Go 2 release規劃的大量改進,它將在未來獲得更多人氣。

JetBrain 的Kotlin已經成爲 JVM 生態系統中第二流行的類型化編程語言。在 Android 應用開發中,它已經超過了 Java:

Android's commitment to Kotlin

微軟的TypeScript已經成爲 JavaScript 的類型化替代品。最近,隨着許多複雜項目(例如DenoVue.js)選擇 TypeScript 而不是 JavaScript,它的流行度大幅躍升:

TypeScript Surges in GitHub Octoverse 2020 Report -- Visual Studio Magazine

蘋果公司的Swift已經取代 Objective-C,成爲macOSiOS的首選編程語言。它在其它領域也有被採用。

在科技巨頭的支持下,預計包括 Rust 在內的現代編程語言將在 2021 年獲得更多吸引力和普及使用。

17. 客戶端 Web 框架:React 將繼續統治

大多數面向用戶的企業應用程序是 Web 應用或移動應用。在 Web 開發中,基於 JavaScript/TypeScript 的客戶端 Web 框架已經佔據主導地位很多年了。趨勢是使用 JavaScript 框架進行 UI 開發,使用服務端框架進行後端開發,其中前後端是分離的服務。

FacebookReact在客戶端 Web 框架中處於領先地位。它是行業中引領潮流且應用最廣泛的框架。如果你想了解更多關於基於 JavaScript 的客戶端框架,可以閱讀我下面這篇文章:

Top 5 In-Demand JavaScript Frameworks for Front-End Development in 2020

如下圖所示,React 是目前下載量最多的客戶端 JavaScript 框架:

圖片來源:NPM trends

儘管如此,最流行的 Web 框架並不是 React,而是另一個基於 JavaScript 的 Web 框架——Vue.js

圖片來源:作者

Vue.js 在中國也是頭號框架,因爲 Vue.js 的創造者(尤雨溪,Evan You)是一名華人前谷歌開發者。不幸的是,這種與中國的聯繫引起了大企業的安全擔憂,Vue.js 在美國/歐洲的採用率比較低。

谷歌的Angular落後於 React 和 Vue.js,但仍然是一個穩定的框架。然而,最近最具革命性的 Web 框架是Svelte。與其它框架不一樣,Svelte 是一個非運行時框架,專注於編譯步驟。

在 2021 年,所有主流的基於 JavaScript 的框架都將彼此學習,吸收其它框架的特性。在 2021 年,它們將更加趨同。

18. 服務端 Web 框架:面向企業的 Spring 和 ASP.NET

服務器端框架是端到端框架,提供端到端 Web 開發,包括服務端渲染的視圖層。但是正如之前所說,如今的趨勢是隻在後端使用它們。

基於JVMSpring框架在企業開發領域是排名第一的服務端框架。它還提供開發小型和大型複雜應用所需的所有必需功能:控制反轉、依賴注入、雲原生開發、響應式、事件驅動應用開發、快速應用程序開發。在 2021 年,Spring 仍將保持企業的頭號後端框架。在之前的一篇文章中,我將 Spring 作爲排名第一的服務端 Web 框架。

Top 10 In-Demand Web Development Frameworks in 2021

微軟的ASP.NET Core是另一個引人注目的 Web 框架,與流行的 JavaScript 框架(React、Vue.js、Angular)無縫協作。在 2021 年,ASP.NET Core 將成爲企業服務端開發的主要選手。

許多初創公司和小型公司都希望有一個包括視圖層的端到端框架,以便快速開發應用程序。基於 Python 的DjangoPHP LaravelRuby on Rails在 2021 年將成爲他們的絕佳選項。

19. App 開發:原生 App 將繼續佔據主導地位

智能手機現在是我們日常生活的一部分。智能手機用戶已經達到 35 億,明年將達到 38 億:

圖片來源:Statista

因此,移動應用對於終端用戶越來越重要,尤其是對於年輕一代來說。

在移動應用開發領域,有 4 個主要趨勢:原生應用開發、跨平臺應用開發、混合應用開發和基於雲的應用開發。

原生應用開發提供了最高的靈活性,擁有最好的性能和用戶體驗。但由於企業需要保留兩個獨立的團隊,因此開發成本最高。

跨平臺應用開發正變得越來越流行,因爲 iOS 和 Android 應用開發可以使用相同的代碼庫。儘管開發成本低,但是不夠靈活,性能也不如原生應用。

近年來,基於雲的應用變得越來越流行,其數據和主要業務邏輯保存在雲端。特定設備的瘦客戶端被開發來連接雲端並從中獲取數據。雖然對於數據密集的應用程序是一個不錯的選擇,但對於普通應用開發來說,它還不是主流。

儘管跨平臺應用開發正迎頭趕上,原生應用開發仍然是企業普通應用開發的更好的選擇。在 2021 年,一般企業將偏愛原生應用開發,而初創企業和小公司將偏愛跨平臺應用開發。

20. 跨平臺應用開發:React Native 將佔據主導地位,但 Flutter 將迎頭趕上

跨平臺應用開發正變得越來越流行,因爲它的開發成本比較低。市場上有許多跨平臺應用開發平臺,但 Flutter 和 React Native 是其中的領導者。

Facebook 的React Native是基於最流行的基於 JavaScript 的 Web 開發框架——React。它的口號是“一次學習,隨處編寫。”Facebook 正積極開發 React Native,用 27 億 Facebook 用戶測試其功能。如果一家企業已經用了 React 來進行 Web 開發和 React Native 來進行 App 開發,它們可以在 Web 和移動開發中共享組件和代碼庫。另外,React Native 是基於 JavaScript 的,而 JavaScript 是最流行的編程語言之一。目前,React Native 比 Flutter 流行得多,如下所示:

圖片來源:Stack Overflow Developer Survey, 2020

在 2021 年,React 將主導跨平臺應用開發,因爲 React 和 React Native 的性能會有一個重大更新。

谷歌的Flutter是一個相對比較新的框架,但近年來非常流行。它提供了一個功能強大的 UI 工具箱,用來從單一代碼庫構建漂亮的原生編譯的移動、桌面和 Web 應用程序。然而,Flutter 還不像 React 那樣是 Web 開發中的主流框架。Flutter 使用了一種現代編程語言——Dart,一種快速發展的效率非常高的編程語言。就性能而言,Flutter 比 React 有優勢。它還提供了更好的開發者工效學,而且開發人員喜歡使用 Flutter 工作:

圖片來源:Stack Overflow Developer Survey, 2020

與 Facebook 全力支持 React Native 不同,谷歌在 Web 和 App 開發方面有很多框架(例如,用於 Web 開發的 Angular),沒有把所有精力都放在 Flutter 和 Dart 上。

綜上所述,我預測 React Native 將在 2021 年繼續領先 Flutter,因爲 Facebook 正計劃對 React 生態系統(React Native 的致命弱點)進行重大性能提升。

21. API: REST 面向業務應用

微服務架構和無服務器近些年正變得越來越流行。微服務或納米服務需要通信,通常,同步通信用得比事件驅動的異步通信多。即使傳統的單體應用是通過異步通信進行通信的。

REST是 2020 年最主要的 API 技術。REST 是一種基於 Web 技術的通信標準。它在行業中已經有相當一段時間了(20 年)。REST 和 SOAP 幾乎同時出現,但當 SOAP 幾乎被認爲是遺留技術時,REST 將繼續統治。無論是大型企業還是小型初創公司,都在使用 REST。在 2021 年,REST 仍將佔據主導地位。

在 API 開發領域,也有一些優秀的候選者。最突出的是谷歌的gRPC。與 REST 不同,gRPC 是一個類似 SOAP 的RPC協議。谷歌吸取了舊 RPC 協議的教訓,創建了適合現代軟件開發需求的 gRPC。gRPC 使用高性能的消息格式Protocol Buffers(也是由谷歌開發),而不是 JSON。因此,與 REST 相比,gRPC 性能更高、可讀性更差。在機器對機器的通信中,這是比較好的選擇。

另一種越來越流行的 API 技術,尤其是對於 UI 開發者,是 Facebook 的 GraphQL。通常,UI 需要對後端進行大量 API 調用來獲取所有它所需的數據。GraphQL 允許聚合 API 來減少 UI 和後端之間的通信。GraphQL 的一個主要缺點是,它不適合高安全性要求的開發。

這三者實際上都有各自的用例,可以相互補充,這種趨勢將在 2021 年繼續。

結論

這裏,我使用了當前的趨勢、數據和事實對 2021 年最重要的軟件開發趨勢進行了 21 個預測。整個軟件開發行業要大得多,我無法涵蓋所有重要的領域。

另外,我還簡要地討論了一些話題,例如數據存儲,它需要一篇單獨的文章。另一方面,我詳細寫了一些話題。另一個有趣的事實是,科技四巨頭:谷歌、Facebook、亞馬遜和微軟,是如何主導幾乎所有的軟件開發領域的。我希望這篇文章能讓你 360 度地瞭解 2021 年的軟件開發趨勢。

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