2020年是最近歷史上前所未有的一年。在過去的一百年中,人類沒有經(jīng)歷過像COVID-19這樣的全球性大流行。它影響了我們星球上的所有國家,部門和幾乎所有個人。
好消息是,我們已經(jīng)準備好疫苗,終于可以充滿樂觀和希望,迎接新的一年2021年。

2020年對于軟件開發(fā)行業(yè)來說是重要的一年,在許多領(lǐng)域都取得了明顯的突破。COVID-19大大加快了數(shù)字化轉(zhuǎn)型,到2021年這種趨勢將更加明顯。
在軟件開發(fā)行業(yè),一年幾乎就像光明的一年。我沒有更新舊帖子,而是創(chuàng)建了一份新的預(yù)測列表,以預(yù)測我對2021年軟件開發(fā)行業(yè)的期望。
進行預(yù)測是一項冒險的任務(wù)。但是,我將使用來自身份驗證來源的數(shù)據(jù),數(shù)據(jù)和事實,并結(jié)合過去對未來做出預(yù)測。如果您想了解2021在其軟件開發(fā)行業(yè)商店中的功能,請閱讀。
1. 集中式基礎(chǔ)架構(gòu):云,無處不在的云
在COVID-19期間,盡管有少數(shù)行業(yè),但大多數(shù)行業(yè)遭受了重創(chuàng)。云計算是先驅(qū)行業(yè),在大流行期間,它實際上比以往任何時候都更加強大。如果在云采用方面存在任何疑問和不確定性,COVID-19消除了這一點。
像新冠病毒這樣的全球性災(zāi)難表明,我們不僅需要Cloud進行高端升級,還需要Cloud進行縮減規(guī)模,即當我們的服務(wù)需求大幅下降時。考慮一下盡管其市場下降了90%,但必須維護昂貴的數(shù)據(jù)中心的旅游業(yè)和運輸業(yè)。
Forrester預(yù)測,全球公共云IT基礎(chǔ)設(shè)施市場將增長到2021年的3,5%,達到1200億美元。
無論您身處哪個行業(yè)(政府,新興企業(yè),農(nóng)業(yè),醫(yī)療保健,銀行),都應(yīng)計劃云遷移,因為整個世界早日遷移到云。2021年及以后,對云原生工程師的需求將大大短缺。
如果您是IT工程師,請?zhí)寥魏蜯OOC(大規(guī)模在線公開課程)以獲取您的云證書。好消息是,其中許多公司在新冠期間提供免費的幾個月服務(wù)。此外,主要的公共云提供商都提供免費課程。最近最大的公共云提供商亞馬遜宣布,他們將在2021年至2025年之間為2900萬人提供免費的云計算培訓(xùn)。
2. 去中心化基礎(chǔ)架構(gòu):邊緣計算將呈指數(shù)增長
與我們希望擁有一個集中式的數(shù)據(jù)和計算能力數(shù)據(jù)中心的公共云相反,在許多情況下,我們想要相反的情況,即最終用戶附近的數(shù)據(jù)和計算能力。其中一些是非常低的延遲(5到20毫秒),高帶寬,監(jiān)管原因,實時用例,智能而強大的最終用戶設(shè)備等。
盡管邊緣計算是一個古老的概念,并且我們在內(nèi)容交付網(wǎng)絡(luò)(CDN)中使用邊緣計算,但近年來它越來越流行。隨著互聯(lián)汽車(無人駕駛汽車,無人機),在線游戲,物聯(lián)網(wǎng),智能設(shè)備和邊緣AI / ML的興起,邊緣計算將在2021年及以后成為一個巨大的市場。邊緣計算將在2021年成為關(guān)鍵技術(shù)的另一個關(guān)鍵原因是5G移動設(shè)備的興起。
在2021年,兩組行業(yè)將爭奪Edge計算的市場份額。一組將是公共云提供商,例如Amazon,Microsoft,Google。
再次重申,亞馬遜是提供許多服務(wù)(例如AWS Snow系列,AWS IoT Greengrass)的領(lǐng)導(dǎo)者。Microsoft還通過Azure Stack Edge,Azure Edge Zone提供邊緣服務(wù)。Google還通過Google Anthos將其數(shù)據(jù)中心服務(wù)移交給了最終用戶。
另一類是已經(jīng)具有邊緣基礎(chǔ)架構(gòu)的行業(yè),例如電信公司,數(shù)據(jù)中心提供商,網(wǎng)絡(luò)提供商。如果他們能夠快速行動并利用自己的優(yōu)勢(即現(xiàn)有的基礎(chǔ)架構(gòu)),那么他們將有機會在這里發(fā)揮領(lǐng)導(dǎo)作用?;旌显铺峁┥蘎edHat(IBM)將憑借其混合云平臺OpenShift和參與OpenStack成為主要參與者。最近,三星與IBM合作開發(fā)邊緣計算解決方案。
邊緣狀態(tài)是主動制定邊緣計算開放標準,以使邊緣計算供應(yīng)商中立。最近,《邊緣狀態(tài)》成為Linux基金會的一部分。與CNCF一樣,《邊緣狀態(tài)》也將在2021年及以后獲得更多發(fā)展。
為2021年及以后的邊緣計算中的許多創(chuàng)新,合并,并駕齊驅(qū)和標準化做準備。
3. 云:AWS處于領(lǐng)先地位,但多云將是未來
在公共云供應(yīng)商中,毫無疑問誰是領(lǐng)導(dǎo)者。2020年第三季度,亞馬遜以32%的市場份額領(lǐng)先公有云市場。
微軟憑借其云產(chǎn)品又迎來了強勁的一年,并在2020年實現(xiàn)了48%的年增長率.2020年第三季度,微軟的市場份額為19%,而2019年第三季度的市場份額為17%。
截至目前,谷歌是第三大公共云提供商,其在2020年第三季度的市場份額為7%。
在2021年,亞馬遜和微軟將分別保持第一和第二的位置。但是,阿里巴巴將在2021年超過第三名,因為它在2020年第三季度的市場份額中僅次于Google,僅次于Google。
此外,多云計劃將在2021年獲得更大的發(fā)展勢頭。許多公司也開始采用多云戰(zhàn)略。CIA最近將其云合同授予了多個供應(yīng)商,而不是單個供應(yīng)商。
到目前為止,亞馬遜還不愿意加入多云計劃以保護其市場份額。但是,正如我們十年前在Microsoft上所看到的那樣,整個行業(yè)和社區(qū)都比最大的單個公司還大。最近,亞馬遜默默地加入了多云計劃。
云原生計算基金會(CNCF)在多云運動中起著關(guān)鍵作用,可以說已經(jīng)超越了Linux基金會。在2021年,我們可以看到CNCF的增長更多。此外,像HashiCorp這樣的多云服務(wù)提供商將在2021年變得更加重要。
一些出色的項目還提供與流行的特定于供應(yīng)商的特定Cloud Services的API兼容性,例如MinIO(提供與AWS S3兼容的Object Storage)。在2021年,將會有諸如MinIO之類的更多舉措,使我們能夠輕松提升和轉(zhuǎn)移流行的供應(yīng)商鎖服務(wù)。
對于整個行業(yè)來說,這是個好消息,因為我夢想著一個公司可以無縫地將應(yīng)用程序部署在多云中的世界。
4. 容器化:Kubernetes為王,而Docker將淡出
容器化是云本機IT的核心技術(shù),無論是公有云,私有云,還是邊緣計算。幾年來,Kubernetes已經(jīng)確立了自己作為領(lǐng)先的容器編排和管理技術(shù)的地位。就像Linux以前統(tǒng)治數(shù)據(jù)中心一樣,Kubernetes統(tǒng)治著公共云和私有云領(lǐng)域。最初,谷歌是領(lǐng)導(dǎo)Kubernetes的領(lǐng)導(dǎo)力量,但是現(xiàn)在幾乎所有的Giant Tech公司都將其力量放在Kubernetes后面。
所有主要的公共云提供商現(xiàn)在都在提供托管的Kubernetes服務(wù)(Amazon EKS,Azure AKS,Google GKE)以及托管的容器化服務(wù)。另一方面,RedHat通過OpenShift在私有云中提供托管Kubernetes服務(wù)。
在2021年,我們將看到更多采用Kubernetes的方法,因為它是混合云或多云策略的核心組件。AI / ML,數(shù)據(jù)庫,數(shù)據(jù)平臺,無服務(wù)器和邊緣計算等非傳統(tǒng)企業(yè)應(yīng)用程序也將遷移到Kubernetes。
另一方面,Docker逐漸失去了其作為Conternization Technology的魅力。已經(jīng)有一些標準化容器格式和運行時的計劃,其中有兩個在最近幾年受到了極大的關(guān)注。一種是Kubernetes領(lǐng)導(dǎo)的容器運行時接口(CRI)。另一個是Linux基金會牽頭的開放容器倡議(OCI)。
最近,Kubernetes已棄用Docker,轉(zhuǎn)而支持CRI,并計劃在即將到來的Kubernetes版本(1.22)中于2021年末完全刪除Docker。
由于Kubernetes是容器化生態(tài)系統(tǒng)中重達800磅的大猩猩,因此2021年將是Docker終結(jié)的起點。從好的方面來看,CRI和OCI將在2021年獲得更大的發(fā)展動力,尤其是基于CRI的集裝箱將在2021年獲得巨大的推動力。
5. 計算:量子計算將獲得發(fā)展動力
量子計算是此列表中最具革命性的技術(shù)。像數(shù)字計算機一樣,它具有影響每個部門的潛力。我創(chuàng)建了2030年代最熱門的技術(shù)列表,而Quantum Computing排名第一。
透視一下:如果我們將當今最先進的超級計算機視為普通人,例如國際象棋玩家或8年級數(shù)學(xué)學(xué)生,那么量子計算就是像Magnus Carles這樣的Supergenius,他可以玩50副平均國際象棋。一次或天才的數(shù)學(xué)家像歐拉這樣的球員。
2020年,量子計算領(lǐng)域取得了一些重大突破和進步?;裟犴f爾在2020年6月宣稱自己創(chuàng)造了功能最強大的量子計算機,超越了谷歌之前的記錄。
僅幾天前,來自中國科學(xué)技術(shù)大學(xué)(USTC)的一組科學(xué)家表明,量子計算機可以在特定任務(wù)(高斯玻色子采樣)上輕松擊敗最先進的經(jīng)典超級計算機。
許多政府和技術(shù)巨頭都在探索和投資量子計算。Google和IBM是該領(lǐng)域中最大的兩家。Google甚至啟動了一個開源庫TensorFlow Quantum(TFQ),用于對Quantum Machine學(xué)習模型進行原型設(shè)計。
亞馬遜還通過其Amazon Braket Cloud Service提供托管量子計算服務(wù)。
考慮到巨大的興趣及其無限的可能性,2021年的《計算機量子》將有一些突破和令人jaw目結(jié)舌的發(fā)現(xiàn)。
如果您想探索量子計算,那么可以使用開源SDK qiskit,它也提供免費課程。
6. 區(qū)塊鏈:過山車將繼續(xù)
區(qū)塊鏈(分布式賬本)也是最近開發(fā)的主要破壞性技術(shù)之一。從技術(shù)角度來看,它具有改變整個行業(yè)的潛力。盡管加密貨幣在普及該技術(shù)方面發(fā)揮了主要作用。在Gartner的"炒作周期"曲線的"通脹預(yù)期峰值"中,該技術(shù)也發(fā)揮了重要作用。
許多流氓實體利用比特幣的流行性,并創(chuàng)建了騙局項目,以欺騙想要在短時間內(nèi)致富的普通百姓?,F(xiàn)在,區(qū)塊鏈正在經(jīng)歷炒作周期曲線的"幻滅低谷"。此外,政府正在干預(yù)加密貨幣以防止欺詐。最近,中國政府沒收了一個加密貨幣騙局" Plus Token Ponzi"。
Facebook在2019年發(fā)布了Cryptocurrency Libra,但在2020年受到了巨大的監(jiān)管壓力。
以太坊等其他開源區(qū)塊鏈正在將代碼放入?yún)^(qū)塊中,從而有可能將其用作智能合約,這是區(qū)塊鏈的未來。
到2021年,區(qū)塊鏈將更多地用作智能合約機制,并有望進入"啟蒙運動"階段。隨著中國將其雄心勃勃的500萬億"新基礎(chǔ)設(shè)施"計劃納入其中,區(qū)塊鏈將在2021年獲得重大推動。
7. 人工智能:人工智能將為所有人服務(wù)
作為近來最熱門的技術(shù)之一,人工智能在2020年也取得了許多突破。另一個有趣的趨勢是,人工智能以"人人享有AI"的口號開始慢慢進入所有領(lǐng)域。
在自然語言處理領(lǐng)域,GPT-3是2020年5月最大的突破。美國公司OpenAI創(chuàng)建了GPT-3,這使得使用深度學(xué)習創(chuàng)建類似于人的文本成為可能。僅四個月后,使用GPT-3撰寫了以下《衛(wèi)報》文章,整個世界同時感到驚訝和震驚。
2021年,自然語言處理將取得突破,人工智能將在其中編寫文章或編寫小型軟件程序。
另一個有趣的開發(fā)是AutoML 2.0,它支持自動化功能工程。到2021年,全周期AI自動化將取得重大進步,人工智能將進一步民主化。
人工智能并非一帆風順,道德的人工智能正變得越來越受關(guān)注。AI的另一個主要趨勢是可解釋的AI,這將需要解釋為什么AI做出了某個決定。到2021年,隨著歐盟制定法規(guī)解釋AI的決定,這些領(lǐng)域?qū)⑷〉弥卮筮M展。
人工智能還將在2021年及以后的航空業(yè)中得到廣泛采用。就在幾天前,美國空軍使用AI作為副駕駛員駕駛飛機。
未來,人工智能還將成為中國基于數(shù)字基礎(chǔ)設(shè)施的核心。
預(yù)計2021年人工智能將有許多令人振奮的創(chuàng)新和民主化。
8. 深度學(xué)習庫:它將是TensorFlow 2.0和PyTorch
Google和Facebook是深度學(xué)習和神經(jīng)網(wǎng)絡(luò)領(lǐng)域的兩個主要參與者。Google的主要業(yè)務(wù)是搜索功能,并且是自然語言處理領(lǐng)域的領(lǐng)先創(chuàng)新者。Facebook的主要業(yè)務(wù)是社交網(wǎng)絡(luò),它必須處理圖像,視頻和文本。在圖像處理方面,F(xiàn)acebook是眾多創(chuàng)新技術(shù)的領(lǐng)導(dǎo)者。
谷歌的TensorFlow是深度學(xué)習領(lǐng)域的領(lǐng)先圖書館,但2016年Facebook發(fā)布PyTorch時一切都發(fā)生了變化。PyTorch使用動態(tài)圖代替靜態(tài)圖(由TensorFlow使用),并且對Python更友好。谷歌對此做出了回應(yīng),在2019年創(chuàng)建了TensorFlow 2.0,該版本復(fù)制了許多PyTorch功能(動態(tài)圖,Python友好性)。它還可以與Google的Collab(一款非常強大的現(xiàn)代筆記本電腦)完美配合。從那時起,Google享受了TensorFlow 2.0受歡迎程度的回升。根據(jù)2020年Stack Overflow開發(fā)者調(diào)查,TensorFlow目前是最受歡迎的深度學(xué)習框架:

