2022年軟件開發(fā)趨勢(shì)的22個(gè)預(yù)測(cè)
在經(jīng)歷了災(zāi)難性的、受大流行影響的2020年之后,2021年是人類的復(fù)原力和反擊年。由于技術(shù)的進(jìn)步,各國(guó)能夠?yàn)槿藗兇笠?guī)模地接種疫苗。對(duì)于軟件開發(fā)和IT行業(yè)來(lái)說(shuō),2021年是一個(gè)重要的年份,正如預(yù)期。
2022年,冠狀病毒變異和高科技促成的疫苗研究之間將出現(xiàn)一場(chǎng)進(jìn)化的軍備競(jìng)賽。對(duì)于軟件開發(fā)行業(yè)來(lái)說(shuō),目前的數(shù)字化趨勢(shì)將繼續(xù)下去,出現(xiàn)許多變化、創(chuàng)新和現(xiàn)有技術(shù)的新用途。
預(yù)測(cè)未來(lái)是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。像過(guò)去兩年一樣,我在這里預(yù)測(cè)2022年軟件發(fā)展的最重要趨勢(shì)。
1. 集中式基礎(chǔ)設(shè)施:云是新的規(guī)范
就像西方世界的幾個(gè)巨型大超市取代當(dāng)?shù)厣痰暌粯?,公共云將繼續(xù)取代區(qū)域性的數(shù)據(jù)中心。在未來(lái)幾年里,公共云也將成為企業(yè)、政府和初創(chuàng)企業(yè)的首選基礎(chǔ)設(shè)施。公共云現(xiàn)在是數(shù)字創(chuàng)新的溫床,這一趨勢(shì)將在2022年繼續(xù)。公共云在安全、區(qū)塊鏈的民主化方面也發(fā)揮著重要作用,并將許多創(chuàng)新以一種可獲得的方式帶給客戶。
Gartner預(yù)測(cè),2022年公共云的收入將增長(zhǎng)16%。
所以,如果你是數(shù)字公司的決策者,現(xiàn)在是時(shí)候認(rèn)真對(duì)待云計(jì)算了。如果你是一名工程師,請(qǐng)通過(guò)創(chuàng)建一個(gè)免費(fèi)賬戶或參加MOOC課程開始學(xué)習(xí)云計(jì)算。
2. 分散的基礎(chǔ)設(shè)施:邊緣的云
與公共云不同的是,我們希望將存儲(chǔ)、計(jì)算能力和AI/ML放在一個(gè)中心位置(可用區(qū)、區(qū)域),邊緣計(jì)算將存儲(chǔ)、計(jì)算能力和AI/ML帶到客戶附近。低延遲場(chǎng)景(游戲)、網(wǎng)絡(luò)帶寬差(離岸站點(diǎn))、沒(méi)有網(wǎng)絡(luò)、監(jiān)管要求、實(shí)時(shí)用例(聯(lián)網(wǎng)車輛)、智能和強(qiáng)大的設(shè)備(物聯(lián)網(wǎng))是需要邊緣計(jì)算的場(chǎng)景。
隨著5G、Web 3.0和其他技術(shù)創(chuàng)新的興起,邊緣計(jì)算將在2022年及以后繼續(xù)看到廣泛的應(yīng)用。同時(shí),零售商將在未來(lái)幾年大規(guī)模采用邊緣計(jì)算。
像AWS、Azure和GCP這樣的公共云供應(yīng)商也在通過(guò)提供許多邊緣計(jì)算服務(wù)而處于領(lǐng)先地位。
一項(xiàng)新的倡議,即"State of the Edge,"是為了實(shí)現(xiàn)邊緣計(jì)算的標(biāo)準(zhǔn)化。
3. 公共云:多云將獲得更多的動(dòng)力
采用公共云的一個(gè)主要問(wèn)題是供應(yīng)商鎖定。一旦你把你的基礎(chǔ)設(shè)施、存儲(chǔ)和計(jì)算轉(zhuǎn)移到公共云供應(yīng)商,你就被供應(yīng)商鎖定了。許多企業(yè)試圖明智地使用多個(gè)供應(yīng)商以避免供應(yīng)商鎖定。不幸的是,這只是用多個(gè)供應(yīng)商而不是一個(gè)供應(yīng)商鎖定了企業(yè)。如果你不能在另一個(gè)公有云中使用一個(gè)公有云(如CosmosDB、AWS S3、BigTable),總會(huì)有供應(yīng)商鎖定的情況。
幸運(yùn)的是,現(xiàn)在有一種反向趨勢(shì),即提供與廣泛的公共云服務(wù)的API兼容的服務(wù)。MinIO(與S3兼容)、Aviatrix(云原生網(wǎng)絡(luò))、Volterra(分布式云服務(wù))、LightOS(云原生存儲(chǔ))是眾多致力于提供云中立性的服務(wù)之一。
此外,谷歌正在努力將其流行的服務(wù)(BigQuery)引入其他公共云(AWS、Azure)。
4. 容器:Kubernetes將進(jìn)入后臺(tái),而Docker將反彈
容器化是現(xiàn)代IT行業(yè)的關(guān)鍵技術(shù)。Kubernetes在容器化的普及和民主化方面發(fā)揮了巨大作用。由于巨大的努力、精心的設(shè)計(jì)和實(shí)施,Kubernetes現(xiàn)在是一項(xiàng)堅(jiān)如磐石的技術(shù)。它所扮演的角色與Linux在服務(wù)器世界中扮演的角色相同。由于其高瞻遠(yuǎn)矚的設(shè)計(jì)(Operator、Volumn),Kubernetes可以用于許多用例,而不會(huì)引入破壞性的變化。
隨著Kubernetes的成熟,在未來(lái)幾年內(nèi),Kubernetes的牽引力將減少。不要誤會(huì)我的意思,Kubernetes將是現(xiàn)代軟件開發(fā)的引擎。但我們將看到更多關(guān)于Kubernetes的新采用和用例的牽引力,而Kubernetes本身由于其成熟度,將緩慢發(fā)展。
與Kubernetes一樣,Docker也在容器化方面發(fā)揮了舉足輕重的作用。不幸的是,該公司在全盛時(shí)期努力使Docker貨幣化。Docker最近宣布從2022年起采用新的訂閱模式。
它的定價(jià)模式是可以承受的。考慮到它對(duì)現(xiàn)代云原生開發(fā)的貢獻(xiàn),我祝愿Docker在其新的訂閱模式下取得成功。
5. 網(wǎng)絡(luò)安全:每個(gè)人都會(huì)認(rèn)真對(duì)待安全問(wèn)題
網(wǎng)絡(luò)安全對(duì)于初創(chuàng)企業(yè)或中型公司來(lái)說(shuō)就像 "房間里的大象"。他們可以看到對(duì)網(wǎng)絡(luò)安全的需求,但由于缺乏資源,無(wú)法正確實(shí)施。只有大型企業(yè)才能負(fù)擔(dān)得起專門的安全團(tuán)隊(duì)。
公共云供應(yīng)商最重要的優(yōu)勢(shì)之一是,他們已經(jīng)使網(wǎng)絡(luò)安全民主化。現(xiàn)在,利用公共云服務(wù),初創(chuàng)企業(yè)或中等規(guī)模的公司可以不費(fèi)吹灰之力實(shí)施高度安全的應(yīng)用程序。
公有云安全的一個(gè)缺點(diǎn)是,如果它被破壞,那么數(shù)百萬(wàn)的公司將受到影響。2021年,公共云有一些高調(diào)的安全漏洞。
2022年,公共云和Linux將更努力地與安全工作。
另一個(gè)關(guān)于安全的問(wèn)題是目前的開源開發(fā)模式。一個(gè)開發(fā)者往往在業(yè)余時(shí)間開發(fā)一個(gè)重要的核心模塊/庫(kù)。不幸的是,如果這個(gè)模塊/庫(kù)被破壞了,那么世界上幾乎所有的公司都會(huì)受到影響。其中一個(gè)引人注目的問(wèn)題是log4j漏洞,它將影響世界上近一半的IT公司。
現(xiàn)在是大公司重新思考目前的開源模式的時(shí)候了,在這種模式下,開發(fā)者維護(hù)一個(gè)核心的軟件而沒(méi)有任何經(jīng)濟(jì)利益和支持。
6. 區(qū)塊鏈:最后,生命開始于加密貨幣之外
區(qū)塊鏈經(jīng)常與加密貨幣聯(lián)系在一起。每當(dāng)有關(guān)于加密貨幣的造假事件發(fā)生時(shí),區(qū)塊鏈技術(shù)就會(huì)受到批評(píng)。區(qū)塊鏈(分布式賬本)是21世紀(jì)最具顛覆性的技術(shù)之一。加密貨幣是其最知名的用例,但區(qū)塊鏈遠(yuǎn)不止于加密貨幣。區(qū)塊鏈可以改變我們行業(yè)的許多領(lǐng)域,影響我們的日常生活。
在2021年,我們看到了區(qū)塊鏈的一個(gè)新的和高度流行的使用案例。NFT(Non-Fungible Tokens)。目前,NFT主要用于數(shù)字藝術(shù)。在2022年,我們將看到NFT將被用于其他用例。
現(xiàn)在人們正在認(rèn)真對(duì)待區(qū)塊鏈,2022年區(qū)塊鏈技術(shù)將有巨大的支出。
區(qū)塊鏈經(jīng)常因其大量的能源消耗而受到批評(píng)。許多區(qū)塊鏈公司現(xiàn)在正計(jì)劃從能源密集型的 "工作證明 "轉(zhuǎn)向節(jié)能的 "股權(quán)證明 "模式。以太坊,這個(gè)流行和廣泛使用的區(qū)塊鏈,將在2022年轉(zhuǎn)向綠色的 "權(quán)益證明 "模式。
7. 機(jī)器學(xué)習(xí):AutoML和No-Code AI將使機(jī)器學(xué)習(xí)民主化
機(jī)器學(xué)習(xí)(ML)是另一項(xiàng)顛覆性技術(shù),近年來(lái)取得了巨大的成功和采用。然而,根據(jù)其需求,機(jī)器學(xué)習(xí)專家大量短缺。此外,許多公司希望以有限的方式采用機(jī)器學(xué)習(xí),而不雇用全職的、昂貴的機(jī)器學(xué)習(xí)專家。
AutoML(自動(dòng)機(jī)器學(xué)習(xí))是在沒(méi)有機(jī)器學(xué)習(xí)專家的情況下以有限的方式使機(jī)器學(xué)習(xí)使用自動(dòng)化的新舉措。對(duì)于大多數(shù)用例,你需要一個(gè)機(jī)器學(xué)習(xí)專家。但對(duì)于某些用例,你可以使用AutoML來(lái)增強(qiáng)機(jī)器學(xué)習(xí)專家的能力,或者在沒(méi)有任何機(jī)器學(xué)習(xí)專家的情況下使用AutoML。在某種意義上,它類似于低代碼/無(wú)代碼倡議。AutoML在2021年得到了巨大的牽引力。
在2022年,我們將看到更多的AutoML的采用和創(chuàng)新,因?yàn)锳utoML有一個(gè)廣闊的市場(chǎng)前景。
AutoML是更大的No-Code AI趨勢(shì)的一個(gè)子集。無(wú)代碼人工智能也將在2022年迎來(lái)普及和采用的高潮。
8. 人工智能:狹義人工智能將迎來(lái)大規(guī)模應(yīng)用
與機(jī)器學(xué)習(xí)一樣,深度學(xué)習(xí)(AI)是另一項(xiàng)顛覆性技術(shù),在過(guò)去十年獲得了大規(guī)模的采用和快速增長(zhǎng)。在2022年及以后,人工智能將繼續(xù)看到更多的采用、資金、創(chuàng)新。
人工智能的圣杯之一是尋找 "通用智能",即人工智能可以和人類一樣聰明(或更聰明)。我們離實(shí)現(xiàn)通用智能還很遙遠(yuǎn)。但人工智能將更多地被用于 "狹義人工智能",人工智能代理將在特定(狹義)領(lǐng)域協(xié)助/增強(qiáng)人類。2022年,我們將看到在許多非關(guān)鍵用例(如呼叫中心、IT)中更多地采用狹義人工智能,人工智能代理將使用狹義人工智能協(xié)助人類。
9. 深度學(xué)習(xí)庫(kù):Tensor Flow將繼續(xù)統(tǒng)治
有許多人工智能庫(kù),但有兩個(gè)從其他地方脫穎而出。谷歌的TensorFlow和Facebook的PyTorch。
TensorFlow在其2.0版本中對(duì)自己進(jìn)行了改造,并引入了動(dòng)態(tài)圖、python友好性和許多其他變化。它還提供了Tensorflow.js來(lái)在瀏覽器中使用AI庫(kù)。Tensorflow的另一個(gè)創(chuàng)新是Tensorflow Lite,它提供了在移動(dòng)和網(wǎng)絡(luò)上部署Tensorflow。Tensorflow還發(fā)布了Tensorflow Extended(TFX),這是一個(gè)用于部署生產(chǎn)ML管道的端到端平臺(tái)。
PyTorch是另一個(gè)占主導(dǎo)地位的人工智能庫(kù),它將動(dòng)態(tài)圖和Python作為第一類公民引入。它對(duì)開發(fā)者也更加友好。它還發(fā)布了PyTorch Mobile,在Android/iOS設(shè)備上使用PyTorch。它通過(guò)PyTorch Profiler提供更多的開發(fā)者友好性,以調(diào)試大規(guī)模的人工智能模型。
TensorFlow仍然是最流行的人工智能庫(kù)。
來(lái)源: Stack Overflow Developer Survey, 2021
在2022年,Tensorflow將繼續(xù)成為主導(dǎo)的人工智能庫(kù),因?yàn)樗哂懈玫目梢暬痛笠?guī)模采用。
10. 數(shù)據(jù)庫(kù):多模式和多用途的數(shù)據(jù)庫(kù)正在興起
在過(guò)去的幾年里,我們看到了使用適合特定使用情況的特殊數(shù)據(jù)庫(kù)的趨勢(shì)。
- 用于具有結(jié)構(gòu)化數(shù)據(jù)的事務(wù)性用例的 RDBMS
- 用于低延遲、分布式數(shù)據(jù)庫(kù)的 寬列數(shù)據(jù)庫(kù)
- 分布式緩存的 鍵值存儲(chǔ)
- 用于極端關(guān)系型數(shù)據(jù)的 圖形數(shù)據(jù)庫(kù)
- 用于半結(jié)構(gòu)化數(shù)據(jù)的事務(wù)性使用案例的 文件數(shù)據(jù)庫(kù)
- 用于全文和高級(jí)搜索的 搜索引擎(例如,基于位置的搜索)。
- 分布式SQL,用于低延遲的分布式數(shù)據(jù)庫(kù),具有事務(wù)性保證。
- 用于數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)分析的 OLAP數(shù)據(jù)庫(kù)
這種方法的一個(gè)缺點(diǎn)是,我們經(jīng)常需要為一個(gè)應(yīng)用提供多個(gè)數(shù)據(jù)庫(kù)?,F(xiàn)在有一個(gè)新的趨勢(shì),每個(gè)數(shù)據(jù)庫(kù)將提供一個(gè)以上的模型,并為一個(gè)以上的用例服務(wù)。PostgreSQL(多模型),Azure CosmosDB(多模型,多用途),SingleStore(OLAP和OLTP)是這些數(shù)據(jù)庫(kù)的先驅(qū)。在2022年,我們還將看到其他提供多模型和多用途的數(shù)據(jù)庫(kù)。
11. 數(shù)據(jù)密集型計(jì)算:Spark與公共云服務(wù)
Apache Spark幾乎已經(jīng)取代了Hadoop生態(tài)系統(tǒng),成為默認(rèn)的數(shù)據(jù)密集型計(jì)算框架。Spark還使用相同的API提供近乎實(shí)時(shí)的流處理。
近年來(lái),Apache Beam獲得了很大的吸引力,因?yàn)樗峁┝艘粋€(gè)統(tǒng)一的編程模型來(lái)定義和執(zhí)行一個(gè)數(shù)據(jù)處理管道。Batch和Stream。谷歌的Cloud Dataflow是一個(gè)強(qiáng)大的服務(wù),實(shí)現(xiàn)了Apache Beam。另外,Azure和AWS也提供了Batch處理服務(wù)。
如果你想與云無(wú)關(guān),你應(yīng)該使用Spark或Cloud Dataflow(GCP)。
12. 實(shí)時(shí)流:它是Flink與公共云服務(wù)的對(duì)比
雖然近乎實(shí)時(shí)的流媒體對(duì)90%的用例來(lái)說(shuō)是足夠的,但有一些用例(欺詐檢測(cè)、異常檢測(cè)、基于規(guī)則的警報(bào)、實(shí)時(shí)數(shù)據(jù)的特別分析),你將需要實(shí)時(shí)流。
在實(shí)時(shí)流方面,Apache Flink毫無(wú)疑問(wèn)是市場(chǎng)領(lǐng)導(dǎo)者。它還支持Apache Beam API,并提供供應(yīng)商中立的解決方案來(lái)處理實(shí)時(shí)流數(shù)據(jù)。
如果你想避免被供應(yīng)商鎖定,你應(yīng)該使用Flink而不是公共云的特定技術(shù)。而且,F(xiàn)link比公共云供應(yīng)商提供的類似服務(wù)更強(qiáng)大。
13. DevOps:現(xiàn)代DevOps的智能觀察能力
幾年前,可觀察性只對(duì)大型企業(yè)至關(guān)重要。然而,隨著云原生開發(fā)和微服務(wù)架構(gòu)的迅速崛起,可觀察性對(duì)現(xiàn)代軟件開發(fā)至關(guān)重要。除了傳統(tǒng)的可觀察性(日志、監(jiān)控、追蹤),我們還需要Kubernetes集群的遙測(cè)和拓?fù)鋽?shù)據(jù)。另外,我們將看到使用人工智能與時(shí)間序列數(shù)據(jù)庫(kù)來(lái)開發(fā)智能可觀察性平臺(tái)的趨勢(shì)。在2022年及以后,智能的、云原生的可觀察性將繼續(xù)增長(zhǎng)。
14. 快速應(yīng)用開發(fā):低代碼/無(wú)代碼(LCNC)將繼續(xù)蓬勃發(fā)展
低代碼/無(wú)代碼(LCNC)倡議旨在降低開發(fā)網(wǎng)絡(luò)/移動(dòng)應(yīng)用程序的障礙,而不需要開發(fā)人員(或低數(shù)量的開發(fā)人員)。那我們?cè)谖磥?lái)幾年仍然需要開發(fā)人員來(lái)構(gòu)建應(yīng)用程序。但也有許多用例,低代碼/無(wú)代碼框架/工具可以大大加快應(yīng)用開發(fā)的速度。
在2022年,我們也將看到越來(lái)越多的LCNC的使用案例。
- 網(wǎng)絡(luò)/移動(dòng)應(yīng)用程序開發(fā)
- 網(wǎng)站和登陸頁(yè)面
- 使用對(duì)話流的智能聊天機(jī)器人
- 電子商務(wù)
- 機(jī)器學(xué)習(xí)
- 人工智能(視頻、音頻、圖像)
- 工作流程管理
- 使用RPA的流程自動(dòng)化
15. 軟件架構(gòu):企業(yè)的微服務(wù)和微前臺(tái)
我們目前有三種后端應(yīng)用開發(fā)的選擇。(模塊化)單片機(jī)、微服務(wù)和無(wú)服務(wù)器。它們都有各自的長(zhǎng)處和短處,在特定的用例中大放異彩,而在其他用例中則失敗。微服務(wù)使應(yīng)用開發(fā)成為可能,在這種情況下,多個(gè)團(tuán)隊(duì)在特定的應(yīng)用程序上工作。此外,微服務(wù)與云原生開發(fā)完美契合,因?yàn)檩^高的運(yùn)營(yíng)成本可以通過(guò)較低的代碼復(fù)雜性卸載到云端。因此,對(duì)于企業(yè)來(lái)說(shuō),微服務(wù)將是2022年的首選架構(gòu)。
如果你想了解設(shè)計(jì)微服務(wù)架構(gòu)的最佳實(shí)踐,那么你可以閱讀我的博客。
我們目前在前端應(yīng)用開發(fā)方面有兩種選擇。Monolith和Micro-frontends。我們經(jīng)常淡化前端應(yīng)用的復(fù)雜性,因?yàn)榇蠖鄶?shù)建筑師都是來(lái)自后端開發(fā)。但前端單片機(jī)和后端單片機(jī)一樣糟糕。因此,對(duì)于企業(yè)的前端開發(fā),微前端將是2022年的首選架構(gòu)。好消息是,所有流行的JavaScript前端框架都支持微前端。
16. 軟件開發(fā):AI將協(xié)助開發(fā)人員和QA
我認(rèn)為人工智能是人類的助手或幫手。人工智能可以幫助繁瑣的、可預(yù)測(cè)的、重復(fù)的、困難的任務(wù),而人類可以專注于更多發(fā)人深省的、智能的任務(wù)。在軟件開發(fā)中,我們也必須做許多枯燥、可預(yù)測(cè)和重復(fù)的任務(wù)。人工智能可以使用GPT-3和其他NLP庫(kù)將這些任務(wù)自動(dòng)化。人工智能已經(jīng)被用來(lái)實(shí)現(xiàn)測(cè)試的自動(dòng)化。
一些人工智能驅(qū)動(dòng)的助手也可以為開發(fā)者自動(dòng)生成源代碼。Tabnine, GitHub Copilot, Codota.雖然它們?cè)趨f(xié)助軟件開發(fā)方面處于早期階段,還不是很成熟,但我預(yù)計(jì)這些人工智能驅(qū)動(dòng)的代碼助手將在2022年成熟起來(lái),這樣我們就可以更快地開發(fā)和交付。
17. 編程(主流):Python將引領(lǐng)潮流
近年來(lái),我們經(jīng)歷了Python作為一種通用編程語(yǔ)言的迅速崛起。在流行的編程語(yǔ)言排名網(wǎng)站TIOBE上,最終,Python占據(jù)了領(lǐng)先地位,成為目前第一大編程語(yǔ)言。
來(lái)源: TIOBE
作為一個(gè)業(yè)余項(xiàng)目開發(fā)的編程語(yǔ)言,降低了進(jìn)入編程的門檻,這對(duì)Guido van Rossum和Python的其他語(yǔ)言設(shè)計(jì)者來(lái)說(shuō)是一個(gè)了不起的聲明。Python是簡(jiǎn)練的、解釋性的、動(dòng)態(tài)的、簡(jiǎn)明的、簡(jiǎn)單的、強(qiáng)大的。但Python的USP是它的簡(jiǎn)單性和較低的入門門檻。Python是數(shù)據(jù)科學(xué)和數(shù)據(jù)工程領(lǐng)域的第一大編程語(yǔ)言。但在許多其他領(lǐng)域,它是第二或第三位的編程語(yǔ)言。
在2022年,Python將繼續(xù)占主導(dǎo)地位,因?yàn)樵S多新的開發(fā)人員將加入,他們可能會(huì)從Python開始。在選擇一種編程語(yǔ)言之前,仍然值得關(guān)注這個(gè)領(lǐng)域。以下是我對(duì)編程語(yǔ)言的建議。
- 網(wǎng)絡(luò)開發(fā)。JavaScript,TypeScript
- 后臺(tái)開發(fā)。Java, Golang, JavaScript, TypeScript
- 安卓開發(fā)。Kotlin
- iOS開發(fā)。Swift
- 系統(tǒng)編程。C, C++, Rust, Golang
- 數(shù)據(jù)科學(xué)/數(shù)據(jù)工程。Python
然而,如果你是一個(gè)學(xué)習(xí)新編程語(yǔ)言的新開發(fā)者,你可以從Python開始。
18. 編程(企業(yè)):Java反擊戰(zhàn)
在很長(zhǎng)一段時(shí)間里,Java是無(wú)可爭(zhēng)議的第一大編程語(yǔ)言。它是解釋型的、適度復(fù)雜的、多線程的、垃圾收集的和強(qiáng)大的編程語(yǔ)言。此外,JVM是經(jīng)過(guò)戰(zhàn)斗考驗(yàn)的、強(qiáng)大的、成熟的,并且是業(yè)界最好的進(jìn)程虛擬機(jī)之一。Java是大型、單體企業(yè)應(yīng)用的完美選擇。
不幸的是,隨著微服務(wù)和無(wú)服務(wù)器的興起,Java處于不利地位,因?yàn)镴VM似乎太大(內(nèi)存占用率高)和太慢(啟動(dòng)時(shí)間慢)。另外,在基于容器的現(xiàn)代開發(fā)中,容器的資源是有限的。因此,人們開始在云原生開發(fā)中使用靈活、小型、快速的語(yǔ)言,如Node.js、Golang。
最后,Java社區(qū)開始用GraalVM提供現(xiàn)代版的Java。這是一個(gè)JDK發(fā)行版,提供AOT編譯、多語(yǔ)言編程。此外,它可以直接編譯成Native代碼,完全適合云原生開發(fā)(內(nèi)存占用少,首次啟動(dòng)時(shí)間短)。另外,Java 17終于引入了許多現(xiàn)代功能(如模式匹配),使Java對(duì)開發(fā)者具有吸引力。
憑借其嚴(yán)格的、無(wú)可比擬的向后兼容性、GraalVM、最新的變化,Java將在2022年成為企業(yè)軟件開發(fā)的第一大編程語(yǔ)言。
19. 客戶端網(wǎng)絡(luò)框架:企業(yè)的React和Angular
在現(xiàn)代網(wǎng)絡(luò)應(yīng)用程序開發(fā)中,基于JavaScript/TypeScript的框架占主導(dǎo)地位,而且這一趨勢(shì)將在2022年繼續(xù)下去。有許多基于JavaScript/TypeScript的網(wǎng)絡(luò)框架,但有兩個(gè)框架從其他框架中脫穎而出。其中一個(gè)是Facebook的React。另一個(gè)是谷歌的Angular(Angular 2+)。React是這兩個(gè)框架中最流行的,沒(méi)有意見(jiàn)的,創(chuàng)新的,靈活的,對(duì)SEO友好的框架。另一方面,Angular是一個(gè)有主見(jiàn)的、端到端的、模塊化的、安全的框架,有嚴(yán)格的約定俗成的配置。Angular也是一個(gè) "包含電池 "的框架,可以通過(guò)強(qiáng)大的CLI開發(fā)企業(yè)級(jí)的Web應(yīng)用。
資料來(lái)源: NPM Trends
在2022年,React和Angular也將繼續(xù)引領(lǐng)網(wǎng)絡(luò)開發(fā)。雖然Vue.js是最受歡迎的框架,但由于安全問(wèn)題和過(guò)于依賴一個(gè)人,它不會(huì)在行業(yè)中看到大規(guī)模的采用。
20. 服務(wù)器端框架(Java):用于微服務(wù)和無(wú)服務(wù)器應(yīng)用的本地框架
Spring MVC/Spring Boot是Java中最主流的服務(wù)器端框架。如前所述,Spring使用的是傳統(tǒng)的OpenJDK,在云原生Java開發(fā)中慢慢失去了它的魅力。Redhat的Quarkus是云原生開發(fā)的頭號(hào)框架,因?yàn)樗褂肎raalVM而不是傳統(tǒng)的OpenJDK。因此,由Quarkus開發(fā)的應(yīng)用程序更小,啟動(dòng)時(shí)間更快,而且更適合基于容器的開發(fā)。
最后,Spring已經(jīng)宣布了Spring Native,它將使用GraalVM進(jìn)行云原生開發(fā)。
它仍然是實(shí)驗(yàn)性的,將在Spring 6發(fā)布時(shí)(2022年10月)發(fā)布。Spring Native的一個(gè)優(yōu)點(diǎn)是,你可以將你的Spring MVC項(xiàng)目轉(zhuǎn)換為Spring Native項(xiàng)目,而不需要重寫任何/少量代碼。
因此,如果你在2022年開發(fā)云原生Java應(yīng)用,可以考慮使用其中一個(gè)Java原生框架。然而,對(duì)于單片式Java開發(fā),你仍然可以使用基于傳統(tǒng)(OpenJDK)的框架(如Spring MVC)。
21. 應(yīng)用程序開發(fā):本機(jī)應(yīng)用,更靈活
2022年,手機(jī)用戶的數(shù)量將繼續(xù)增長(zhǎng),應(yīng)用程序的下載量也將繼續(xù)增長(zhǎng)。2022年,預(yù)計(jì)將有1710億個(gè)App被下載。移動(dòng)應(yīng)用開發(fā)是當(dāng)今軟件開發(fā)中的一個(gè)廣闊市場(chǎng)。
資料來(lái)源: Statista
目前,有四種方式來(lái)開發(fā)移動(dòng)應(yīng)用程序。本地應(yīng)用開發(fā)、跨平臺(tái)應(yīng)用開發(fā)、混合應(yīng)用開發(fā)和基于云的應(yīng)用。
本地應(yīng)用開發(fā)和跨平臺(tái)應(yīng)用開發(fā)是其中使用最多的。雖然本地應(yīng)用開發(fā)是最昂貴的(在時(shí)間/資源方面),但它提供了最大的靈活性。通常情況下,企業(yè)更喜歡本地應(yīng)用開發(fā)的靈活性。
跨平臺(tái)應(yīng)用開發(fā)提供了在iOS/Android上使用幾乎相同代碼的可能性。創(chuàng)業(yè)公司更喜歡這種方式,因?yàn)樗麄兿矚g跨平臺(tái)應(yīng)用開發(fā)的開發(fā)速度和較低的維護(hù)成本,但代價(jià)是靈活性較低。
2022年,由于跨平臺(tái)應(yīng)用開發(fā)不如本地應(yīng)用開發(fā)靈活,本地應(yīng)用開發(fā)將處于領(lǐng)先地位。
22. API技術(shù):REST、gRPC和GraphQL將同時(shí)存在
現(xiàn)代軟件開發(fā)通常是API驅(qū)動(dòng)的開發(fā)??蛻舳藨?yīng)用程序(網(wǎng)絡(luò)、移動(dòng))通過(guò)API調(diào)用與后端應(yīng)用程序進(jìn)行通信。同時(shí),后端應(yīng)用也通過(guò)API調(diào)用與對(duì)方進(jìn)行通信。服務(wù)之間的通信是軟件開發(fā)行業(yè)的一個(gè)古老范式,有許多技術(shù)可以滿足這一要求。但在這些技術(shù)中,有三種技術(shù)脫穎而出。REST、gRPC和GraphQL。
REST是其中最古老的技術(shù),開發(fā)于2000年。它使用萬(wàn)維網(wǎng)和HTTP技術(shù)進(jìn)行客戶-服務(wù)器通信。它是最成熟和最廣泛使用的。
谷歌創(chuàng)建了gRPC,作為一個(gè)基于舊的RPC(遠(yuǎn)程過(guò)程調(diào)用)技術(shù)的服務(wù)器到服務(wù)器的通信API。在這里,每個(gè)請(qǐng)求都被結(jié)構(gòu)化為一個(gè)函數(shù)調(diào)用。與使用文本格式(如JSON、XML)傳遞信息的REST不同,gRPC使用基于協(xié)議緩沖區(qū)的二進(jìn)制格式。因此,與REST相比,gRPC在服務(wù)與服務(wù)之間的通信方面更有效率和速度。
如果數(shù)據(jù)結(jié)構(gòu)復(fù)雜,網(wǎng)絡(luò)客戶端到服務(wù)器的通信就會(huì)有很多往返。為了緩解這個(gè)問(wèn)題,F(xiàn)acebook在2015年開發(fā)了GraphQL API。在GraphQL中,每個(gè)客戶端可以為特定的用例定義數(shù)據(jù)結(jié)構(gòu)的形狀,并在一次旅行中獲取所有數(shù)據(jù)。
從上面我們可以看到,這三種API技術(shù)(REST、gRPC、GraphQL)都有其擅長(zhǎng)的用例,而角落里的用例則不那么好。在2022年,開發(fā)者和公司也會(huì)根據(jù)他們的用例使用這三種中的一種。