首頁>技術>

雲,邊緣,容器,量子,區塊鏈,人工智慧,深度學習,批處理,流,資料庫,程式設計,軟體體系結構,Web,應用程式,低程式碼,無程式碼

> Image by Javier Rodriguez from Pixabay

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

好訊息是,我們已經準備好疫苗,終於可以充滿樂觀和希望,迎接新的一年2021年。

2020年對於軟體開發行業來說是重要的一年,在許多領域都取得了明顯的突破。COVID-19大大加快了數字化轉型,到2021年這種趨勢將更加明顯。

在軟體開發行業,一年幾乎就像光明的一年。我沒有更新舊帖子,而是建立了一份新的預測列表,以預測我對2021年軟體開發行業的期望。

1.集中式基礎架構:雲,無處不在的雲

在COVID-19期間,儘管有少數行業,但大多數行業遭受了重創。雲計算是先驅行業,在大流行期間,它實際上比以往任何時候都更加強大。如果在雲採用方面存在任何疑問和不確定性,COVID-19消除了這一點。

像新冠病毒這樣的全球性災難表明,我們不僅需要Cloud進行高階升級,還需要Cloud進行縮減規模,即當我們的服務需求大幅下降時。考慮一下儘管其市場下降了90%,但必須維護昂貴的資料中心的旅遊業和運輸業。

Forrester預測,全球公共雲IT基礎設施市場將增長到2021年的3,5%,達到1200億美元。

無論您身處哪個行業(政府,新興企業,農業,醫療保健,銀行),都應計劃雲遷移,因為整個世界早日遷移到雲。2021年及以後,對雲原生工程師的需求將大大短缺。

如果您是IT工程師,請跳至任何MOOC(大規模線上公開課程)以獲取您的雲證書。好訊息是,其中許多公司在新冠期間提供免費的幾個月服務。此外,主要的公共雲提供商都提供免費課程。最近最大的公共雲提供商亞馬遜宣佈,他們將在2021年至2025年之間為2900萬人提供免費的雲計算培訓。

2.去中心化基礎架構:邊緣計算將呈指數增長

與我們希望擁有一個集中式的資料和計算能力資料中心的公共雲相反,在許多情況下,我們想要相反的情況,即終端使用者附近的資料和計算能力。其中一些是非常低的延遲(5到20毫秒),高頻寬,監管原因,實時用例,智慧而強大的終端使用者裝置等。

儘管邊緣計算是一個古老的概念,並且我們在內容交付網路(CDN)中使用邊緣計算,但近年來它越來越流行。隨著互聯汽車(無人駕駛汽車,無人機),線上遊戲,物聯網,智慧裝置和邊緣AI / ML的興起,邊緣計算將在2021年及以後成為一個巨大的市場。邊緣計算將在2021年成為關鍵技術的另一個關鍵原因是5G移動裝置的興起。

在2021年,兩組行業將爭奪Edge計算的市場份額。一組將是公共雲提供商,例如Amazon,Microsoft,Google。

再次重申,亞馬遜是提供許多服務(例如AWS Snow系列,AWS IoT Greengrass)的領導者。Microsoft還透過Azure Stack Edge,Azure Edge Zone提供邊緣服務。Google還透過Google Anthos將其資料中心服務移交給了終端使用者。

另一類是已經具有邊緣基礎架構的行業,例如電信公司,資料中心提供商,網路提供商。如果他們能夠快速行動並利用自己的優勢(即現有的基礎架構),那麼他們將有機會在這裡發揮領導作用。混合雲提供商RedHat(IBM)將憑藉其混合雲平臺OpenShift和參與OpenStack成為主要參與者。最近,三星與IBM合作開發邊緣計算解決方案。

邊緣狀態是主動制定邊緣計算開放標準,以使邊緣計算供應商中立。最近,《邊緣狀態》成為Linux基金會的一部分。與CNCF一樣,《邊緣狀態》也將在2021年及以後獲得更多發展。

為2021年及以後的邊緣計算中的許多創新,合併,並駕齊驅和標準化做準備。

3.雲:AWS處於領先地位,但多雲將是未來

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

