Md Kamaruzzaman InfoQ 1月5日
作者 | Md Kamaruzzaman
譯者 | 張健欣
策劃 | 蔡芳芳
2020 年是近代史上史無前例的一年。人類在過去一百年中都沒有經歷過像 COVID-19 這樣的全球性大流行病。它影響了我們星球上所有的國家、部門和幾乎所有的個人。
好消息是我們馬上就會擁有疫苗,終于可以滿懷樂觀和希望迎接新的 2021 年。對于軟件開發行業來說,2020 年是意義重大的一年,在許多領域都取得了重大突破。COVID-19 顯著加快了數字化轉型,而且 2021 年的數字化轉型趨勢會更明顯。
一年以前,我寫了一篇文章來預測 2020 年的軟件開發趨勢:
在軟件開發行業,一年幾乎就是一光年。我沒有更新舊帖子,而是創建了一個新的預測清單,預測 2021 年軟件開發行業的重要技術趨勢。
做預測是一項有風險的任務。但是我會使用來自認證來源的數據、圖表和事實,根據過去來預測未來。如果你想要了解軟件行業在 2021 年有哪些變化,請閱讀本文。
在 COVID-19 期間,大部分行業遭受了沉重的打擊,盡管只有少數行業。云是朝陽行業,在大流行期間,它實際上比以往任何時候都更強大。如果在云應用方面存在任何疑問和不確定性,COVID-19 已經消除了這一點。
像 Corona 這樣的全球性災難表明,我們不僅需要云升級規模,也需要降低規模,例如,當我們的服務需求顯著下降時。想想旅游和運輸行業,他們不得不維護昂貴的數據中心,盡管他們的市場下降了 90%。
Forrester 預測,全球公有云 IT 基礎設施將在 2021 年增長 35% 至 1200 億美元:
在公有云中,我們希望有一個集中的數據中心來提供數據和計算能力。但在許多場景中,我們有相反的需求,例如,數據和計算能力接近終端用戶。有些是非常低的延遲(5 到 20ms)、高帶寬、監管原因、實時用例、智能且強大的終端設備等等。
雖然邊緣計算是一個老概念,并且我們已經在內容交付網絡 (Content Delivery Network,CDN) 中使用邊緣計算,但近年來它正變得越來越流行。隨著互聯車輛(自動汽車、無人機)、在線游戲、物聯網、智能設備和邊緣 AI/ML 的興起,邊緣計算將在 2021 年及以后成為一個巨大的市場。邊緣計算將在 2021 年成為關鍵的另一個原因是 5G 移動設備的興起。
2021 年,兩個行業集團將爭奪邊緣計算的市場份額。其中一個集團是公有云提供商,例如亞馬遜、微軟、谷歌,如下所述:
在這方面,亞馬遜是 AWS Snow family、AWS IoT Greengrass 等許多服務的領導者。微軟也提供 Azure Stack Edge、Azure Edge Zone 等邊緣計算服務。谷歌也使用 Google Anthos 將它的數據中心服務轉移到終端用戶。
另一個集團是已經具備邊緣基礎設施的行業,例如電信公司、數據中心提供商、網絡提供商。如果它們能夠快速行動并利用它們的優勢(例如,現有的基礎設施),他們就有機會在這方面發揮領導作用。混合云提供商 RedHat(IBM)憑借其混合云平臺 OpenShift 和 OpenStack 的參與,將成為這里的關鍵選手。最近,三星與 IBM 合作開發邊緣計算解決方案:
State of the Edge 是為邊緣計算制定開放標準,使邊緣計算供應商中立的倡議。最近 State of the Edge 成為了 Linux 基金會的一部分。與 CNCF 一樣,在 2021 年及以后,State of the Edge 也將獲得更多高光時刻。
請為 2021 年及以后邊緣計算領域的許多創新、融合、并肩戰斗和標準化做好準備。
在公有云供應商中,誰是領導者是毫無疑問的。在 2020 年第三季度,亞馬遜以 32% 的市場份額領跑公有云市場,如下所示:
微軟在其云產品方面表現強勁,在 2020 年實現了 48% 的年度增長。在 2020 年第三季度,微軟的市場份額為 19%,而它在 2019 年第三季度的市場份額為 17%。
目前,谷歌是第三大公有云提供商,在 2020 年第三季度的市場份額為 7%。
在 2021 年,亞馬遜和微軟將分別保持第一和第二的位置。然而,阿里巴巴將在 2021 年取代谷歌,因為它在 2020 年第三季度的市場份額為 6%,僅次于谷歌。
此外,多云倡議將在 2021 年獲得更大的發展勢頭。許多公司也轉向了多云策略。中情局(CIA)最近將其云合同授予了多個云供應商而不是單個供應商:
直到現在,亞馬遜還不愿意加入多云倡議來保護它的市場份額。但正如我們 10 年前在微軟身上看到的那樣,整個行業和社區比最大的單個公司更強大。最近,亞馬遜已經悄然加入了多云倡議:
云原生計算基金會(Cloud Native Computing Foundation ,CNCF) 在多云運動中扮演著關鍵角色,可以說已經超過了 Linux 基金會。在 2021 年,我們可以看到 CNCF 有更多增長。此外,像 HashiCorp 這樣的多云服務供應商會變得更加重要。
一些突出的項目也提供了與流行的特定供應商的云服務的 API 兼容性,例如 MinIO(提供兼容 AWS S3 的對象存儲)。在 2021 年,將會有更多類似 MinIO 的倡議,這樣我們就可以輕松地切換受歡迎的供應商的服務。
這對整個行業來說是個好消息,正如我夢想的那樣,公司可以在多個云上無縫部署它們的應用程序。
容器化是云原生 IT 的核心技術,無論是公有云、私有云,甚至是邊緣計算。幾年來,Kubernetes 已經成為領先的容器編排和管理技術。就像 Linux 之前統治著數據中心一樣,Kubernetes 也統治著公有云和私有云。起初,谷歌是 Kubernetes 背后的主導力量,但是現在幾乎所有的巨頭科技公司都支持 Kubernetes。
所有主要的公有云提供商現在都提供托管的 Kubernets 服務(Amazon EKS、Azure AKS、Google 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 是容器生態系統中的巨頭,2021 年將會是 Docker 終結的開始。從好的方面看,CRI 和 OCI 在 2021 年會獲得更大的發展勢頭,尤其是基于 CRI 的容器將在 2021 年獲得巨大的爆發式增長。
量子計算是這個清單上最具革命性的技術。就像數字計算機一樣,它有潛力影響每一個領域。我已經創建了一份 2030 年代最熱技術的清單,而量子計算排名第一:
換個角度看:如果我們把當今最先進的超級計算機當作正常人類,例如,一名象棋選手或者一個 8 年級數學學生,那么量子計算就是像馬格努斯·卡爾斯(Magnus Carles)這樣的超級天才,他可以同時和 50 名普通象棋選手對弈,或者像歐拉(Euler)這樣的天才數學家。
在 2020 年,量子計算有了一些重大的突破和進步。在 2020 年 6 月,霍尼韋爾(Honeywell)聲稱其創建了最強大的量子計算機,打破了谷歌之前創造的記錄:
許多政府和科技巨頭都在探索和投資量子計算。谷歌和 IBM 是這個領域的兩個最大的選手。谷歌甚至推出了一個開源庫 TensorFlow Quantum (TFQ),用于制作量子機器學習模型的原型:
亞馬遜也通過其 Amazon Braket 云服務提供托管的量子計算服務。
考慮到其巨大的利潤和無限的可能性,2021 年計算機量子將有一些突破和驚人的發現。
如果你想要探索量子計算,那么你可以使用開源 SDK qiskit,它還提供了免費課程:
區塊鏈 (分布式賬本) 也是近年來開發的主要顛覆性技術之一。就技術而言,它有改變整個行業的潛力。雖然加密貨幣在普及這項技術方面發揮了重要作用。它在推動這項技術走向 Gartner 的炒作周期曲線(Gartner’s Hype Cycle curve)的“期望膨脹期”方面也扮演了主要角色。
許多流氓實體利用比特幣 Bitcoin 的流行,制造詐騙項目來欺騙那些想在短時間內暴富的普通人。現在,區塊鏈正經歷炒作周期曲線的“幻滅低谷”。另外,政府正在干預加密貨幣來防止詐騙。最近,中國政府查獲了一個加密貨幣詐騙“Plus Token 龐氏騙局”:
Facebook 在 2019 年發布了它的加密貨幣 Libra,但在 2020 年面臨巨大的監管壓力:
其它開源區塊鏈,如以太坊(Ethereum),正在將代碼放入區塊中,使它能夠用于智能合約,這是區塊鏈的未來。
在 2021 年,區塊鏈將更多地作為一種智能合約機制使用,有望進入“啟蒙斜坡(Slope of Englishtenment)”階段。區塊鏈將在 2021 年獲得重大爆發,中國已經將它納入其雄心勃勃的 50 萬億“新基建”計劃:
作為近來最熱門的技術之一,人工智能在 2020 年也取得了許多突破。另一個有意思的趨勢是,人工智能開始以“全民 AI(AI for all)”的口號進入所有領域。
在自然語言處理領域,GPT-3 是 2020 年 5 月取得的最大的突破。美國公司 OpenAI 創建了 GPT-3,使得使用深度學習創建類似人類的文本成為可能。僅僅過了 4 個月,當《衛報》用 GPT-3 撰寫了以下文章時,全世界都一起為之震驚:
在 2021 年,自然語言處理將取得突破性進展,人工智能將撰寫文章或編寫小型應用程序。
另一個有趣的發展是 AutoML 2.0,它支持工程自動化。在 2021 年,全周期人工智能自動化將取得重大進展,人工智能將更加平民化。
人工智能并不是沒有偏見的,有道德的人工智能正變得越來越有吸引力。人工智能領域的另一個主要趨勢是可解釋的人工智能,即人工智能為什么做出某種決定需要一個解釋。在 2021 年,隨著歐盟對解釋人工智能的決定制定法規,這些領域將取得重大進展。
人工智能在 2021 年及以后也將在航空業得到廣泛應用。就在幾天前,美國空軍用人工智能作為副駕駛來駕駛了一架飛機:
人工智能也將成為未來中國數字基礎設施的核心:
預計到 2021 年,人工智能會有許多令人振奮的創新和平民化。
谷歌和 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 是最流行的深度學習框架:
另一方面,開發人員喜歡用 PyTorch 工作,它以更好的開發人員工效學而更受開發人員的喜愛:
在 2021 年,TensorFlow 2.0 和 PyTorch 將成為企業和社區的“首選”庫。擁有 TensorFlow 代碼庫或者想要使用 Collab 筆記本的企業應該使用 TensorFlow 2.0。剛進入深度學習或者想要繼續使用 Juypter 筆記本的企業或個人應該選擇 PyTorch。
現代數據庫的前景充滿選擇和廣泛的變化。我們有經典的 SQL 數據庫,主要是四大數據庫:MySQL、 Oracle、 MS-SQL、 PostgreSQL。我們也有 NoSQL 數據庫,主要由一系列數據庫組成:文檔、鍵值對、寬列、時間序列、搜索、圖。還有許多其它類型的數據存儲。
我們最近看到了所謂的全球分布式 ACID 事務數據庫或者 NewSQL 數據庫。谷歌憑借 Google Spanner 成為這個領域的領導者,Google Spanner 是首個水平讀 / 寫可伸縮的 ACID 兼容數據庫。亞馬遜也有一個水平可擴展 ACID 兼容數據庫,Amazon Aurora,提供幾乎所有的 SQL 功能,但沒有水平寫入伸縮。除了超大規模云提供商之外,CockroachDB 也是一個非常突出的 NewSQL 或分布式 SQL 數據庫。
在 2021 年,數據存儲生態系統將保持現在的樣子,有很多選擇。沒有一種數據庫可以滿足所有的目的。在 2021 年,選擇正確的數據也將是一個非常具有挑戰性的任務,需要仔細考慮。
許多流行的數據庫已經修改了它們的許可 (MongoDB、 Cassandra、 Redis、Kafka),因為超級規模的云提供商,尤其是亞馬遜,濫用了它們的創新,賺了錢卻沒有回報。這一趨勢在 2021 年將繼續,其它初創公司或創新型公司將使用更嚴格的許可來保護他們免受云提供商的掠奪。
就在幾年前,Hadoop 還是數據密集型計算或分布式批處理任務的默認選擇。Apache Spark 目前是供應商中立的分布式批處理任務平臺的首選,在大多數情況下幾乎取代了 Hadoop。
這一趨勢將在 2021 年繼續,Spark 將被用作數據密集型計算的首選平臺。Spark 是一個基于 JVM 的系統,需要非常大的資源,你將得到一份巨大的云賬單。但不幸的是,目前還沒有一個資源節約型的框架能匹配 Spark 的能力和成熟度。
所有主流的云提供商都有它們自己的云原生解決方案來進行數據密集型計算。我的個人建議是在 2021 年使用 Spark 而不是特定的云解決方案,以避免供應商鎖定。
近年來,隨著企業拋棄傳統的 Lambda 架構,轉而使用實時流處理框架,實時流處理正變得越來越流行。
此外,這里存在兩種類型的框架。一種是以 Spark Streaming 為核心的基于微批量的平臺。另一種是以 Apache Flink 為核心的低延遲流處理平臺。
Apache Flink 在需要實時流處理(欺詐檢測、異常檢測、基于規則的警報、實時數據即時分析)的場景中超越了 Spark 流處理。
所有超大規模云提供商也提供了它們自己的解決方案。我建議在 2021 年選擇 Flink,而不是 Spark 或者專有云解決方案,因為它在實時流處理方面具有無與倫比的能力。
現代數據架構相當復雜。它包含數據源、ETL 管道、數據倉庫、數據湖、數據分析工具以及許多其它組件。下面是企業數據平臺(ABM AMRO 的數據平臺)的一個示例:
Snowflake 通過提供一個集中的數據源、單平臺,以及在它上面構建許多不同的工作負載,從而徹底改變了現代數據架構。在經典架構中,數據需要在不同的平臺上轉移,但在 Snowflake 中只有一個數據的“信源”。
這不是適用于所有情況的完美案例。但是對于大部分情況,這將普及并賦能數據平臺和數據倉庫。正如甲骨文的 CEO 拉里·埃里森(Larry Ellison)所說,它已經動搖了數據倉庫市場:
在 2021 年,我預期更多的創新將為企業案例帶來像 Snowflake 一樣的單數據平臺。這對于許多公司將是一個巨大的幫助并改變游戲規則。
快速的數字化轉型正創造巨大的軟件工程師供需缺口。盡管越來越多的新工程師加入這個行業,但仍然不夠。近年來,低代碼 / 無代碼倡議的勢頭正越來越強勁。
市場上有許多低代碼 / 無代碼平臺,主要是在 Web 開發領域,例如 Bubble。它們的成功也為 LCNC 在其它領域的開發鋪平了道路:無代碼應用程序開發、無代碼人工智能、無代碼機器學習。LCNC 工具可以通過如下所述的好主意促進業務或人員的發展:
而且,正如我去年預測的一樣,公有云提供商正提供 LCNC 服務。微軟提供 Power Apps,谷歌提供 AppSheet,AWS 提供 Honeycode 作為一個 LCNC 平臺來快速構建應用程序。
在 2021 年,LCNC 將成為激烈競爭的領域之一,有許多創新、合并和收購。如果你是一個擁有偉大想法的個人或企業,請關注 2021 年的 LCNC。
近年來,微服務架構成為大型企業應用程序開發的首選。然而,設計微服務應用程序比設計“一刀切”單體應用程序要復雜得多。微服務架構需要一組最佳實踐,正如我在下面這篇文章中所列出的:
像其它軟件架構一樣,微服務也有它擅長的用例和失敗的案例。它還需要一套設計模式,我總結如下:
最近,由于微服務架構的復雜性和在某些用例中的失敗,人們對它產生了強烈的反感。Kelsey Hightower 在下面的推特中總結了對微服務的批評:
這與我們幾年前所看的趨勢形成鮮明對比,當時單體架構受到批評并被視為過時的。實際上,單體架構也是一種很好的架構,它特別適合我在下面這篇文章中提到的用例:
另一個近年來大肆宣傳的軟件架構是無服務器架構(Serverless Architecture)。亞馬遜開創了無服務器計算的先河,推出了開創性的 AWS Lambda 服務,開發人員只編寫代碼,服務提供商托管服務器。這個架構也有人炒作,有人批評。像單體架構和微服務架構一樣,無服務器架構也不是萬能的,應該用在它適合的地方(例如,事件驅動和突發負載)。
在 2021 年,所有的軟件架構(單體架構、微服務、無服務器)都將共存,因為它們都有各自的用例和優缺點。我建議在大型企業開發中選擇微服務架構(傳統上使用 SOA),在小型開發中使用單體架構,在事件驅動和突發負載中選擇無服務器架構。
近些年,編程語言領域也經歷了重大變化。傳統的偏重的編程語言的市場份額正逐漸被更簡單且對開發人員更友好的編程語言所占據。在 2020 年 1 月,我對需求中的語言進行了廣泛的分析,將 Python 和 JavaScript 分別放在第一位和第二位:
最后,最受歡迎的編程語言排名網站 TIOBE 承認了這一變化,并將 Python 置于 Java 之上:
隨著軟件開發行業的蓬勃發展,以及大量新開發人員加入這個行業,更簡單、對開發人員更友好的編程語言將在 2021 年更受歡迎。
Python 是數據科學中排名第一的編程語言,在除了底層編程之外的幾乎所有其它領域也都是排名第二或第三的編程語言。
JavaScript 是 Web 開發領域毫無爭議的頭號語言,在其它領域(包括后端開發)中也越來越流行。它也是初學者的絕佳語言。
Java 正慢慢喪失其作為最流行的編程語言的受歡迎程度。然而,由于其傳奇般的向后兼容性和不斷更新(6 個月的發布周期,polyglot Virtual Machine GraalVM),它仍然是企業軟件開發的首選編程語言。
C++ 是另一個近年來發生了重大變化的主流編程語言。幾天前剛剛發布了 C++20,它將完全改變 C++ 截至目前的編程方式。這是近年來最具破壞性的 C++ 版本之一,將極大地影響其在 2021 年及以后的流行度。
在 2021 年,主流編程語言將保持它們的地位,盡管它們會感受到來自現代編程語言的壓力。
最近幾年,編程領域的另一個有趣的趨勢是現代編程語言的興起。比較老的語言存在過去的包袱,不能快速變遷(Java),或者通過增加越來越多的功能而變得臃腫且令人望而卻步(C++)。
現代的比較新的編程語言沒有過去的包袱,能夠滿足當今開發者的需求。它們大多非常關注開發人員的工效學,支持現代功能,例如類型推理、null 安全性、表達力強、簡潔。其中許多還被設計來利用現代硬件和現代基礎設施(云、多核、GPU、TPU)。
以 Rust、 Go、 Kotlin、 Swift、 TypeScript 為首的現代編程語言正日益流行,正如我在下面這篇帖子中預測的那樣:
這一趨勢將在 2021 年繼續,因為它們是增長最快的語言之一。
其中,隨著行業的注意,Rust 將在 2021 年取得突破。在過去 5 年中,根據 Stack Overflow 開發者調研,它是最受喜愛的編程語言:
圖片來源:Stack Overflow Developer Survey, 2020
科技巨頭終于在安全敏感的復雜項目中使用 Rust 而不是 C/C++。微軟最近聲明,他們將使用 Rust 來修復安全漏洞:
就在幾周前,亞馬遜宣布大力投入 Rust 并解釋了他們這樣做的原因:
谷歌的 Go 已經是主流且成熟的編程語言。隨著 Go 2 release 規劃的大量改進,它將在未來獲得更多人氣。
JetBrain 的 Kotlin 已經成為 JVM 生態系統中第二流行的類型化編程語言。在 Android 應用開發中,它已經超過了 Java:
微軟的 TypeScript 已經成為 JavaScript 的類型化替代品。最近,隨著許多復雜項目(例如 Deno、 Vue.js)選擇 TypeScript 而不是 JavaScript,它的流行度大幅躍升:
蘋果公司的 Swift 已經取代 Objective-C,成為 macOS 和 iOS 的首選編程語言。它在其它領域也有被采用。
在科技巨頭的支持下,預計包括 Rust 在內的現代編程語言將在 2021 年獲得更多吸引力和普及使用。
大多數面向用戶的企業應用程序是 Web 應用或移動應用。在 Web 開發中,基于 JavaScript/TypeScript 的客戶端 Web 框架已經占據主導地位很多年了。趨勢是使用 JavaScript 框架進行 UI 開發,使用服務端框架進行后端開發,其中前后端是分離的服務。
Facebook 的 React 在客戶端 Web 框架中處于領先地位。它是行業中引領潮流且應用最廣泛的框架。如果你想了解更多關于基于 JavaScript 的客戶端框架,可以閱讀我下面這篇文章:
如下圖所示,React 是目前下載量最多的客戶端 JavaScript 框架:
盡管如此,最流行的 Web 框架并不是 React,而是另一個基于 JavaScript 的 Web 框架——Vue.js:
Vue.js 在中國也是頭號框架,因為 Vue.js 的創造者(尤雨溪,Evan You)是一名華人前谷歌開發者。不幸的是,這種與中國的聯系引起了大企業的安全擔憂,Vue.js 在美國 / 歐洲的采用率比較低。
谷歌的 Angular 落后于 React 和 Vue.js,但仍然是一個穩定的框架。然而,最近最具革命性的 Web 框架是 Svelte。與其它框架不一樣,Svelte 是一個非運行時框架,專注于編譯步驟。
在 2021 年,所有主流的基于 JavaScript 的框架都將彼此學習,吸收其它框架的特性。在 2021 年,它們將更加趨同。
服務器端框架是端到端框架,提供端到端 Web 開發,包括服務端渲染的視圖層。但是正如之前所說,如今的趨勢是只在后端使用它們。
基于 JVM 的 Spring 框架在企業開發領域是排名第一的服務端框架。它還提供開發小型和大型復雜應用所需的所有必需功能:控制反轉、依賴注入、云原生開發、響應式、事件驅動應用開發、快速應用程序開發。在 2021 年,Spring 仍將保持企業的頭號后端框架。在之前的一篇文章中,我將 Spring 作為排名第一的服務端 Web 框架。
微軟的 ASP.NET Core 是另一個引人注目的 Web 框架,與流行的 JavaScript 框架(React、Vue.js、Angular)無縫協作。在 2021 年,ASP.NET Core 將成為企業服務端開發的主要選手。
許多初創公司和小型公司都希望有一個包括視圖層的端到端框架,以便快速開發應用程序。基于 Python 的 Django、 PHP Laravel 和 Ruby on Rails 在 2021 年將成為他們的絕佳選項。
智能手機現在是我們日常生活的一部分。智能手機用戶已經達到 35 億,明年將達到 38 億:
圖片來源:Statista
因此,移動應用對于終端用戶越來越重要,尤其是對于年輕一代來說。
在移動應用開發領域,有 4 個主要趨勢:原生應用開發、跨平臺應用開發、混合應用開發和基于云的應用開發。
原生應用開發提供了最高的靈活性,擁有最好的性能和用戶體驗。但由于企業需要保留兩個獨立的團隊,因此開發成本最高。
跨平臺應用開發正變得越來越流行,因為 iOS 和 Android 應用開發可以使用相同的代碼庫。盡管開發成本低,但是不夠靈活,性能也不如原生應用。
近年來,基于云的應用變得越來越流行,其數據和主要業務邏輯保存在云端。特定設備的瘦客戶端被開發來連接云端并從中獲取數據。雖然對于數據密集的應用程序是一個不錯的選擇,但對于普通應用開發來說,它還不是主流。
盡管跨平臺應用開發正迎頭趕上,原生應用開發仍然是企業普通應用開發的更好的選擇。在 2021 年,一般企業將偏愛原生應用開發,而初創企業和小公司將偏愛跨平臺應用開發。
跨平臺應用開發正變得越來越流行,因為它的開發成本比較低。市場上有許多跨平臺應用開發平臺,但 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 流行得多,如下所示:
在 2021 年,React 將主導跨平臺應用開發,因為 React 和 React Native 的性能會有一個重大更新。
谷歌的 Flutter 是一個相對比較新的框架,但近年來非常流行。它提供了一個功能強大的 UI 工具箱,用來從單一代碼庫構建漂亮的原生編譯的移動、桌面和 Web 應用程序。然而,Flutter 還不像 React 那樣是 Web 開發中的主流框架。Flutter 使用了一種現代編程語言——Dart,一種快速發展的效率非常高的編程語言。就性能而言,Flutter 比 React 有優勢。它還提供了更好的開發者工效學,而且開發人員喜歡使用 Flutter 工作:
與 Facebook 全力支持 React Native 不同,谷歌在 Web 和 App 開發方面有很多框架(例如,用于 Web 開發的 Angular),沒有把所有精力都放在 Flutter 和 Dart 上。
綜上所述,我預測 React Native 將在 2021 年繼續領先 Flutter,因為 Facebook 正計劃對 React 生態系統(React Native 的致命弱點)進行重大性能提升。
微服務架構和無服務器近些年正變得越來越流行。微服務或納米服務需要通信,通常,同步通信用得比事件驅動的異步通信多。即使傳統的單體應用是通過異步通信進行通信的。
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 年的軟件開發趨勢。
不能為空
不能為空