摘要
對(duì)于軟件開(kāi)發(fā)行業(yè)來(lái)說(shuō),2020 年是意義重大的一年,許多領(lǐng)域都取得了重大突破。本文將基于來(lái)自認(rèn)證來(lái)源的數(shù)據(jù)、圖表和事實(shí),根據(jù)過(guò)去來(lái)預(yù)測(cè)未來(lái)。如果你想要了解軟件行業(yè)在
對(duì)于軟件開(kāi)發(fā)行業(yè)來(lái)說(shuō),2020 年是意義重大的一年,許多領(lǐng)域都取得了重大突破。本文將基于來(lái)自認(rèn)證來(lái)源的數(shù)據(jù)、圖表和事實(shí),根據(jù)過(guò)去來(lái)預(yù)測(cè)未來(lái)。如果你想要了解軟件行業(yè)在 2021 年會(huì)有哪些變化,請(qǐng)閱讀本文,本文涵蓋了云、邊緣計(jì)算、容器、量子、區(qū)塊鏈、人工智能、深度學(xué)習(xí)、批處理、流式處理、數(shù)據(jù)庫(kù)、編程、軟件架構(gòu)、Web、App、低代碼、無(wú)代碼等重要方向。
本文最初發(fā)布于 Towards Data Science(《21 Predictions about the Software Development Trends in 2021》),由 InfoQ 翻譯并分享。
2020 年是近代史上史無(wú)前例的一年。人類在過(guò)去一百年中都沒(méi)有經(jīng)歷過(guò)像 COVID-19 這樣的全球性大流行病。它影響了我們星球上所有的國(guó)家、部門(mén)和幾乎所有的個(gè)人。
好消息是我們馬上就會(huì)擁有疫苗,終于可以滿懷樂(lè)觀和希望迎接新的 2021 年。對(duì)于軟件開(kāi)發(fā)行業(yè)來(lái)說(shuō),2020 年是意義重大的一年,在許多領(lǐng)域都取得了重大突破。COVID-19 顯著加快了數(shù)字化轉(zhuǎn)型,而且 2021 年的數(shù)字化轉(zhuǎn)型趨勢(shì)會(huì)更明顯。
一年以前,我寫(xiě)了一篇文章來(lái)預(yù)測(cè) 2020 年的軟件開(kāi)發(fā)趨勢(shì):
《20 個(gè) 2020 年軟件開(kāi)發(fā)趨勢(shì)預(yù)測(cè)》、
在軟件開(kāi)發(fā)行業(yè),一年幾乎就是一光年。我沒(méi)有更新舊帖子,而是創(chuàng)建了一個(gè)新的預(yù)測(cè)清單,預(yù)測(cè) 2021 年軟件開(kāi)發(fā)行業(yè)的重要技術(shù)趨勢(shì)。
做預(yù)測(cè)是一項(xiàng)有風(fēng)險(xiǎn)的任務(wù)。但是我會(huì)使用來(lái)自認(rèn)證來(lái)源的數(shù)據(jù)、圖表和事實(shí),根據(jù)過(guò)去來(lái)預(yù)測(cè)未來(lái)。如果你想要了解軟件行業(yè)在 2021 年有哪些變化,請(qǐng)閱讀本文。
1
集中式基礎(chǔ)設(shè)施:云,無(wú)處不在的云
在 COVID-19 期間,大部分行業(yè)遭受了沉重的打擊,盡管只有少數(shù)行業(yè)。云是朝陽(yáng)行業(yè),在大流行期間,它實(shí)際上比以往任何時(shí)候都更強(qiáng)大。如果在云應(yīng)用方面存在任何疑問(wèn)和不確定性,COVID-19 已經(jīng)消除了這一點(diǎn)。
像 Corona 這樣的全球性災(zāi)難表明,我們不僅需要云升級(jí)規(guī)模,也需要降低規(guī)模,例如,當(dāng)我們的服務(wù)需求顯著下降時(shí)。想想旅游和運(yùn)輸行業(yè),他們不得不維護(hù)昂貴的數(shù)據(jù)中心,盡管他們的市場(chǎng)下降了 90%。
Forrester 預(yù)測(cè),全球公有云 IT 基礎(chǔ)設(shè)施將在 2021 年增長(zhǎng) 35% 至 1200 億美元:
Amazon to help 29 million people grow their tech skills with free cloud computing skills training
https://go.forrester.com/blogs/predictions-2021-cloud-computing-powers-pandemic-recovery/
2
分散式基礎(chǔ)設(shè)施:邊緣計(jì)算將出現(xiàn)指數(shù)級(jí)增長(zhǎng)
在公有云中,我們希望有一個(gè)集中的數(shù)據(jù)中心來(lái)提供數(shù)據(jù)和計(jì)算能力。但在許多場(chǎng)景中,我們有相反的需求,例如,數(shù)據(jù)和計(jì)算能力接近終端用戶。有些是非常低的延遲(5 到 20ms)、高帶寬、監(jiān)管原因、實(shí)時(shí)用例、智能且強(qiáng)大的終端設(shè)備等等。
雖然邊緣計(jì)算是一個(gè)老概念,并且我們已經(jīng)在內(nèi)容交付網(wǎng)絡(luò) (Content Delivery Network,CDN) 中使用邊緣計(jì)算,但近年來(lái)它正變得越來(lái)越流行。隨著互聯(lián)車(chē)輛(自動(dòng)汽車(chē)、無(wú)人機(jī))、在線游戲、物聯(lián)網(wǎng)、智能設(shè)備和邊緣 AI/ML 的興起,邊緣計(jì)算將在 2021 年及以后成為一個(gè)巨大的市場(chǎng)。邊緣計(jì)算將在 2021 年成為關(guān)鍵的另一個(gè)原因是 5G 移動(dòng)設(shè)備的興起。
2021 年,兩個(gè)行業(yè)集團(tuán)將爭(zhēng)奪邊緣計(jì)算的市場(chǎng)份額。其中一個(gè)集團(tuán)是公有云提供商,例如亞馬遜、微軟、谷歌,如下所述:
Out on edge: The new cloud battleground isn't in the cloud at all - SiliconANGLE
https://siliconangle.com/2020/12/01/edge-new-cloud-battleground-isnt-cloud/
在這方面,亞馬遜是 AWS Snow family、AWS IoT Greengrass 等許多服務(wù)的領(lǐng)導(dǎo)者。微軟也提供 Azure Stack Edge、Azure Edge Zone 等邊緣計(jì)算服務(wù)。谷歌也使用 Google Anthos 將它的數(shù)據(jù)中心服務(wù)轉(zhuǎn)移到終端用戶。
另一個(gè)集團(tuán)是已經(jīng)具備邊緣基礎(chǔ)設(shè)施的行業(yè),例如電信公司、數(shù)據(jù)中心提供商、網(wǎng)絡(luò)提供商。如果它們能夠快速行動(dòng)并利用它們的優(yōu)勢(shì)(例如,現(xiàn)有的基礎(chǔ)設(shè)施),他們就有機(jī)會(huì)在這方面發(fā)揮領(lǐng)導(dǎo)作用;旌显铺峁┥ RedHat(IBM)憑借其混合云平臺(tái) OpenShift 和 OpenStack 的參與,將成為這里的關(guān)鍵選手。最近,三星與 IBM 合作開(kāi)發(fā)邊緣計(jì)算解決方案:
Samsung, IBM to Develop Edge Computing, 5G and Hybrid Cloud Solutions for Industry 4.0
https://www.thefastmode.com/technology-solutions/18721-samsung-ibm-to-develop-edge-computing-5g-and-hybrid-cloud-solutions-for-industry-4-0
State of the Edge 是為邊緣計(jì)算制定開(kāi)放標(biāo)準(zhǔn),使邊緣計(jì)算供應(yīng)商中立的倡議。最近 State of the Edge 成為了 Linux 基金會(huì)的一部分。與 CNCF 一樣,在 2021 年及以后,State of the Edge 也將獲得更多高光時(shí)刻。
請(qǐng)為 2021 年及以后邊緣計(jì)算領(lǐng)域的許多創(chuàng)新、融合、并肩戰(zhàn)斗和標(biāo)準(zhǔn)化做好準(zhǔn)備。
3
云:AWS 領(lǐng)先,但多云會(huì)是未來(lái)
在公有云供應(yīng)商中,誰(shuí)是領(lǐng)導(dǎo)者是毫無(wú)疑問(wèn)的。在 2020 年第三季度,亞馬遜以 32% 的市場(chǎng)份額領(lǐng)跑公有云市場(chǎng),如下所示:
Global cloud infrastructure market Q3 2020
https://www.canalys.com/newsroom/worldwide-cloud-market-q320
微軟在其云產(chǎn)品方面表現(xiàn)強(qiáng)勁,在 2020 年實(shí)現(xiàn)了 48% 的年度增長(zhǎng)。在 2020 年第三季度,微軟的市場(chǎng)份額為 19%,而它在 2019 年第三季度的市場(chǎng)份額為 17%。
目前,谷歌是第三大公有云提供商,在 2020 年第三季度的市場(chǎng)份額為 7%。
在 2021 年,亞馬遜和微軟將分別保持第一和第二的位置。然而,阿里巴巴將在 2021 年取代谷歌,因?yàn)樗?2020 年第三季度的市場(chǎng)份額為 6%,僅次于谷歌。
此外,多云倡議將在 2021 年獲得更大的發(fā)展勢(shì)頭。許多公司也轉(zhuǎn)向了多云策略。中情局(CIA)最近將其云合同授予了多個(gè)云供應(yīng)商而不是單個(gè)供應(yīng)商:
Microsoft, AWS among C2E cloud provider contract awardees - Washington Business Journal
https://www.bizjournals.com/washington/news/2020/11/20/microsoft-aws-among-c2e-cloud-contract-awardees.html
直到現(xiàn)在,亞馬遜還不愿意加入多云倡議來(lái)保護(hù)它的市場(chǎng)份額。但正如我們 10 年前在微軟身上看到的那樣,整個(gè)行業(yè)和社區(qū)比最大的單個(gè)公司更強(qiáng)大。最近,亞馬遜已經(jīng)悄然加入了多云倡議:
AWS quietly enters the multi-cloud era
https://www.protocol.com/manuals/new-enterprise/aws-multicloud-era
云原生計(jì)算基金會(huì)(Cloud Native Computing Foundation ,CNCF) 在多云運(yùn)動(dòng)中扮演著關(guān)鍵角色,可以說(shuō)已經(jīng)超過(guò)了 Linux 基金會(huì)。在 2021 年,我們可以看到 CNCF 有更多增長(zhǎng)。此外,像 HashiCorp 這樣的多云服務(wù)供應(yīng)商會(huì)變得更加重要。
一些突出的項(xiàng)目也提供了與流行的特定供應(yīng)商的云服務(wù)的 API 兼容性,例如 MinIO(提供兼容 AWS S3 的對(duì)象存儲(chǔ))。在 2021 年,將會(huì)有更多類似 MinIO 的倡議,這樣我們就可以輕松地切換受歡迎的供應(yīng)商的服務(wù)。
這對(duì)整個(gè)行業(yè)來(lái)說(shuō)是個(gè)好消息,正如我夢(mèng)想的那樣,公司可以在多個(gè)云上無(wú)縫部署它們的應(yīng)用程序。
4
容器化:Kubernets 稱王,Docker 將退場(chǎng)
容器化是云原生 IT 的核心技術(shù),無(wú)論是公有云、私有云,甚至是邊緣計(jì)算。幾年來(lái),Kubernetes 已經(jīng)成為領(lǐng)先的容器編排和管理技術(shù)。就像 Linux 之前統(tǒng)治著數(shù)據(jù)中心一樣,Kubernetes 也統(tǒng)治著公有云和私有云。起初,谷歌是 Kubernetes 背后的主導(dǎo)力量,但是現(xiàn)在幾乎所有的巨頭科技公司都支持 Kubernetes。
所有主要的公有云提供商現(xiàn)在都提供托管的 Kubernets 服務(wù)(Amazon EKS、Azure AKS、Google GKE)以及它們的托管容器化服務(wù)。另一方面,RedHat 正在使用 OpenShift 在私有云中提供托管的 Kubernetes 服務(wù)。
在 2021 年,我們將看到更多對(duì) Kubernetes 的采用,因?yàn)樗腔旌显苹蚨嘣茟?zhàn)略的核心組件。非傳統(tǒng)企業(yè)應(yīng)用程序,如 AI/ML、數(shù)據(jù)庫(kù)、數(shù)據(jù)平臺(tái)、無(wú)服務(wù)器和邊緣計(jì)算應(yīng)用程序也將轉(zhuǎn)移到 Kubernetes。
另一方面,Docker 正在慢慢失去它作為一種現(xiàn)代化技術(shù)的魅力。已經(jīng)有一些倡議來(lái)標(biāo)準(zhǔn)化容器格式和運(yùn)行時(shí),其中兩個(gè)在最近幾年得到了巨大的推動(dòng)。一方面是 Kubernetes 引領(lǐng)的容器運(yùn)行時(shí)接口(Container Runtime Interface,CRI)。另一方面是 Linux 基金會(huì)引領(lǐng)的開(kāi)放容器倡議(Open Container Initiative,OCI)。
最近,Kubernetes 棄用 Docker 而支持 CRI,并計(jì)劃在 2021 年的后續(xù) Kubernetes 版本(1.22)中完全移除 Docker:
Kubernetes to deprecate Docker container runtime in v1.22 - SD Times
https://sdtimes.com/kubernetes/kubernetes-to-deprecate-docker-container-runtime-in-v1-22/
由于 Kubernetes 是容器生態(tài)系統(tǒng)中的巨頭,2021 年將會(huì)是 Docker 終結(jié)的開(kāi)始。從好的方面看,CRI 和 OCI 在 2021 年會(huì)獲得更大的發(fā)展勢(shì)頭,尤其是基于 CRI 的容器將在 2021 年獲得巨大的爆發(fā)式增長(zhǎng)。
5
計(jì)算:量子計(jì)算將得到推動(dòng)
量子計(jì)算是這個(gè)清單上最具革命性的技術(shù)。就像數(shù)字計(jì)算機(jī)一樣,它有潛力影響每一個(gè)領(lǐng)域。我已經(jīng)創(chuàng)建了一份 2030 年代最熱技術(shù)的清單,而量子計(jì)算排名第一:
10 Predictions about the Software Development trends in the 2030s
https://towardsdatascience.com/10-predictions-about-the-software-development-trends-in-the-2030s-2fab86c5f661
換個(gè)角度看:如果我們把當(dāng)今最先進(jìn)的超級(jí)計(jì)算機(jī)當(dāng)作正常人類,例如,一名象棋選手或者一個(gè) 8 年級(jí)數(shù)學(xué)學(xué)生,那么量子計(jì)算就是像馬格努斯·卡爾斯(Magnus Carles)這樣的超級(jí)天才,他可以同時(shí)和 50 名普通象棋選手對(duì)弈,或者像歐拉(Euler)這樣的天才數(shù)學(xué)家。
在 2020 年,量子計(jì)算有了一些重大的突破和進(jìn)步。在 2020 年 6 月,霍尼韋爾(Honeywell)聲稱其創(chuàng)建了最強(qiáng)大的量子計(jì)算機(jī),打破了谷歌之前創(chuàng)造的記錄:
Honeywell Says It Has Built The World's Most Powerful Quantum Computer
https://www.forbes.com/sites/davidjeans/2020/06/19/honeywell-says-it-has-built-the-worlds-most-powerful-quantum-computer/?sh=b8772137cd46
許多政府和科技巨頭都在探索和投資量子計(jì)算。谷歌和 IBM 是這個(gè)領(lǐng)域的兩個(gè)最大的選手。谷歌甚至推出了一個(gè)開(kāi)源庫(kù) TensorFlow Quantum (TFQ),用于制作量子機(jī)器學(xué)習(xí)模型的原型:
Google launches TensorFlow for quantum computers
https://thenextweb.com/neural/2020/03/09/google-launches-tensorflow-for-quantum-computers/
亞馬遜也通過(guò)其 Amazon Braket 云服務(wù)提供托管的量子計(jì)算服務(wù)。
考慮到其巨大的利潤(rùn)和無(wú)限的可能性,2021 年計(jì)算機(jī)量子將有一些突破和驚人的發(fā)現(xiàn)。
如果你想要探索量子計(jì)算,那么你可以使用開(kāi)源 SDK qiskit,它還提供了免費(fèi)課程:
Qiskit Learn
https://qiskit.org/learn/
6
區(qū)塊鏈:過(guò)山車(chē)仍將繼續(xù)
區(qū)塊鏈 (分布式賬本) 也是近年來(lái)開(kāi)發(fā)的主要顛覆性技術(shù)之一。就技術(shù)而言,它有改變整個(gè)行業(yè)的潛力。雖然加密貨幣在普及這項(xiàng)技術(shù)方面發(fā)揮了重要作用。它在推動(dòng)這項(xiàng)技術(shù)走向 Gartner 的炒作周期曲線(Gartner’s Hype Cycle curve)的“期望膨脹期”方面也扮演了主要角色。
許多流氓實(shí)體利用比特幣 Bitcoin 的流行,制造詐騙項(xiàng)目來(lái)欺騙那些想在短時(shí)間內(nèi)暴富的普通人,F(xiàn)在,區(qū)塊鏈正經(jīng)歷炒作周期曲線的“幻滅低谷”。另外,政府正在干預(yù)加密貨幣來(lái)防止詐騙。最近,中國(guó)政府查獲了一個(gè)加密貨幣詐騙“Plus Token 龐氏騙局”:
Chinese Authorities Have Seized a Massive $4B in Crypto From PlusToken Scam - CoinDesk
https://www.coindesk.com/chinese-authorities-have-seized-a-massive-4-billion-in-crypto-from-plustoken-scam
Facebook 在 2019 年發(fā)布了它的加密貨幣 Libra,但在 2020 年面臨巨大的監(jiān)管壓力:
Facebook is shifting its Libra cryptocurrency plans after intense regulatory pressure
https://www.theverge.com/2020/3/3/21163658/facebook-libra-cryptocurrency-token-ditching-plans-calibra-wallet-delay
其它開(kāi)源區(qū)塊鏈,如以太坊(Ethereum),正在將代碼放入?yún)^(qū)塊中,使它能夠用于智能合約,這是區(qū)塊鏈的未來(lái)。
在 2021 年,區(qū)塊鏈將更多地作為一種智能合約機(jī)制使用,有望進(jìn)入“啟蒙斜坡(Slope of Englishtenment)”階段。區(qū)塊鏈將在 2021 年獲得重大爆發(fā),中國(guó)已經(jīng)將它納入其雄心勃勃的 50 萬(wàn)億“新基建”計(jì)劃:
Blockchain Officially Included in China's 50 Trillion "New Infrastructure" Plan | NEWS.8BTC.COM
https://news.8btc.com/blockchain-officially-included-in-chinas-50-trillion-new-infrastructure-plan
7
人工智能:AI 將惠及所有人
作為近來(lái)最熱門(mén)的技術(shù)之一,人工智能在 2020 年也取得了許多突破。另一個(gè)有意思的趨勢(shì)是,人工智能開(kāi)始以“全民 AI(AI for all)”的口號(hào)進(jìn)入所有領(lǐng)域。
在自然語(yǔ)言處理領(lǐng)域,GPT-3 是 2020 年 5 月取得的最大的突破。美國(guó)公司 OpenAI 創(chuàng)建了 GPT-3,使得使用深度學(xué)習(xí)創(chuàng)建類似人類的文本成為可能。僅僅過(guò)了 4 個(gè)月,當(dāng)《衛(wèi)報(bào)》用 GPT-3 撰寫(xiě)了以下文章時(shí),全世界都一起為之震驚:
A robot wrote this entire article. Are you scared yet, human? | GPT-3
https://www.theguardian.com/commentisfree/2020/sep/08/robot-wrote-this-article-gpt-3
在 2021 年,自然語(yǔ)言處理將取得突破性進(jìn)展,人工智能將撰寫(xiě)文章或編寫(xiě)小型應(yīng)用程序。
另一個(gè)有趣的發(fā)展是 AutoML 2.0,它支持工程自動(dòng)化。在 2021 年,全周期人工智能自動(dòng)化將取得重大進(jìn)展,人工智能將更加平民化。
人工智能并不是沒(méi)有偏見(jiàn)的,有道德的人工智能正變得越來(lái)越有吸引力。人工智能領(lǐng)域的另一個(gè)主要趨勢(shì)是可解釋的人工智能,即人工智能為什么做出某種決定需要一個(gè)解釋。在 2021 年,隨著歐盟對(duì)解釋人工智能的決定制定法規(guī),這些領(lǐng)域?qū)⑷〉弥卮筮M(jìn)展。
人工智能在 2021 年及以后也將在航空業(yè)得到廣泛應(yīng)用。就在幾天前,美國(guó)空軍用人工智能作為副駕駛來(lái)駕駛了一架飛機(jī):
U-2 Flies with Artificial Intelligence as Its Co-Pilot - Air Force Magazine
https://www.airforcemag.com/u-2-flies-with-artificial-intelligence-as-its-co-pilot/
人工智能也將成為未來(lái)中國(guó)數(shù)字基礎(chǔ)設(shè)施的核心:
AI is Key to China Infrastructure Plan, as is AI Talent
https://www.enterpriseai.news/2020/06/24/ai-key-to-china-infrastructure-plan-as-is-ai-talent/
預(yù)計(jì)到 2021 年,人工智能會(huì)有許多令人振奮的創(chuàng)新和平民化。
8
深度學(xué)習(xí)庫(kù):TensorFlow 2.0 和 PyTorch
谷歌和 Facebook 是深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)領(lǐng)域的兩大主導(dǎo)者。谷歌的主要業(yè)務(wù)是搜索能力,它是自然語(yǔ)言處理領(lǐng)域的領(lǐng)先創(chuàng)新者。Facebook 的主要業(yè)務(wù)是社交網(wǎng)絡(luò),它必須處理圖像、視頻和文本。在圖像處理領(lǐng)域,F(xiàn)acebook 是技術(shù)領(lǐng)導(dǎo)者,有許多創(chuàng)新。
出自谷歌的 TensorFlow 是深度學(xué)習(xí)領(lǐng)域的領(lǐng)先的庫(kù),但是 2016 年 Facebook 發(fā)布了 PyTorch 后一切都發(fā)生了變化。PyTorch 使用動(dòng)態(tài)圖而不是(TensorFlow 使用的)靜態(tài)圖,并且對(duì) Python 更加友好。作為回應(yīng),谷歌在 2019 年創(chuàng)建了 TensorFlow 2.0,復(fù)制了 PyTorch 的很多功能(動(dòng)態(tài)圖、對(duì) Python 友好)。它還與谷歌的 Collab 完美結(jié)合(Collab 是一款非,F(xiàn)代且功能強(qiáng)大的筆記本)。從那時(shí)起,谷歌的 TensorFlow 2.0 就越來(lái)越受歡迎。目前,根據(jù) Stack Overflow 開(kāi)發(fā)者調(diào)研 2020,TensorFlow 是最流行的深度學(xué)習(xí)框架:
圖片來(lái)源:Stack Overflow Developer Survey, 2020
另一方面,開(kāi)發(fā)人員喜歡用 PyTorch 工作,它以更好的開(kāi)發(fā)人員工效學(xué)而更受開(kāi)發(fā)人員的喜愛(ài):
圖片來(lái)源:Stack Overflow Developer Survey, 2020
在 2021 年,TensorFlow 2.0 和 PyTorch 將成為企業(yè)和社區(qū)的“首選”庫(kù)。擁有 TensorFlow 代碼庫(kù)或者想要使用 Collab 筆記本的企業(yè)應(yīng)該使用 TensorFlow 2.0。剛進(jìn)入深度學(xué)習(xí)或者想要繼續(xù)使用 Juypter 筆記本的企業(yè)或個(gè)人應(yīng)該選擇 PyTorch。
9
數(shù)據(jù)存儲(chǔ):一個(gè)尺寸不能填滿所有
現(xiàn)代數(shù)據(jù)庫(kù)的前景充滿選擇和廣泛的變化。我們有經(jīng)典的 SQL 數(shù)據(jù)庫(kù),主要是四大數(shù)據(jù)庫(kù):MySQL、 Oracle、 MS-SQL、 PostgreSQL。我們也有 NoSQL 數(shù)據(jù)庫(kù),主要由一系列數(shù)據(jù)庫(kù)組成:文檔、鍵值對(duì)、寬列、時(shí)間序列、搜索、圖。還有許多其它類型的數(shù)據(jù)存儲(chǔ)。
我們最近看到了所謂的全球分布式 ACID 事務(wù)數(shù)據(jù)庫(kù)或者 NewSQL 數(shù)據(jù)庫(kù)。谷歌憑借 Google Spanner 成為這個(gè)領(lǐng)域的領(lǐng)導(dǎo)者,Google Spanner 是首個(gè)水平讀 / 寫(xiě)可伸縮的 ACID 兼容數(shù)據(jù)庫(kù)。亞馬遜也有一個(gè)水平可擴(kuò)展 ACID 兼容數(shù)據(jù)庫(kù),Amazon Aurora,提供幾乎所有的 SQL 功能,但沒(méi)有水平寫(xiě)入伸縮。除了超大規(guī)模云提供商之外,CockroachDB 也是一個(gè)非常突出的 NewSQL 或分布式 SQL 數(shù)據(jù)庫(kù)。
在 2021 年,數(shù)據(jù)存儲(chǔ)生態(tài)系統(tǒng)將保持現(xiàn)在的樣子,有很多選擇。沒(méi)有一種數(shù)據(jù)庫(kù)可以滿足所有的目的。在 2021 年,選擇正確的數(shù)據(jù)也將是一個(gè)非常具有挑戰(zhàn)性的任務(wù),需要仔細(xì)考慮。
許多流行的數(shù)據(jù)庫(kù)已經(jīng)修改了它們的許可 (MongoDB、 Cassandra、 Redis、Kafka),因?yàn)槌?jí)規(guī)模的云提供商,尤其是亞馬遜,濫用了它們的創(chuàng)新,賺了錢(qián)卻沒(méi)有回報(bào)。這一趨勢(shì)在 2021 年將繼續(xù),其它初創(chuàng)公司或創(chuàng)新型公司將使用更嚴(yán)格的許可來(lái)保護(hù)他們免受云提供商的掠奪。
10
數(shù)據(jù)密集型計(jì)算:Spark 將繼續(xù)領(lǐng)先
就在幾年前,Hadoop 還是數(shù)據(jù)密集型計(jì)算或分布式批處理任務(wù)的默認(rèn)選擇。Apache Spark 目前是供應(yīng)商中立的分布式批處理任務(wù)平臺(tái)的首選,在大多數(shù)情況下幾乎取代了 Hadoop。
這一趨勢(shì)將在 2021 年繼續(xù),Spark 將被用作數(shù)據(jù)密集型計(jì)算的首選平臺(tái)。Spark 是一個(gè)基于 JVM 的系統(tǒng),需要非常大的資源,你將得到一份巨大的云賬單。但不幸的是,目前還沒(méi)有一個(gè)資源節(jié)約型的框架能匹配 Spark 的能力和成熟度。
所有主流的云提供商都有它們自己的云原生解決方案來(lái)進(jìn)行數(shù)據(jù)密集型計(jì)算。我的個(gè)人建議是在 2021 年使用 Spark 而不是特定的云解決方案,以避免供應(yīng)商鎖定。
11
實(shí)時(shí)流處理:Flink 將是明顯的選擇
近年來(lái),隨著企業(yè)拋棄傳統(tǒng)的 Lambda 架構(gòu),轉(zhuǎn)而使用實(shí)時(shí)流處理框架,實(shí)時(shí)流處理正變得越來(lái)越流行。
此外,這里存在兩種類型的框架。一種是以 Spark Streaming 為核心的基于微批量的平臺(tái)。另一種是以 Apache Flink 為核心的低延遲流處理平臺(tái)。
Apache Flink 在需要實(shí)時(shí)流處理(欺詐檢測(cè)、異常檢測(cè)、基于規(guī)則的警報(bào)、實(shí)時(shí)數(shù)據(jù)即時(shí)分析)的場(chǎng)景中超越了 Spark 流處理。
所有超大規(guī)模云提供商也提供了它們自己的解決方案。我建議在 2021 年選擇 Flink,而不是 Spark 或者專有云解決方案,因?yàn)樗趯?shí)時(shí)流處理方面具有無(wú)與倫比的能力。
12
數(shù)據(jù)平臺(tái):其他人將追隨 Snowflake
現(xiàn)代數(shù)據(jù)架構(gòu)相當(dāng)復(fù)雜。它包含數(shù)據(jù)源、ETL 管道、數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)湖、數(shù)據(jù)分析工具以及許多其它組件。下面是企業(yè)數(shù)據(jù)平臺(tái)(ABM AMRO 的數(shù)據(jù)平臺(tái))的一個(gè)示例:
https://medium.com/abn-amro-developer/abn-amros-data-integration-architecture-f33506a211c3
Snowflake 通過(guò)提供一個(gè)集中的數(shù)據(jù)源、單平臺(tái),以及在它上面構(gòu)建許多不同的工作負(fù)載,從而徹底改變了現(xiàn)代數(shù)據(jù)架構(gòu)。在經(jīng)典架構(gòu)中,數(shù)據(jù)需要在不同的平臺(tái)上轉(zhuǎn)移,但在 Snowflake 中只有一個(gè)數(shù)據(jù)的“信源”。
這不是適用于所有情況的完美案例。但是對(duì)于大部分情況,這將普及并賦能數(shù)據(jù)平臺(tái)和數(shù)據(jù)倉(cāng)庫(kù)。正如甲骨文的 CEO 拉里·埃里森(Larry Ellison)所說(shuō),它已經(jīng)動(dòng)搖了數(shù)據(jù)倉(cāng)庫(kù)市場(chǎng):
Oracle's Larry Ellison Admits Snowflake Is a Killer: 'It's Killing Amazon Redshift'
https://cloudwars.co/oracle/oracles-larry-ellison-admits-snowflake-is-killing-amazon-redshift/
在 2021 年,我預(yù)期更多的創(chuàng)新將為企業(yè)案例帶來(lái)像 Snowflake 一樣的單數(shù)據(jù)平臺(tái)。這對(duì)于許多公司將是一個(gè)巨大的幫助并改變游戲規(guī)則。
13
快速應(yīng)用開(kāi)發(fā):低代碼 / 無(wú)代碼將擴(kuò)展
快速的數(shù)字化轉(zhuǎn)型正創(chuàng)造巨大的軟件工程師供需缺口。盡管越來(lái)越多的新工程師加入這個(gè)行業(yè),但仍然不夠。近年來(lái),低代碼 / 無(wú)代碼倡議的勢(shì)頭正越來(lái)越強(qiáng)勁。
市場(chǎng)上有許多低代碼 / 無(wú)代碼平臺(tái),主要是在 Web 開(kāi)發(fā)領(lǐng)域,例如 Bubble。它們的成功也為 LCNC 在其它領(lǐng)域的開(kāi)發(fā)鋪平了道路:無(wú)代碼應(yīng)用程序開(kāi)發(fā)、無(wú)代碼人工智能、無(wú)代碼機(jī)器學(xué)習(xí)。LCNC 工具可以通過(guò)如下所述的好主意促進(jìn)業(yè)務(wù)或人員的發(fā)展:
Low-code platforms will save your business. Here's how.
https://www.techrepublic.com/article/low-code-platforms-will-save-your-business-heres-how/
而且,正如我去年預(yù)測(cè)的一樣,公有云提供商正提供 LCNC 服務(wù)。微軟提供 Power Apps,谷歌提供 AppSheet,AWS 提供 Honeycode 作為一個(gè) LCNC 平臺(tái)來(lái)快速構(gòu)建應(yīng)用程序。
在 2021 年,LCNC 將成為激烈競(jìng)爭(zhēng)的領(lǐng)域之一,有許多創(chuàng)新、合并和收購(gòu)。如果你是一個(gè)擁有偉大想法的個(gè)人或企業(yè),請(qǐng)關(guān)注 2021 年的 LCNC。
14
軟件架構(gòu):微服務(wù)、單體式、無(wú)服務(wù)器將共存
近年來(lái),微服務(wù)架構(gòu)成為大型企業(yè)應(yīng)用程序開(kāi)發(fā)的首選。然而,設(shè)計(jì)微服務(wù)應(yīng)用程序比設(shè)計(jì)“一刀切”單體應(yīng)用程序要復(fù)雜得多。微服務(wù)架構(gòu)需要一組最佳實(shí)踐,正如我在下面這篇文章中所列出的:
Effective Microservices: 10 Best Practices
https://towardsdatascience.com/effective-microservices-10-best-practices-c6e4ba0c6ee2
像其它軟件架構(gòu)一樣,微服務(wù)也有它擅長(zhǎng)的用例和失敗的案例。它還需要一套設(shè)計(jì)模式,我總結(jié)如下:
Microservice Architecture and its 10 Most Important Design Patterns
https://towardsdatascience.com/microservice-architecture-and-its-10-most-important-design-patterns-824952d7fa41
最近,由于微服務(wù)架構(gòu)的復(fù)雜性和在某些用例中的失敗,人們對(duì)它產(chǎn)生了強(qiáng)烈的反感。Kelsey Hightower 在下面的推特中總結(jié)了對(duì)微服務(wù)的批評(píng):
這與我們幾年前所看的趨勢(shì)形成鮮明對(duì)比,當(dāng)時(shí)單體架構(gòu)受到批評(píng)并被視為過(guò)時(shí)的。實(shí)際上,單體架構(gòu)也是一種很好的架構(gòu),它特別適合我在下面這篇文章中提到的用例:
Looking Beyond the Hype: Is Modular Monolithic Software Architecture Really Dead?
https://towardsdatascience.com/looking-beyond-the-hype-is-modular-monolithic-software-architecture-really-dead-e386191610f8
另一個(gè)近年來(lái)大肆宣傳的軟件架構(gòu)是無(wú)服務(wù)器架構(gòu)(Serverless Architecture)。亞馬遜開(kāi)創(chuàng)了無(wú)服務(wù)器計(jì)算的先河,推出了開(kāi)創(chuàng)性的 AWS Lambda 服務(wù),開(kāi)發(fā)人員只編寫(xiě)代碼,服務(wù)提供商托管服務(wù)器。這個(gè)架構(gòu)也有人炒作,有人批評(píng)。像單體架構(gòu)和微服務(wù)架構(gòu)一樣,無(wú)服務(wù)器架構(gòu)也不是萬(wàn)能的,應(yīng)該用在它適合的地方(例如,事件驅(qū)動(dòng)和突發(fā)負(fù)載)。
在 2021 年,所有的軟件架構(gòu)(單體架構(gòu)、微服務(wù)、無(wú)服務(wù)器)都將共存,因?yàn)樗鼈兌加懈髯缘挠美蛢?yōu)缺點(diǎn)。我建議在大型企業(yè)開(kāi)發(fā)中選擇微服務(wù)架構(gòu)(傳統(tǒng)上使用 SOA),在小型開(kāi)發(fā)中使用單體架構(gòu),在事件驅(qū)動(dòng)和突發(fā)負(fù)載中選擇無(wú)服務(wù)器架構(gòu)。
15
編程(主流):Python 和 JavaScript 將引領(lǐng)潮流
近些年,編程語(yǔ)言領(lǐng)域也經(jīng)歷了重大變化。傳統(tǒng)的偏重的編程語(yǔ)言的市場(chǎng)份額正逐漸被更簡(jiǎn)單且對(duì)開(kāi)發(fā)人員更友好的編程語(yǔ)言所占據(jù)。在 2020 年 1 月,我對(duì)需求中的語(yǔ)言進(jìn)行了廣泛的分析,將 Python 和 JavaScript 分別放在第一位和第二位:
Top 10 In-Demand programming languages to learn in 2020
https://towardsdatascience.com/top-10-in-demand-programming-languages-to-learn-in-2020-4462eb7d8d3e
最后,最受歡迎的編程語(yǔ)言排名網(wǎng)站 TIOBE 承認(rèn)了這一變化,并將 Python 置于 Java 之上:
TIOBE Index: Python slithers ahead of Java for the first time
https://developer-tech.com/news/2020/nov/06/tiobe-index-python-ahead-java-first-time/
隨著軟件開(kāi)發(fā)行業(yè)的蓬勃發(fā)展,以及大量新開(kāi)發(fā)人員加入這個(gè)行業(yè),更簡(jiǎn)單、對(duì)開(kāi)發(fā)人員更友好的編程語(yǔ)言將在 2021 年更受歡迎。
Python 是數(shù)據(jù)科學(xué)中排名第一的編程語(yǔ)言,在除了底層編程之外的幾乎所有其它領(lǐng)域也都是排名第二或第三的編程語(yǔ)言。
JavaScript 是 Web 開(kāi)發(fā)領(lǐng)域毫無(wú)爭(zhēng)議的頭號(hào)語(yǔ)言,在其它領(lǐng)域(包括后端開(kāi)發(fā))中也越來(lái)越流行。它也是初學(xué)者的絕佳語(yǔ)言。
Java 正慢慢喪失其作為最流行的編程語(yǔ)言的受歡迎程度。然而,由于其傳奇般的向后兼容性和不斷更新(6 個(gè)月的發(fā)布周期,polyglot Virtual Machine GraalVM),它仍然是企業(yè)軟件開(kāi)發(fā)的首選編程語(yǔ)言。
C++ 是另一個(gè)近年來(lái)發(fā)生了重大變化的主流編程語(yǔ)言。幾天前剛剛發(fā)布了 C++20,它將完全改變 C++ 截至目前的編程方式。這是近年來(lái)最具破壞性的 C++ 版本之一,將極大地影響其在 2021 年及以后的流行度。
在 2021 年,主流編程語(yǔ)言將保持它們的地位,盡管它們會(huì)感受到來(lái)自現(xiàn)代編程語(yǔ)言的壓力。
16
編程(現(xiàn)代):Rust 終將到來(lái)
最近幾年,編程領(lǐng)域的另一個(gè)有趣的趨勢(shì)是現(xiàn)代編程語(yǔ)言的興起。比較老的語(yǔ)言存在過(guò)去的包袱,不能快速變遷(Java),或者通過(guò)增加越來(lái)越多的功能而變得臃腫且令人望而卻步(C++)。
現(xiàn)代的比較新的編程語(yǔ)言沒(méi)有過(guò)去的包袱,能夠滿足當(dāng)今開(kāi)發(fā)者的需求。它們大多非常關(guān)注開(kāi)發(fā)人員的工效學(xué),支持現(xiàn)代功能,例如類型推理、null 安全性、表達(dá)力強(qiáng)、簡(jiǎn)潔。其中許多還被設(shè)計(jì)來(lái)利用現(xiàn)代硬件和現(xiàn)代基礎(chǔ)設(shè)施(云、多核、GPU、TPU)。
以 Rust、 Go、 Kotlin、 Swift、 TypeScript 為首的現(xiàn)代編程語(yǔ)言正日益流行,正如我在下面這篇帖子中預(yù)測(cè)的那樣:
Top 7 Modern programming languages to learn now
https://towardsdatascience.com/top-7-modern-programming-language-to-learn-now-156863bd1eec
這一趨勢(shì)將在 2021 年繼續(xù),因?yàn)樗鼈兪窃鲩L(zhǎng)最快的語(yǔ)言之一。
其中,隨著行業(yè)的注意,Rust 將在 2021 年取得突破。在過(guò)去 5 年中,根據(jù) Stack Overflow 開(kāi)發(fā)者調(diào)研,它是最受喜愛(ài)的編程語(yǔ)言:
科技巨頭終于在安全敏感的復(fù)雜項(xiàng)目中使用 Rust 而不是 C/C++。微軟最近聲明,他們將使用 Rust 來(lái)修復(fù)安全漏洞:
Microsoft: Here's why we love programming language Rust and kicked off Project Verona | ZDNet
https://www.zdnet.com/article/microsoft-heres-why-we-love-programming-language-rust-and-kicked-off-project-verona/
就在幾周前,亞馬遜宣布大力投入 Rust 并解釋了他們這樣做的原因:
Amazon AWS Invests In Rust
https://www.i-programmer.info/news/98-languages/14183-amazon-aws-invests-in-rust.html
谷歌的 Go 已經(jīng)是主流且成熟的編程語(yǔ)言。隨著 Go 2 release 規(guī)劃的大量改進(jìn),它將在未來(lái)獲得更多人氣。
JetBrain 的 Kotlin 已經(jīng)成為 JVM 生態(tài)系統(tǒng)中第二流行的類型化編程語(yǔ)言。在 Android 應(yīng)用開(kāi)發(fā)中,它已經(jīng)超過(guò)了 Java:
Android's commitment to Kotlin
https://android-developers.googleblog.com/2019/12/androids-commitment-to-kotlin.html
微軟的 TypeScript 已經(jīng)成為 JavaScript 的類型化替代品。最近,隨著許多復(fù)雜項(xiàng)目(例如 Deno、 Vue.js)選擇 TypeScript 而不是 JavaScript,它的流行度大幅躍升:
TypeScript Surges in GitHub Octoverse 2020 Report -- Visual Studio Magazine
https://visualstudiomagazine.com/articles/2020/12/03/octoverse-2020.aspx
蘋(píng)果公司的 Swift 已經(jīng)取代 Objective-C,成為 macOS 和 iOS 的首選編程語(yǔ)言。它在其它領(lǐng)域也有被采用。
在科技巨頭的支持下,預(yù)計(jì)包括 Rust 在內(nèi)的現(xiàn)代編程語(yǔ)言將在 2021 年獲得更多吸引力和普及使用。
17
客戶端 Web 框架:React 將繼續(xù)統(tǒng)治
大多數(shù)面向用戶的企業(yè)應(yīng)用程序是 Web 應(yīng)用或移動(dòng)應(yīng)用。在 Web 開(kāi)發(fā)中,基于 JavaScript/TypeScript 的客戶端 Web 框架已經(jīng)占據(jù)主導(dǎo)地位很多年了。趨勢(shì)是使用 JavaScript 框架進(jìn)行 UI 開(kāi)發(fā),使用服務(wù)端框架進(jìn)行后端開(kāi)發(fā),其中前后端是分離的服務(wù)。
Facebook 的 React 在客戶端 Web 框架中處于領(lǐng)先地位。它是行業(yè)中引領(lǐng)潮流且應(yīng)用最廣泛的框架。如果你想了解更多關(guān)于基于 JavaScript 的客戶端框架,可以閱讀我下面這篇文章:
Top 5 In-Demand JavaScript Frameworks for Front-End Development in 2020
https://medium.com/javascript-in-plain-english/top-5-in-demand-javascript-frameworks-for-front-end-development-in-2020-a59c4340d082
如下圖所示,React 是目前下載量最多的客戶端 JavaScript 框架:
圖片來(lái)源:NPM trends
盡管如此,最流行的 Web 框架并不是 React,而是另一個(gè)基于 JavaScript 的 Web 框架——Vue.js:
圖片來(lái)源:作者
Vue.js 在中國(guó)也是頭號(hào)框架,因?yàn)?Vue.js 的創(chuàng)造者(尤雨溪,Evan You)是一名華人前谷歌開(kāi)發(fā)者。不幸的是,這種與中國(guó)的聯(lián)系引起了大企業(yè)的安全擔(dān)憂,Vue.js 在美國(guó) / 歐洲的采用率比較低。
谷歌的 Angular 落后于 React 和 Vue.js,但仍然是一個(gè)穩(wěn)定的框架。然而,最近最具革命性的 Web 框架是 Svelte。與其它框架不一樣,Svelte 是一個(gè)非運(yùn)行時(shí)框架,專注于編譯步驟。
在 2021 年,所有主流的基于 JavaScript 的框架都將彼此學(xué)習(xí),吸收其它框架的特性。在 2021 年,它們將更加趨同。
18
服務(wù)端 Web 框架:面向企業(yè)的 Spring 和 ASP.NET
服務(wù)器端框架是端到端框架,提供端到端 Web 開(kāi)發(fā),包括服務(wù)端渲染的視圖層。但是正如之前所說(shuō),如今的趨勢(shì)是只在后端使用它們。
基于 JVM 的 Spring 框架在企業(yè)開(kāi)發(fā)領(lǐng)域是排名第一的服務(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è)的頭號(hào)后端框架。在之前的一篇文章中,我將 Spring 作為排名第一的服務(wù)端 Web 框架。
Top 10 In-Demand Web Development Frameworks in 2021
https://towardsdatascience.com/top-10-in-demand-web-development-frameworks-in-2021-8a5b668be0d6
微軟的 ASP.NET Core 是另一個(gè)引人注目的 Web 框架,與流行的 JavaScript 框架(React、Vue.js、Angular)無(wú)縫協(xié)作。在 2021 年,ASP.NET Core 將成為企業(yè)服務(wù)端開(kāi)發(fā)的主要選手。
許多初創(chuàng)公司和小型公司都希望有一個(gè)包括視圖層的端到端框架,以便快速開(kāi)發(fā)應(yīng)用程序。基于 Python 的 Django、 PHP Laravel 和 Ruby on Rails 在 2021 年將成為他們的絕佳選項(xiàng)。
19
App 開(kāi)發(fā):原生 App 將繼續(xù)占據(jù)主導(dǎo)地位
智能手機(jī)現(xiàn)在是我們?nèi)粘I畹囊徊糠。智能手機(jī)用戶已經(jīng)達(dá)到 35 億,明年將達(dá)到 38 億:
因此,移動(dòng)應(yīng)用對(duì)于終端用戶越來(lái)越重要,尤其是對(duì)于年輕一代來(lái)說(shuō)。
在移動(dòng)應(yīng)用開(kāi)發(fā)領(lǐng)域,有 4 個(gè)主要趨勢(shì):原生應(yīng)用開(kāi)發(fā)、跨平臺(tái)應(yīng)用開(kāi)發(fā)、混合應(yīng)用開(kāi)發(fā)和基于云的應(yīng)用開(kāi)發(fā)。
原生應(yīng)用開(kāi)發(fā)提供了最高的靈活性,擁有最好的性能和用戶體驗(yàn)。但由于企業(yè)需要保留兩個(gè)獨(dú)立的團(tuán)隊(duì),因此開(kāi)發(fā)成本最高。
跨平臺(tái)應(yīng)用開(kāi)發(fā)正變得越來(lái)越流行,因?yàn)?iOS 和 Android 應(yīng)用開(kāi)發(fā)可以使用相同的代碼庫(kù)。盡管開(kāi)發(fā)成本低,但是不夠靈活,性能也不如原生應(yīng)用。
近年來(lái),基于云的應(yīng)用變得越來(lái)越流行,其數(shù)據(jù)和主要業(yè)務(wù)邏輯保存在云端。特定設(shè)備的瘦客戶端被開(kāi)發(fā)來(lái)連接云端并從中獲取數(shù)據(jù)。雖然對(duì)于數(shù)據(jù)密集的應(yīng)用程序是一個(gè)不錯(cuò)的選擇,但對(duì)于普通應(yīng)用開(kāi)發(fā)來(lái)說(shuō),它還不是主流。
盡管跨平臺(tái)應(yīng)用開(kāi)發(fā)正迎頭趕上,原生應(yīng)用開(kāi)發(fā)仍然是企業(yè)普通應(yīng)用開(kāi)發(fā)的更好的選擇。在 2021 年,一般企業(yè)將偏愛(ài)原生應(yīng)用開(kāi)發(fā),而初創(chuàng)企業(yè)和小公司將偏愛(ài)跨平臺(tái)應(yīng)用開(kāi)發(fā)。
20
跨平臺(tái)應(yīng)用開(kāi)發(fā):React Native 將占據(jù)主導(dǎo)地位,但 Flutter 將迎頭趕上
跨平臺(tái)應(yīng)用開(kāi)發(fā)正變得越來(lái)越流行,因?yàn)樗拈_(kāi)發(fā)成本比較低。市場(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í),隨處編寫(xiě)。”Facebook 正積極開(kāi)發(fā) React Native,用 27 億 Facebook 用戶測(cè)試其功能。如果一家企業(yè)已經(jīng)用了 React 來(lái)進(jìn)行 Web 開(kāi)發(fā)和 React Native 來(lái)進(jìn)行 App 開(kāi)發(fā),它們可以在 Web 和移動(dòng)開(kāi)發(fā)中共享組件和代碼庫(kù)。另外,React Native 是基于 JavaScript 的,而 JavaScript 是最流行的編程語(yǔ)言之一。目前,React Native 比 Flutter 流行得多
在 2021 年,React 將主導(dǎo)跨平臺(tái)應(yīng)用開(kāi)發(fā),因?yàn)?React 和 React Native 的性能會(huì)有一個(gè)重大更新。
谷歌的 Flutter 是一個(gè)相對(duì)比較新的框架,但近年來(lái)非常流行。它提供了一個(gè)功能強(qiáng)大的 UI 工具箱,用來(lái)從單一代碼庫(kù)構(gòu)建漂亮的原生編譯的移動(dòng)、桌面和 Web 應(yīng)用程序。然而,F(xiàn)lutter 還不像 React 那樣是 Web 開(kāi)發(fā)中的主流框架。Flutter 使用了一種現(xiàn)代編程語(yǔ)言——Dart,一種快速發(fā)展的效率非常高的編程語(yǔ)言。就性能而言,F(xiàn)lutter 比 React 有優(yōu)勢(shì)。它還提供了更好的開(kāi)發(fā)者工效學(xué),而且開(kāi)發(fā)人員喜歡使用 Flutter 工作:
與 Facebook 全力支持 React Native 不同,谷歌在 Web 和 App 開(kāi)發(fā)方面有很多框架(例如,用于 Web 開(kāi)發(fā)的 Angular),沒(méi)有把所有精力都放在 Flutter 和 Dart 上。
綜上所述,我預(yù)測(cè) React Native 將在 2021 年繼續(xù)領(lǐng)先 Flutter,因?yàn)?Facebook 正計(jì)劃對(duì) React 生態(tài)系統(tǒng)(React Native 的致命弱點(diǎn))進(jìn)行重大性能提升。
21
API: REST 面向業(yè)務(wù)應(yīng)用
微服務(wù)架構(gòu)和無(wú)服務(wù)器近些年正變得越來(lái)越流行。微服務(wù)或納米服務(wù)需要通信,通常,同步通信用得比事件驅(qū)動(dòng)的異步通信多。即使傳統(tǒng)的單體應(yīng)用是通過(guò)異步通信進(jìn)行通信的。
REST 是 2020 年最主要的 API 技術(shù)。REST 是一種基于 Web 技術(shù)的通信標(biāo)準(zhǔn)。它在行業(yè)中已經(jīng)有相當(dāng)一段時(shí)間了(20 年)。REST 和 SOAP 幾乎同時(shí)出現(xiàn),但當(dāng) SOAP 幾乎被認(rèn)為是遺留技術(shù)時(shí),REST 將繼續(xù)統(tǒng)治。無(wú)論是大型企業(yè)還是小型初創(chuàng)公司,都在使用 REST。在 2021 年,REST 仍將占據(jù)主導(dǎo)地位。
在 API 開(kāi)發(fā)領(lǐng)域,也有一些優(yōu)秀的候選者。最突出的是谷歌的 gRPC。與 REST 不同,gRPC 是一個(gè)類似 SOAP 的 RPC 協(xié)議。谷歌吸取了舊 RPC 協(xié)議的教訓(xùn),創(chuàng)建了適合現(xiàn)代軟件開(kāi)發(fā)需求的 gRPC。gRPC 使用高性能的消息格式 Protocol Buffers(也是由谷歌開(kāi)發(fā)),而不是 JSON。因此,與 REST 相比,gRPC 性能更高、可讀性更差。在機(jī)器對(duì)機(jī)器的通信中,這是比較好的選擇。
另一種越來(lái)越流行的 API 技術(shù),尤其是對(duì)于 UI 開(kāi)發(fā)者,是 Facebook 的 GraphQL。通常,UI 需要對(duì)后端進(jìn)行大量 API 調(diào)用來(lái)獲取所有它所需的數(shù)據(jù)。GraphQL 允許聚合 API 來(lái)減少 UI 和后端之間的通信。GraphQL 的一個(gè)主要缺點(diǎn)是,它不適合高安全性要求的開(kāi)發(fā)。
這三者實(shí)際上都有各自的用例,可以相互補(bǔ)充,這種趨勢(shì)將在 2021 年繼續(xù)。
22
結(jié)論
這里,我使用了當(dāng)前的趨勢(shì)、數(shù)據(jù)和事實(shí)對(duì) 2021 年最重要的軟件開(kāi)發(fā)趨勢(shì)進(jìn)行了 21 個(gè)預(yù)測(cè)。整個(gè)軟件開(kāi)發(fā)行業(yè)要大得多,我無(wú)法涵蓋所有重要的領(lǐng)域。
另外,我還簡(jiǎn)要地討論了一些話題,例如數(shù)據(jù)存儲(chǔ),它需要一篇單獨(dú)的文章。另一方面,我詳細(xì)寫(xiě)了一些話題。另一個(gè)有趣的事實(shí)是,科技四巨頭:谷歌、Facebook、亞馬遜和微軟,是如何主導(dǎo)幾乎所有的軟件開(kāi)發(fā)領(lǐng)域的。我希望這篇文章能讓你 360 度地了解 2021 年的軟件開(kāi)發(fā)趨勢(shì)。
作者介紹
Md Kamaruzzaman 軟件架構(gòu)師 | 技術(shù)作家 | 全棧 | 云 | 大數(shù)據(jù)
原文鏈接
https://towardsdatascience.com/21-predictions-about-the-software-development-trends-in-2021-600bfa048be