微軟憑藉其雲產品又迎來了強勁的一年,並在2020年實現了48%的年增長率.2020年第三季度,微軟的市場份額為19%,而2019年第三季度的市場份額為17%。

截至目前,谷歌是第三大公共雲提供商,其在2020年第三季度的市場份額為7%。

在2021年,亞馬遜和微軟將分別保持第一和第二的位置。但是,阿里巴巴將在2021年超過第三名,因為它在2020年第三季度的市場份額中僅次於Google,僅次於Google。

此外,多雲計劃將在2021年獲得更大的發展勢頭。許多公司也開始採用多雲戰略。CIA最近將其雲合同授予了多個供應商,而不是單個供應商。

到目前為止,亞馬遜還不願意加入多雲計劃以保護其市場份額。但是,正如我們十年前在Microsoft上所看到的那樣,整個行業和社群都比最大的單個公司還大。最近,亞馬遜默默地加入了多雲計劃。

雲原生計算基金會(CNCF)在多雲運動中起著關鍵作用,可以說已經超越了Linux基金會。在2021年,我們可以看到CNCF的增長更多。此外,像HashiCorp這樣的多雲服務提供商將在2021年變得更加重要。

一些出色的專案還提供與流行的特定於供應商的特定Cloud Services的API相容性,例如MinIO(提供與AWS S3相容的Object Storage)。在2021年,將會有諸如MinIO之類的更多舉措,使我們能夠輕鬆提升和轉移流行的供應商鎖服務。

對於整個行業來說,這是個好訊息,因為我夢想著一個公司可以無縫地將應用程式部署在多雲中的世界。

4.容器化:Kubernetes為王,而Docker將淡出

容器化是雲本機IT的核心技術,無論是公有云,私有云,還是邊緣計算。幾年來,Kubernetes已經確立了自己作為領先的容器編排和管理技術的地位。就像Linux以前統治資料中心一樣,Kubernetes統治著公共雲和私有云領域。最初,谷歌是領導Kubernetes的領導力量,但是現在幾乎所有的Giant Tech公司都將其力量放在Kubernetes後面。

所有主要的公共雲提供商現在都在提供託管的Kubernetes服務(Amazon EKS,Azure AKS,Google GKE)以及託管的容器化服務。另一方面,RedHat透過OpenShift在私有云中提供託管Kubernetes服務。

在2021年,我們將看到更多采用Kubernetes的方法,因為它是混合雲或多雲策略的核心元件。AI / ML,資料庫,資料平臺,無伺服器和邊緣計算等非傳統企業應用程式也將遷移到Kubernetes。

另一方面,Docker逐漸失去了其作為Conternization Technology的魅力。已經有一些標準化容器格式和執行時的計劃,其中有兩個在最近幾年受到了極大的關注。一種是Kubernetes領導的容器執行時介面(CRI)。另一個是Linux基金會牽頭的開放容器倡議(OCI)。

由於Kubernetes是容器化生態系統中重達800磅的大猩猩,因此2021年將是Docker終結的起點。從好的方面來看,CRI和OCI將在2021年獲得更大的發展動力,尤其是基於CRI的集裝箱將在2021年獲得巨大的推動力。

5.計算:量子計算將獲得發展動力

量子計算是此列表中最具革命性的技術。像數字計算機一樣,它具有影響每個部門的潛力。我建立了2030年代最熱門的技術列表,而Quantum Computing排名第一。

透視一下:如果我們將當今最先進的超級計算機視為普通人,例如國際象棋玩家或8年級數學學生,那麼量子計算就是像Magnus Carles這樣的Supergenius,他可以玩50副平均國際象棋。一次或天才的數學家像尤拉這樣的球員。

2020年,量子計算領域取得了一些重大突破和進步。霍尼韋爾在2020年6月宣稱自己創造了功能最強大的量子計算機,超越了谷歌之前的記錄。

僅幾天前,來自中國科學技術大學(USTC)的一組科學家表明,量子計算機可以在特定任務(高斯玻色子取樣)上輕鬆擊敗最先進的經典超級計算機。