> Source: Stack Overflow Developer Survey, 2020
另一方面,開發(fā)人員喜歡與PyTorch合作,以獲取更好的開發(fā)人員人體工程學(xué)設(shè)計,因為它更受開發(fā)人員的喜愛:

> Source: Stack Overflow Developer Survey, 2020
同樣在2021年,TensorFlow 2.0和PyTorch將成為企業(yè)和社區(qū)的"首選"庫。擁有現(xiàn)有TensorFlow代碼庫或想要使用Collab Notebook的公司應(yīng)使用TensorFlow 2.0。深度學(xué)習新手或想要繼續(xù)使用Juypter Notebook的公司或個人應(yīng)選擇PyTorch。
9. 數(shù)據(jù)存儲:一種尺寸不會填充全部
現(xiàn)代數(shù)據(jù)庫環(huán)境充滿了選擇和廣泛的變化。我們有經(jīng)典的SQL數(shù)據(jù)庫,主要是四大數(shù)據(jù)庫:MySQL,Oracle,MS-SQL,PostgreSQL。我們還有NoSQL數(shù)據(jù)庫,它主要包括數(shù)據(jù)庫系列:文檔數(shù)據(jù)庫,鍵值數(shù)據(jù)庫,寬列數(shù)據(jù)庫,時間序列數(shù)據(jù)庫,搜索數(shù)據(jù)庫,圖形數(shù)據(jù)庫。還有許多其他類型的數(shù)據(jù)存儲。
最近,我們看到了所謂的全球分布式ACID事務(wù)數(shù)據(jù)庫或NewSQL數(shù)據(jù)庫的熱潮。Google憑借其Google Spanner(首個水平可讀寫ACID兼容水平數(shù)據(jù)庫)在這里處于領(lǐng)先地位。亞馬遜還具有可水平擴展且符合ACID要求的數(shù)據(jù)庫Amazon Aurora,該數(shù)據(jù)庫提供幾乎所有SQL功能,但不提供水平寫入擴展。在超大規(guī)模云提供商之外,CockroachDB還是一個非常杰出的NewSQL或分布式SQL數(shù)據(jù)庫。
到2021年,數(shù)據(jù)存儲生態(tài)系統(tǒng)將保持不變,并具有許多選擇。不會有可以滿足所有目的的Master數(shù)據(jù)庫。同樣在2021年,經(jīng)過仔細考慮,選擇正確的數(shù)據(jù)庫將是一項非常具有挑戰(zhàn)性的任務(wù)。
許多流行的數(shù)據(jù)庫已更改其許可證(MongoDB,Cassandra,Redis,Kafka),因為超大規(guī)模云提供商(尤其是亞馬遜)濫用了其創(chuàng)新技術(shù)并賺了錢而沒有償還。這一趨勢將在2021年持續(xù)下去,其他初創(chuàng)公司或創(chuàng)新型公司將使用限制性更強的許可證來保護自己免受惡意云提供商的侵害。
10. 數(shù)據(jù)密集型計算:Spark將繼續(xù)保持領(lǐng)先地位
僅在幾年前,Hadoop是數(shù)據(jù)密集型計算或分布式批處理作業(yè)的默認選擇。Apache Spark當前是首選的供應(yīng)商中性分布式批處理作業(yè)平臺,在大多數(shù)情況下幾乎替代了Hadoop。
這一趨勢將在2021年持續(xù)下去,Spark將被用作數(shù)據(jù)密集型計算的首選平臺。Spark是一個基于JVM的系統(tǒng),占用大量資源,您將獲得巨額的Cloud費用。但不幸的是,目前還沒有資源節(jié)約型的Spark強大和成熟的框架。
所有主要的云提供商都擁有自己的Cloud Native解決方案,以進行數(shù)據(jù)密集型計算。我的兩分錢建議是在2021年使用Spark over Cloud特定解決方案,以避免供應(yīng)商鎖定。
11. 實時流:Flink將是顯而易見的選擇
近年來,隨著企業(yè)拋棄傳統(tǒng)的Lambda體系結(jié)構(gòu),轉(zhuǎn)而支持實時流處理框架,實時流變得越來越流行。
另外,這里存在兩種類型的框架。一個是由Spark Streaming領(lǐng)導(dǎo)的基于Micro-Batch的平臺。另一個是由Apache Flink領(lǐng)導(dǎo)的低延遲流處理平臺。
對于需要實時流傳輸?shù)膱鼍?欺詐檢測,異常檢測,基于規(guī)則的警報,實時數(shù)據(jù)的臨時分析),Apache Flink排除了Spark Streaming。
所有Hyperscale云提供商都提供自己的解決方案。我建議您在2021年選擇基于Spark的Flink或?qū)S械脑平鉀Q方案,因為它在實時流處理方面具有無與倫比的功能。
12. 數(shù)據(jù)平臺:其他玩家將跟隨Snowflake
現(xiàn)代數(shù)據(jù)架構(gòu)非常復(fù)雜。它包含數(shù)據(jù)源,ETL管道,數(shù)據(jù)倉庫,數(shù)據(jù)湖,數(shù)據(jù)分析工具以及許多其他組件。這是企業(yè)數(shù)據(jù)平臺(ABM AMRO的數(shù)據(jù)平臺)的示例使用案例:

