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

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

> Source: Stack Overflow Developer Survey, 2020
另一方面,開(kāi)發(fā)人員喜歡與PyTorch合作,以獲取更好的開(kāi)發(fā)人員人體工程學(xué)設(shè)計(jì),因?yàn)樗荛_(kāi)發(fā)人員的喜愛(ài):

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

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

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

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

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

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

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

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

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