許多政府和技術巨頭都在探索和投資量子計算。Google和IBM是該領域中最大的兩家。Google甚至啟動了一個開源庫TensorFlow Quantum(TFQ),用於對Quantum Machine學習模型進行原型設計。

亞馬遜還透過其Amazon Braket Cloud Service提供託管量子計算服務。

考慮到巨大的興趣及其無限的可能性,2021年的《計算機量子》將有一些突破和令人jaw目結舌的發現。

如果您想探索量子計算,那麼可以使用開源SDK qiskit,它也提供免費課程。

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

區塊鏈(分散式賬本)也是最近開發的主要破壞性技術之一。從技術角度來看,它具有改變整個行業的潛力。儘管加密貨幣在普及該技術方面發揮了主要作用。在Gartner的"炒作週期"曲線的"通脹預期峰值"中,該技術也發揮了重要作用。

許多流氓實體利用比特幣的流行性,並建立了騙局專案,以欺騙想要在短時間內致富的普通百姓。現在,區塊鏈正在經歷炒作週期曲線的"幻滅低谷"。此外,政府正在干預加密貨幣以防止欺詐。最近,中國政府沒收了一個加密貨幣騙局" Plus Token Ponzi"。

Facebook在2019年釋出了Cryptocurrency Libra,但在2020年受到了巨大的監管壓力。

以太坊等其他開源區塊鏈正在將程式碼放入區塊中,從而有可能將其用作智慧合約,這是區塊鏈的未來。

到2021年,區塊鏈將更多地用作智慧合約機制,並有望進入"啟蒙運動"階段。隨著中國將其雄心勃勃的500萬億"新基礎設施"計劃納入其中,區塊鏈將在2021年獲得重大推動。

7.人工智慧:人工智慧將為所有人服務

作為近來最熱門的技術之一,人工智慧在2020年也取得了許多突破。另一個有趣的趨勢是,人工智慧以"人人享有AI"的口號開始慢慢進入所有領域。

在自然語言處理領域,GPT-3是2020年5月最大的突破。美國公司OpenAI建立了GPT-3,這使得使用深度學習建立類似於人的文字成為可能。僅四個月後,使用GPT-3撰寫了以下《衛報》文章,整個世界同時感到驚訝和震驚。

2021年,自然語言處理將取得突破,人工智慧將在其中編寫文章或編寫小型軟體程式。

另一個有趣的開發是AutoML 2.0,它支援自動化功能工程。到2021年,全週期AI自動化將取得重大進步,人工智慧將進一步民主化。

人工智慧並非一帆風順,道德的人工智慧正變得越來越受關注。AI的另一個主要趨勢是可解釋的AI,這將需要解釋為什麼AI做出了某個決定。到2021年,隨著歐盟制定法規解釋AI的決定,這些領域將取得重大進展。

人工智慧還將在2021年及以後的航空業中得到廣泛採用。就在幾天前,美國空軍使用AI作為副駕駛員駕駛飛機。

未來,人工智慧還將成為中國基於數字基礎設施的核心。

預計2021年人工智慧將有許多令人振奮的創新和民主化。

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

Google和Facebook是深度學習和神經網路領域的兩個主要參與者。Google的主要業務是搜尋功能,並且是自然語言處理領域的領先創新者。Facebook的主要業務是社交網路,它必須處理影象,影片和文字。在影象處理方面,Facebook是眾多創新技術的領導者。

谷歌的TensorFlow是深度學習領域的領先圖書館,但2016年Facebook釋出PyTorch時一切都發生了變化。PyTorch使用動態圖代替靜態圖(由TensorFlow使用),並且對Python更友好。谷歌對此做出了迴應,在2019年建立了TensorFlow 2.0,該版本複製了許多PyTorch功能(動態圖,Python友好性)。它還可以與Google的Collab(一款非常強大的現代膝上型電腦)完美配合。從那時起,Google享受了TensorFlow 2.0受歡迎程度的回升。根據2020年Stack Overflow開發者調查,TensorFlow目前是最受歡迎的深度學習框架:

> Source: Stack Overflow Developer Survey, 2020

另一方面,開發人員喜歡與PyTorch合作,以獲取更好的開發人員人體工程學設計,因為它更受開發人員的喜愛:

> Source: Stack Overflow Developer Survey, 2020

同樣在2021年,TensorFlow 2.0和PyTorch將成為企業和社群的"首選"庫。擁有現有TensorFlow程式碼庫或想要使用Collab Notebook的公司應使用TensorFlow 2.0。深度學習新手或想要繼續使用Juypter Notebook的公司或個人應選擇PyTorch。

9.資料儲存:一種尺寸不會填充全部

現代資料庫環境充滿了選擇和廣泛的變化。我們有經典的SQL資料庫,主要是四大資料庫:MySQL,Oracle,MS-SQL,PostgreSQL。我們還有NoSQL資料庫,它主要包括資料庫系列:文件資料庫,鍵值資料庫,寬列資料庫,時間序列資料庫,搜尋資料庫,圖形資料庫。還有許多其他型別的資料儲存。

最近,我們看到了所謂的全球分散式ACID事務資料庫或NewSQL資料庫的熱潮。Google憑藉其Google Spanner(首個水平可讀寫ACID相容水平資料庫)在這裡處於領先地位。亞馬遜還具有可水平擴充套件且符合ACID要求的資料庫Amazon Aurora,該資料庫提供幾乎所有SQL功能,但不提供水平寫入擴充套件。在超大規模雲提供商之外,CockroachDB還是一個非常傑出的NewSQL或分散式SQL資料庫。

到2021年,資料儲存生態系統將保持不變,並具有許多選擇。不會有可以滿足所有目的的Master資料庫。同樣在2021年,經過仔細考慮,選擇正確的資料庫將是一項非常具有挑戰性的任務。

許多流行的資料庫已更改其許可證(MongoDB,Cassandra,Redis,Kafka),因為超大規模雲提供商(尤其是亞馬遜)濫用了其創新技術並賺了錢而沒有償還。這一趨勢將在2021年持續下去,其他初創公司或創新型公司將使用限制性更強的許可證來保護自己免受惡意雲提供商的侵害。

10.資料密集型計算:Spark將繼續保持領先地位

僅在幾年前,Hadoop是資料密集型計算或分散式批處理作業的預設選擇。Apache Spark當前是首選的供應商中性分散式批處理作業平臺,在大多數情況下幾乎替代了Hadoop。

這一趨勢將在2021年持續下去,Spark將被用作資料密集型計算的首選平臺。Spark是一個基於JVM的系統,佔用大量資源,您將獲得鉅額的Cloud費用。但不幸的是,目前還沒有資源節約型的Spark強大和成熟的框架。

所有主要的雲提供商都擁有自己的Cloud Native解決方案,以進行資料密集型計算。我的兩分錢建議是在2021年使用Spark over Cloud特定解決方案,以避免供應商鎖定。

11.實時流:Flink將是顯而易見的選擇

近年來,隨著企業拋棄傳統的Lambda體系結構,轉而支援實時流處理框架,實時流變得越來越流行。

另外,這裡存在兩種型別的框架。一個是由Spark Streaming領導的基於Micro-Batch的平臺。另一個是由Apache Flink領導的低延遲流處理平臺。

對於需要實時流傳輸的場景(欺詐檢測,異常檢測,基於規則的警報,實時資料的臨時分析),Apache Flink排除了Spark Streaming。

所有Hyperscale雲提供商都提供自己的解決方案。我建議您在2021年選擇基於Spark的Flink或專有的雲解決方案,因為它在實時流處理方面具有無與倫比的功能。

12.資料平臺:其他玩家將跟隨Snowflake

現代資料架構非常複雜。它包含資料來源,ETL管道,資料倉庫,資料湖,資料分析工具以及許多其他元件。這是企業資料平臺(ABM AMRO的資料平臺)的示例使用案例:

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

對於所有人來說,這都不是完美的用例。但是,對於許多人來說,它將使資料平臺和資料倉庫民主化並增強其功能。甲骨文執行長拉里·埃裡森(Larry Ellison)分享了它已經動搖了資料倉庫市場。

我希望在2021年能有更多的創新,使Snowflake像一個單一的企業級資料平臺一樣。對於許多公司來說,這將是一個巨大的幫助和改變遊戲規則。