https://medium.com/abn-amro-developer/abn-amros-data-integration-architecture-f33506a211c3
Snowflake通過提供一個集中式數(shù)據(jù)源,一個平臺并在其上構(gòu)建許多不同的工作負載,徹底改變了現(xiàn)代數(shù)據(jù)體系結(jié)構(gòu)。在經(jīng)典體系結(jié)構(gòu)中,數(shù)據(jù)需要在不同的階段移動,但是Snowflake中只有一個"數(shù)據(jù)的真實來源"。
對于所有人來說,這都不是完美的用例。但是,對于許多人來說,它將使數(shù)據(jù)平臺和數(shù)據(jù)倉庫民主化并增強其功能。甲骨文首席執(zhí)行官拉里·埃里森(Larry Ellison)分享了它已經(jīng)動搖了數(shù)據(jù)倉庫市場。
我希望在2021年能有更多的創(chuàng)新,使Snowflake像一個單一的企業(yè)級數(shù)據(jù)平臺一樣。對于許多公司來說,這將是一個巨大的幫助和改變游戲規(guī)則。
13. 快速的應(yīng)用開發(fā):低代碼/無代碼將擴展
快速的數(shù)字化轉(zhuǎn)型在軟件工程師的供需方面造成了巨大的差距。盡管越來越多的新開發(fā)人員加入該行業(yè),但這還遠遠不夠。近年來,"低代碼/無代碼"計劃正在獲得發(fā)展。
市場上有許多低代碼/無代碼平臺,主要是在Web開發(fā)中,如Bubble。他們的成功也為其他領(lǐng)域的LCNC開發(fā)鋪平了道路:無代碼應(yīng)用程序開發(fā),無代碼AI,無代碼機器學(xué)習。LCNC工具可以促進業(yè)務(wù)或具有出色創(chuàng)意的人。
而且,正如我去年所預(yù)測的,公共云提供商正在提供LCNC服務(wù)。微軟提供Power Apps,谷歌提供AppSheet,AWS提供Honeycode作為LCNC平臺,以快速構(gòu)建應(yīng)用。
在2021年,LCNC將成為眾多創(chuàng)新,合并和收購的熱門領(lǐng)域之一。如果您是個有創(chuàng)意的個人或企業(yè),請注意2021年的LCNC。
14. 軟件架構(gòu):微服務(wù),巨石架構(gòu),無服務(wù)器將共存
近年來,微服務(wù)架構(gòu)已成為大規(guī)模企業(yè)應(yīng)用程序開發(fā)中的首選。但是,設(shè)計微服務(wù)應(yīng)用程序比"一種尺寸適合所有人"的整體應(yīng)用程序要復(fù)雜得多。正如我在以下文章中列出的那樣,微服務(wù)架構(gòu)需要一套最佳實踐。
像任何其他軟件體系結(jié)構(gòu)一樣,微服務(wù)也有其出色的用例和失敗的極端案例。正如我在這里總結(jié)的,它還需要一組設(shè)計模式。
近年來,由于微服務(wù)架構(gòu)的復(fù)雜性和在某些用例中的失敗,人們對此表示強烈反對。偉大的Kelsey Hightower在以下Tweet中總結(jié)了對微服務(wù)的批評:

它與我們幾年前看到的整體建筑受到批評并被認為是過時的趨勢形成鮮明對比。實際上,Monolithic Architecture也是一種很棒的體系結(jié)構(gòu),正如我在以下文章中所述,它最適合其中。
近年來,另一種備受關(guān)注的軟件架構(gòu)是無服務(wù)器架構(gòu)。亞馬遜通過其突破性的AWS Lambda服務(wù)開創(chuàng)了無服務(wù)器計算服務(wù)的先河,該服務(wù)由開發(fā)人員僅編寫代碼,而服務(wù)提供商則管理服務(wù)器。它也是一種被某些人大肆宣傳而又被其他人批評的架構(gòu)。像Monoliths和Microservices一樣,Serverless也不是Silver Bullet,應(yīng)該在適合的地方使用(例如,事件驅(qū)動和突發(fā)負載)。
在2021年,所有軟件體系結(jié)構(gòu)(Monolith,微服務(wù),無服務(wù)器)將共存,因為它們都有自己的用例,優(yōu)點和缺點。我建議選擇微服務(wù)來進行大規(guī)模企業(yè)開發(fā)(傳統(tǒng)上使用SOA),使用Monoliths進行小規(guī)模開發(fā),選擇無服務(wù)器來進行事件驅(qū)動和突發(fā)負載。
15. 編程(主流):Python和JavaScript將引領(lǐng)潮流
近年來,編程語言格局也正在發(fā)生重大變化。傳統(tǒng)的重量級編程語言正在將市場份額轉(zhuǎn)移到更簡單且對開發(fā)人員友好的編程語言上。2020年1月,我對需求型語言進行了廣泛的分析,并將Python和JavaScript分別放在第一和第二位。
最后,最受歡迎的編程語言排名網(wǎng)站TIOBE承認了這一變化,并將Python置于Java之上。
隨著軟件開發(fā)行業(yè)的蓬勃發(fā)展以及大量新開發(fā)人員的加入,更簡單,對開發(fā)人員友好的編程語言將在2021年變得更加流行。
Python是數(shù)據(jù)科學(xué)中排名第一的編程語言,幾乎是除底層編程之外的所有其他領(lǐng)域中的排名第二或第三的語言。
JavaScript是Web開發(fā)中無可爭議的第一語言,并且在包括后端開發(fā)在內(nèi)的其他領(lǐng)域也越來越流行。對于初學(xué)者來說,這也是一種完美的語言。
Java正在逐漸失去其作為最流行的編程語言的流行性。但是,憑借其傳奇性的向后兼容性和可喜的變化(6個月的發(fā)布周期,polyglot虛擬機GraalVM),它將繼續(xù)成為企業(yè)軟件開發(fā)中的第一選擇。
C ++是另一種主流編程語言,近年來正在發(fā)生重大變化。C ++ 20僅在幾天前發(fā)布,它將徹底改變C ++的編程方式。它是近年來最具破壞性的C ++發(fā)行版之一,并可能在2021年及以后對它的普及產(chǎn)生巨大影響。
到2021年,主流編程語言將保持自己的地位,盡管它們會受到現(xiàn)代編程語言的壓力。
16. 編程(現(xiàn)代):Rust終于到來
過去幾年中,編程語言領(lǐng)域的另一個有趣趨勢是現(xiàn)代編程語言的興起。較舊的語言已經(jīng)不堪重負,無法通過添加越來越多的功能(C ++)來快速移動(Java)或變得更加臃腫和令人生畏。
現(xiàn)代和較新的語言不再需要繁重的工作,可以滿足當今開發(fā)人員的需求。他們中的大多數(shù)人專注于開發(fā)人員的人機工程學(xué),并支持現(xiàn)代功能,例如類型推斷,無效安全性,表達性和簡潔性。他們中的許多人還旨在利用現(xiàn)代硬件和現(xiàn)代基礎(chǔ)架構(gòu)(云,多核,GPU,TPU)。
正如我在以下文章中所預(yù)測的那樣,由Rust,Go,Kotlin,Swift,TypeScript領(lǐng)導(dǎo)的現(xiàn)代編程語言日漸流行。
由于它們是增長最快的語言之一,這種趨勢也將在2021年繼續(xù)。
其中,Rust將在2021年取得突破,因為該行業(yè)終于注意到了這一點。根據(jù)Stack Overflow開發(fā)人員調(diào)查,在過去的五年中,它是最受歡迎的編程語言:

> Source: Stack Overflow Developer Survey, 2020
對于安全性敏感和復(fù)雜的項目,Tech Giants最終使用Rust而不是C / C ++。微軟最近宣布,他們將使用Rust修復(fù)安全錯誤。
就在幾周前,亞馬遜宣布對Rust進行大量投資,并在此說明了理由。
Google的Go語言已經(jīng)成為主流和公認的編程語言。Go 2版本計劃進行許多改進,將來它將變得更加流行。
JetBrain的Kotlin已經(jīng)將自己確立為JVM生態(tài)系統(tǒng)中第二流行的類型化編程語言。在Android App開發(fā)中,它已經(jīng)超越了Java。
微軟的TypeScript已將自己牢固地確立為JavaScript的替代類型。最近,隨著許多復(fù)雜的項目(例如Deno,Vue.js)更喜歡TypeScript而不是JavaScript,它的受歡迎程度有了巨大的飛躍。
蘋果公司的Swift已經(jīng)取代了Objective-C,成為macOS和iOS中的首選語言。它還看到其他領(lǐng)域的采用。
在科技巨頭的支持下,預(yù)計包括Rust在內(nèi)的現(xiàn)代編程語言將在2021年獲得更多的關(guān)注,普及和使用。
17. 客戶端Web框架:React將繼續(xù)領(lǐng)跑
大多數(shù)面向用戶的企業(yè)應(yīng)用程序是Web或移動應(yīng)用程序。在Web開發(fā)中,基于JavaScript / TypeScript的客戶端Web框架已經(jīng)占據(jù)了主導(dǎo)地位。趨勢是將JavaScript框架用于UI開發(fā),將服務(wù)器端框架用于后端開發(fā),其中前端和后端是獨立的服務(wù)。
Facebook的React是客戶端網(wǎng)絡(luò)框架中的領(lǐng)導(dǎo)者。它是行業(yè)中引領(lǐng)潮流和使用最廣泛的框架。如果您想進一步了解基于JavaScript的客戶端框架,則可以閱讀以下文章。
到目前為止,React是下載次數(shù)最多的客戶端JavaScript框架,如下所示:

> Source: NPM trends
盡管React不是最受歡迎的Web框架,但該榮譽又歸功于另一個基于JavaScript的Web框架Vue.js:

> Source by Author
它也是中國排名第一的框架,因為Vue.js(Evan You)的創(chuàng)建者是中國前Google開發(fā)人員。不幸的是,Vue.js在美國/歐洲的采用率相對較低。
Google的Angular落后于React和Vue.js,但仍然是一個可靠的框架。但是,最近最革命的Web框架是Svelte。與其他框架不同,Svelte是一個非運行時框架,專注于編譯步驟。
在2021年,所有主要的基于JavaScript的框架都將相互學(xué)習,并從其他框架中適應(yīng)功能。他們將在2021年進一步融合。
18. 服務(wù)器端Web框架:適用于企業(yè)的Spring和ASP.NET Core
服務(wù)器端框架是提供端到端Web開發(fā)的端到端框架,包括通過服務(wù)器端渲染的視圖層。但是,正如已經(jīng)提到的,現(xiàn)代的趨勢是僅將它們用于后端。
基于JVM的Spring框架是企業(yè)開發(fā)中排名第一的服務(wù)器端框架。它還提供了開發(fā)大型和復(fù)雜應(yīng)用程序的所有必要功能:控制反轉(zhuǎn),依賴注入,云原生開發(fā),響應(yīng)式和事件驅(qū)動的應(yīng)用程序開發(fā),快速應(yīng)用程序開發(fā)。同樣在2021年,Spring將仍然是企業(yè)的第一后端框架。在上一篇文章中,我將Spring作為服務(wù)器端Web框架的第一名。
微軟的ASP.NET Core是另一個引人注目的多語言Web框架,可與流行的JavaScript框架(React,Vue.js和Angular)無縫協(xié)作。在2021年,ASP.NET Core將成為企業(yè)服務(wù)器端開發(fā)的主要參與者。
許多初創(chuàng)公司和小型公司希望擁有一個包括View層在內(nèi)的端到端框架,以進行快速的應(yīng)用程序開發(fā)。基于Python的Django,PHP Laravel和Ruby on Rails在2021年將是它們的絕佳選擇。
19. 應(yīng)用程序開發(fā):本機應(yīng)用程序?qū)⒗^續(xù)占主導(dǎo)地位
智能手機現(xiàn)已成為我們?nèi)粘I畹囊徊糠?。智能手機用戶數(shù)量已經(jīng)是35億,明年將達到38億:

> Source: Statista
因此,移動應(yīng)用程序?qū)τ谧罱K用戶,特別是對年輕一代而言,變得越來越重要。
在移動應(yīng)用程序開發(fā)中,有四個主要趨勢:本機應(yīng)用程序開發(fā),跨平臺應(yīng)用程序開發(fā),混合應(yīng)用程序開發(fā)和基于云的應(yīng)用程序開發(fā)。
本機應(yīng)用程序開發(fā)可提供最高的靈活性,并具有最佳的性能和用戶體驗。但是開發(fā)成本最高,因為企業(yè)需要保留兩個獨立的團隊。
跨平臺App開發(fā)正變得越來越流行,因為幾乎相同的代碼庫可用于iOS和Android App開發(fā)。盡管開發(fā)成本很低,但它的靈活性較差,性能不如Native應(yīng)用程序。
近年來,基于云的應(yīng)用程序變得越來越流行,其中數(shù)據(jù)和主要業(yè)務(wù)邏輯仍保留在云中。開發(fā)了特定于設(shè)備的瘦客戶端,該客戶端連接并從云中獲取數(shù)據(jù)。雖然對于精通數(shù)據(jù)的應(yīng)用程序來說是更好的選擇,但對于常規(guī)App開發(fā)而言,它并不是主流。
盡管跨平臺應(yīng)用程序開發(fā)正在趕上,但本機應(yīng)用程序開發(fā)仍然是企業(yè)進行常規(guī)應(yīng)用程序開發(fā)的更好選擇。在2021年,企業(yè)將更喜歡本機應(yīng)用程序開發(fā),而初創(chuàng)公司和小型公司將更喜歡跨平臺應(yīng)用程序開發(fā)。
20. 跨平臺應(yīng)用程序開發(fā):React Native將占主導(dǎo)地位,但Flutter將趕上
跨平臺應(yīng)用程序開發(fā)由于價格便宜而變得越來越流行。市場上有許多跨平臺應(yīng)用程序開發(fā)平臺,但Flutter和React Native是領(lǐng)導(dǎo)者:
Facebook的React Native基于最流行的基于JavaScript的Web開發(fā)框架React。它的口號是"學(xué)習一次,隨處寫"。Facebook正在積極開發(fā)React Native,他們正在與27億Facebook用戶一起測試其功能。如果公司已經(jīng)具有用于Web開發(fā)的React和用于應(yīng)用程序開發(fā)的React Native,則他們可以在Web和移動開發(fā)之間共享組件和代碼庫。另外,React Native基于JavaScript,JavaScript是最流行的編程語言之一。當前,React Native比Flutter更為流行,如下所示:

> Source: Stack Overflow Developer Survey, 2020
在2021年,React將主導(dǎo)跨平臺應(yīng)用程序開發(fā),因為React和React Native性能將有重大更新。
Google的Flutter是一個相對較新的框架,但近年來變得非常流行。它提供了功能強大的UI工具包,可通過一個代碼庫構(gòu)建漂亮的,本機編譯的移動,桌面和Web應(yīng)用程序。但是,F(xiàn)lutter還不是像React這樣的Web開發(fā)中的主要框架。Flutter使用了現(xiàn)代的編程語言Dart,它是增長最快且生產(chǎn)力最高的編程語言之一。在性能方面,F(xiàn)lutter優(yōu)于React Native。它還提供了更好的開發(fā)人員人體工程學(xué),并且開發(fā)人員喜歡使用Flutter:

> Source: Stack Overflow Developer Survey, 2020
與Facebook相比,Google將所有精力都放在React Native上,而Google在Web和App開發(fā)中擁有許多框架(例如Angular for Web),而不是將所有精力都放在Flutter和Dart上。
綜合考慮所有因素,我預(yù)測React Native將在2021年超越Flutter,因為Facebook計劃在React生態(tài)系統(tǒng)(Achille's Hill for React Native)中進行重大性能改進。
21. API:用于業(yè)務(wù)應(yīng)用程序的REST
近年來,微服務(wù)架構(gòu)和無服務(wù)器變得越來越流行。微服務(wù)或納米服務(wù)需要進行通信,通常,在事件驅(qū)動的異步通信上使用同步通信。甚至傳統(tǒng)的Monoliths也通過同步通信進行通信。
REST是2020年最主要的API技術(shù)。REST是基于Web技術(shù)的通信標準?,F(xiàn)在已經(jīng)有相當一段時間了(20年)。REST和SOAP幾乎同時出現(xiàn),但是在SOAP被視為傳統(tǒng)技術(shù)的情況下,REST仍然占統(tǒng)治地位。無論是大型企業(yè)還是小型初創(chuàng)企業(yè),REST無處不在。同樣在2021年,REST將繼續(xù)占據(jù)主導(dǎo)地位。
API領(lǐng)域也有一些優(yōu)秀的候選人。最突出的是Google的gRPC。與REST不同,gRPC是RPC協(xié)議,例如SOAP。Google從較早的RPC協(xié)議中吸取了教訓(xùn),并創(chuàng)建了適合現(xiàn)代軟件開發(fā)需求的gRPC。gRPC代替JSON,使用高性能的消息傳遞格式協(xié)議緩沖區(qū)(也由Google開發(fā))。結(jié)果,與REST相比,gRPC的性能更高,可讀性更差。在機器對機器通信中,這是顯而易見的選擇。
Facebook的GraphQL是另一種越來越受歡迎的API技術(shù),尤其是對于UI開發(fā)人員而言,它很受歡迎。UI通常需要對后端進行大量API調(diào)用,以獲取其所需的所有數(shù)據(jù)。GraphQL允許聚合API以減少UI和后端之間的聊天通信。GraphQL的一個主要缺點是它不適用于高安全性問題開發(fā)。
這三者實際上有各自獨立的用例,并且可以相互補充,并且這種趨勢將在2021年繼續(xù)。
結(jié)論
在這里,我使用當前的趨勢,數(shù)據(jù)和事實對2021年最重要的軟件開發(fā)趨勢進行了21個預(yù)測。整個軟件開發(fā)行業(yè)規(guī)模更大,而且我無法涵蓋許多重要領(lǐng)域。
另外,我已經(jīng)簡要討論了一些主題,例如,數(shù)據(jù)存儲,這需要單獨的文章。另一方面,我已經(jīng)對某些主題進行了更詳細的介紹。另一個有趣的事實是四個技術(shù)巨頭:谷歌,F(xiàn)acebook,亞馬遜和微軟如何在軟件開發(fā)的幾乎所有領(lǐng)域占據(jù)主導(dǎo)地位。我希望本文能對您在2021年之前的軟件開發(fā)趨勢提供360度的概述。