13.快速的應用開發:低程式碼/無程式碼將擴充套件

快速的數字化轉型在軟體工程師的供需方面造成了巨大的差距。儘管越來越多的新開發人員加入該行業,但這還遠遠不夠。近年來,"低程式碼/無程式碼"計劃正在獲得發展。

市場上有許多低程式碼/無程式碼平臺,主要是在Web開發中,如Bubble。他們的成功也為其他領域的LCNC開發鋪平了道路:無程式碼應用程式開發,無程式碼AI,無程式碼機器學習。LCNC工具可以促進業務或具有出色創意的人。

而且,正如我去年所預測的,公共雲提供商正在提供LCNC服務。微軟提供Power Apps,谷歌提供AppSheet,AWS提供Honeycode作為LCNC平臺,以快速構建應用。

在2021年,LCNC將成為眾多創新,合併和收購的熱門領域之一。如果您是個有創意的個人或企業,請注意2021年的LCNC。

14.軟體架構:微服務,巨石架構,無伺服器將共存

近年來,微服務架構已成為大規模企業應用程式開發中的首選。但是,設計微服務應用程式比"一種尺寸適合所有人"的整體應用程式要複雜得多。正如我在以下文章中列出的那樣,微服務架構需要一套最佳實踐。

像任何其他軟體體系結構一樣,微服務也有其出色的用例和失敗的極端案例。正如我在這裡總結的,它還需要一組設計模式。

近年來,由於微服務架構的複雜性和在某些用例中的失敗,人們對此表示強烈反對。偉大的Kelsey Hightower在以下Tweet中總結了對微服務的批評:

它與我們幾年前看到的整體建築受到批評並被認為是過時的趨勢形成鮮明對比。實際上,Monolithic Architecture也是一種很棒的體系結構,正如我在以下文章中所述,它最適合其中。

近年來,另一種備受關注的軟體架構是無伺服器架構。亞馬遜透過其突破性的AWS Lambda服務開創了無伺服器計算服務的先河,該服務由開發人員僅編寫程式碼,而服務提供商則管理伺服器。它也是一種被某些人大肆宣傳而又被其他人批評的架構。像Monoliths和Microservices一樣,Serverless也不是Silver Bullet,應該在適合的地方使用(例如,事件驅動和突發負載)。

在2021年,所有軟體體系結構(Monolith,微服務,無伺服器)將共存,因為它們都有自己的用例,優點和缺點。我建議選擇微服務來進行大規模企業開發(傳統上使用SOA),使用Monoliths進行小規模開發,選擇無伺服器來進行事件驅動和突發負載。

15.程式設計(主流):Python和JavaScript將引領潮流

近年來,程式語言格局也正在發生重大變化。傳統的重量級程式語言正在將市場份額轉移到更簡單且對開發人員友好的程式語言上。2020年1月,我對需求型語言進行了廣泛的分析,並將Python和JavaScript分別放在第一和第二位。

隨著軟體開發行業的蓬勃發展以及大量新開發人員的加入,更簡單,對開發人員友好的程式語言將在2021年變得更加流行。

Python是資料科學中排名第一的程式語言,幾乎是除底層程式設計之外的所有其他領域中的排名第二或第三的語言。

JavaScript是Web開發中無可爭議的第一語言,並且在包括後端開發在內的其他領域也越來越流行。對於初學者來說,這也是一種完美的語言。

Java正在逐漸失去其作為最流行的程式語言的流行性。但是,憑藉其傳奇性的向後相容性和可喜的變化(6個月的釋出週期,polyglot虛擬機器GraalVM),它將繼續成為企業軟體開發中的第一選擇。

C ++是另一種主流程式語言,近年來正在發生重大變化。C ++ 20僅在幾天前釋出,它將徹底改變C ++的程式設計方式。它是近年來最具破壞性的C ++發行版之一,並可能在2021年及以後對它的普及產生巨大影響。

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

16.程式設計(現代):Rust終於到來

過去幾年中,程式語言領域的另一個有趣趨勢是現代程式語言的興起。較舊的語言已經不堪重負,無法透過新增越來越多的功能(C ++)來快速移動(Java)或變得更加臃腫和令人生畏。

現代和較新的語言不再需要繁重的工作,可以滿足當今開發人員的需求。他們中的大多數人專注於開發人員的人機工程學,並支援現代功能,例如型別推斷,無效安全性,表達性和簡潔性。他們中的許多人還旨在利用現代硬體和現代基礎架構(雲,多核,GPU,TPU)。

正如我在以下文章中所預測的那樣,由Rust,Go,Kotlin,Swift,TypeScript領導的現代程式語言日漸流行。

由於它們是增長最快的語言之一,這種趨勢也將在2021年繼續。

> Source: Stack Overflow Developer Survey, 2020

對於安全性敏感和複雜的專案,Tech Giants最終使用Rust而不是C / C ++。微軟最近宣佈,他們將使用Rust修復安全錯誤。

就在幾周前,亞馬遜宣佈對Rust進行大量投資,並在此說明了理由。

Google的Go語言已經成為主流和公認的程式語言。Go 2版本計劃進行許多改進,將來它將變得更加流行。

JetBrain的Kotlin已經將自己確立為JVM生態系統中第二流行的型別化程式語言。在Android App開發中,它已經超越了Java。

蘋果公司的Swift已經取代了Objective-C,成為macOS和iOS中的首選語言。它還看到其他領域的採用。

在科技巨頭的支援下,預計包括Rust在內的現代程式語言將在2021年獲得更多的關注,普及和使用。

17.客戶端Web框架:React將繼續領跑

大多數面向使用者的企業應用程式是Web或移動應用程式。在Web開發中,基於JavaScript / TypeScript的客戶端Web框架已經佔據了主導地位。趨勢是將JavaScript框架用於UI開發,將伺服器端框架用於後端開發,其中前端和後端是獨立的服務。

Facebook的React是客戶端網路框架中的領導者。它是行業中引領潮流和使用最廣泛的框架。如果您想進一步瞭解基於JavaScript的客戶端框架,則可以閱讀以下文章。

到目前為止,React是下載次數最多的客戶端JavaScript框架,如下所示:

> Source: NPM trends

> Source by Author

它也是中國排名第一的框架,因為Vue.js(Evan You)的建立者是中國前Google開發人員。不幸的是,Vue.js在美國/歐洲的採用率相對較低。

Google的Angular落後於React和Vue.js,但仍然是一個可靠的框架。但是,最近最革命的Web框架是Svelte。與其他框架不同,Svelte是一個非執行時框架,專注於編譯步驟。

在2021年,所有主要的基於JavaScript的框架都將相互學習,並從其他框架中適應功能。他們將在2021年進一步融合。

18.伺服器端Web框架:適用於企業的Spring和ASP.NET Core

伺服器端框架是提供端到端Web開發的端到端框架,包括透過伺服器端渲染的檢視層。但是,正如已經提到的,現代的趨勢是僅將它們用於後端。

基於JVM的Spring框架是企業開發中排名第一的伺服器端框架。它還提供了開發大型和複雜應用程式的所有必要功能:控制反轉,依賴注入,雲原生開發,響應式和事件驅動的應用程式開發,快速應用程式開發。同樣在2021年,Spring將仍然是企業的第一後端框架。在上一篇文章中,我將Spring作為伺服器端Web框架的第一名。

微軟的ASP.NET Core是另一個引人注目的多語言Web框架,可與流行的JavaScript框架(React,Vue.js和Angular)無縫協作。在2021年,ASP.NET Core將成為企業伺服器端開發的主要參與者。

許多初創公司和小型公司希望擁有一個包括View層在內的端到端框架,以進行快速的應用程式開發。基於Python的Django,PHP Laravel和Ruby on Rails在2021年將是它們的絕佳選擇。

19.應用程式開發:本機應用程式將繼續占主導地位

智慧手機現已成為我們日常生活的一部分。智慧手機使用者數量已經是35億,明年將達到38億:

> Source: Statista

因此,移動應用程式對於終端使用者,特別是對年輕一代而言,變得越來越重要。

在移動應用程式開發中,有四個主要趨勢:本機應用程式開發,跨平臺應用程式開發,混合應用程式開發和基於雲的應用程式開發。

本機應用程式開發可提供最高的靈活性,並具有最佳的效能和使用者體驗。但是開發成本最高,因為企業需要保留兩個獨立的團隊。

跨平臺App開發正變得越來越流行,因為幾乎相同的程式碼庫可用於iOS和Android App開發。儘管開發成本很低,但它的靈活性較差,效能不如Native應用程式。

近年來,基於雲的應用程式變得越來越流行,其中資料和主要業務邏輯仍保留在雲中。開發了特定於裝置的瘦客戶端,該客戶端連線並從雲中獲取資料。雖然對於精通資料的應用程式來說是更好的選擇,但對於常規App開發而言,它並不是主流。

儘管跨平臺應用程式開發正在趕上,但本機應用程式開發仍然是企業進行常規應用程式開發的更好選擇。在2021年,企業將更喜歡本機應用程式開發,而初創公司和小型公司將更喜歡跨平臺應用程式開發。

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

跨平臺應用程式開發由於價格便宜而變得越來越流行。市場上有許多跨平臺應用程式開發平臺,但Flutter和React Native是領導者:

Facebook的React Native基於最流行的基於JavaScript的Web開發框架React。它的口號是"學習一次,隨處寫"。Facebook正在積極開發React Native,他們正在與27億Facebook使用者一起測試其功能。如果公司已經具有用於Web開發的React和用於應用程式開發的React Native,則他們可以在Web和移動開發之間共享元件和程式碼庫。另外,React Native基於JavaScript,JavaScript是最流行的程式語言之一。當前,React Native比Flutter更為流行,如下所示:

> Source: Stack Overflow Developer Survey, 2020

在2021年,React將主導跨平臺應用程式開發,因為React和React Native效能將有重大更新。

Google的Flutter是一個相對較新的框架,但近年來變得非常流行。它提供了功能強大的UI工具包,可透過一個程式碼庫構建漂亮的,本機編譯的移動,桌面和Web應用程式。但是,Flutter還不是像React這樣的Web開發中的主要框架。Flutter使用了現代的程式語言Dart,它是增長最快且生產力最高的程式語言之一。在效能方面,Flutter優於React Native。它還提供了更好的開發人員人體工程學,並且開發人員喜歡使用Flutter:

> Source: Stack Overflow Developer Survey, 2020

與Facebook相比,Google將所有精力都放在React Native上,而Google在Web和App開發中擁有許多框架(例如Angular for Web),而不是將所有精力都放在Flutter和Dart上。

綜合考慮所有因素,我預測React Native將在2021年超越Flutter,因為Facebook計劃在React生態系統(Achille's Hill for React Native)中進行重大效能改進。

21. API:用於業務應用程式的REST

近年來,微服務架構和無伺服器變得越來越流行。微服務或奈米服務需要進行通訊,通常,在事件驅動的非同步通訊上使用同步通訊。甚至傳統的Monoliths也透過同步通訊進行通訊。

REST是2020年最主要的API技術。REST是基於Web技術的通訊標準。現在已經有相當一段時間了(20年)。REST和SOAP幾乎同時出現,但是在SOAP被視為傳統技術的情況下,REST仍然佔統治地位。無論是大型企業還是小型初創企業,REST無處不在。同樣在2021年,REST將繼續佔據主導地位。

API領域也有一些優秀的候選人。最突出的是Google的gRPC。與REST不同,gRPC是RPC協議,例如SOAP。Google從較早的RPC協議中吸取了教訓,並建立了適合現代軟體開發需求的gRPC。gRPC代替JSON,使用高效能的訊息傳遞格式協議緩衝區(也由Google開發)。結果,與REST相比,gRPC的效能更高,可讀性更差。在機器對機器通訊中,這是顯而易見的選擇。

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

結論

在這裡,我使用當前的趨勢,資料和事實對2021年最重要的軟體開發趨勢進行了21個預測。整個軟體開發行業規模更大,而且我無法涵蓋許多重要領域。

22
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Java 函數語言程式設計和 lambda 表示式詳解