22個(gè)2022年軟件開(kāi)發(fā)的趨勢(shì)預(yù)測(cè)及其解讀
Md Kamaruzzaman 是 Medium 的一位科技博文作者,更新頻率比我強(qiáng)不了多少,但他對(duì)軟件開(kāi)發(fā)行業(yè)的認(rèn)識(shí)比我要強(qiáng)太多,畢竟專業(yè)出身的差距擺在這兒。Kamaruzzaman 個(gè)人介紹是一位解決方案架構(gòu)師,同時(shí)也是一位科技作者、全棧開(kāi)發(fā),專注在云和大數(shù)據(jù)方向,base 德國(guó)。
很有意思的一個(gè)事情是,研發(fā)同學(xué)往往并不直接與客戶打交道,多數(shù)市場(chǎng)動(dòng)向和認(rèn)知觀察也往往來(lái)自于市場(chǎng)部門(mén)或開(kāi)發(fā)者關(guān)系,但技術(shù)發(fā)展的趨勢(shì)往往卻與商業(yè)化直接掛鉤,這就導(dǎo)致了一個(gè)很有意思的現(xiàn)象,即——運(yùn)營(yíng)/市場(chǎng)拿著研發(fā)一半的工資,卻還要時(shí)刻掌握市場(chǎng)動(dòng)向,行業(yè)脈搏,用工程師能聽(tīng)懂的語(yǔ)言反哺給研發(fā),最終保證技術(shù)發(fā)展、產(chǎn)品迭代的路線不至于出現(xiàn)大的紕漏。
這對(duì)于做開(kāi)發(fā)者社區(qū)的同學(xué)來(lái)說(shuō),是先天的弊病和必須的要求,也是開(kāi)發(fā)者運(yùn)營(yíng)同學(xué)實(shí)現(xiàn)個(gè)人品牌能力和增值的一大出路。所以,其實(shí)各個(gè)行業(yè)都類似,愿意保持思考,持續(xù)學(xué)習(xí)的人,總是可以跑贏很多人,研發(fā)同理。
廢話不多說(shuō),切入今天的正題。
1、集中式基礎(chǔ)設(shè)施:云優(yōu)先是新的規(guī)范
同往年一樣,第一條預(yù)測(cè)依舊跟云有關(guān),今年在基礎(chǔ)設(shè)施這個(gè)關(guān)鍵詞前面多出了一個(gè)集中式(Centralized)的前綴,這跟當(dāng)前云計(jì)算行業(yè)的下沉還是有關(guān)系的,如果關(guān)注互聯(lián)網(wǎng)行業(yè)比較多的人,可能會(huì)覺(jué)得分布式云是現(xiàn)在的發(fā)展趨勢(shì),但其實(shí)對(duì)于正在數(shù)字化轉(zhuǎn)型的非互聯(lián)網(wǎng)行業(yè)而言,集中式的基礎(chǔ)設(shè)施仍舊是第一選擇。
2022 年,仍舊會(huì)是公有云快速發(fā)展的一年,Gartner 預(yù)測(cè) 2022 年公有云的收入將增長(zhǎng) 16%,在互聯(lián)網(wǎng)以外的各個(gè)行業(yè),金融、政務(wù)、出行、工業(yè)、民生等多個(gè)行業(yè),公有云都會(huì)得到有效的利用。所以如果你是非互聯(lián)網(wǎng)企業(yè)的決策者或從業(yè)者,現(xiàn)在開(kāi)始認(rèn)真關(guān)注云計(jì)算還來(lái)得及。
2、去中心化基礎(chǔ)設(shè)施:邊緣的云
邊緣計(jì)算開(kāi)始被廣泛關(guān)注,大概也就是最近兩年的事情,我看了一下 2019 年做的那篇趨勢(shì)預(yù)測(cè)里,其實(shí)沒(méi)有寫(xiě)邊緣計(jì)算,但 2021 年的版本里已經(jīng)有了。跟公有云希望將存儲(chǔ)、計(jì)算能力和 AI/ML 集中在一個(gè)中心位置(可用區(qū)域)的特點(diǎn)不同,邊緣計(jì)算本身是一種去中心化的方式,它希望將存儲(chǔ)、計(jì)算能力和 AI/ML 部署在靠近用戶的地方。低延遲場(chǎng)景(游戲)、低網(wǎng)絡(luò)帶寬(離岸站點(diǎn))、無(wú)網(wǎng)絡(luò)、監(jiān)管要求、實(shí)時(shí)用例(聯(lián)網(wǎng)車輛)、智能設(shè)備(物聯(lián)網(wǎng))這些都是需要邊緣計(jì)算的場(chǎng)景。
再加上 5G 和 Web 3 等關(guān)鍵技術(shù)的興起,邊緣計(jì)算在 2022 及以后得到廣泛采用是很合理的預(yù)判。事實(shí)上最近兩年各大云廠商已經(jīng)在開(kāi)始有意識(shí)地推邊緣計(jì)算的能力和產(chǎn)品了,我印象中國(guó)內(nèi)幾大云廠商都有相關(guān)的案例,比如我之前采訪過(guò)的華為云的 KubeEdge。
Kamaruzzaman 提到了一項(xiàng)比較關(guān)鍵的動(dòng)議—— “State of the Edge” ,旨在標(biāo)準(zhǔn)化邊緣計(jì)算技術(shù)?!皹?biāo)準(zhǔn)化”這個(gè)詞是我特別敏感的一個(gè)點(diǎn),因?yàn)閺纳虡I(yè)化的角度看,在沒(méi)有實(shí)現(xiàn)事實(shí)標(biāo)準(zhǔn)之前,商業(yè)化的拓展往往是雜亂無(wú)序或者說(shuō)沒(méi)有核心優(yōu)勢(shì)的,而形成事實(shí)上或人為認(rèn)定的標(biāo)準(zhǔn)以后,商業(yè)化的動(dòng)向才能更為明朗。畢竟三流企業(yè)做產(chǎn)品,一流企業(yè)做標(biāo)準(zhǔn)。
3、公有云:多云將獲得更多的動(dòng)力
阻礙企業(yè)上云的一大絆腳石,就是廠商鎖定的問(wèn)題。畢竟云廠商在商業(yè)信譽(yù)這塊上,總是或多或少存在一些黑歷史,要么硬盤(pán)壞了,要么剽合作伙伴方案,要么抄開(kāi)源項(xiàng)目代碼。你把企業(yè)安身立命的核心資產(chǎn)、數(shù)據(jù)都放在某一家云上,且不說(shuō)安全的問(wèn)題,以后要想遷移都是個(gè)麻煩。
所以多云、混合云的發(fā)展趨勢(shì)是實(shí)實(shí)在在肉眼可見(jiàn)的,Kamaruzzaman 提到了很多致力于提供云服務(wù)中立性的 API 服務(wù),比如 MinIO(兼容 S3)、Aviatrix(云原生網(wǎng)絡(luò))、Volterra(分布式云服務(wù))、LightOS(云原生存儲(chǔ))等。
還有一點(diǎn)比較有意思的是,Google 正在致力于將他們的流行服務(wù),比如 Big Query 引入到其公有云競(jìng)爭(zhēng)對(duì)手 AWS、Azure 里,但這種現(xiàn)象在國(guó)內(nèi)的云計(jì)算行業(yè)是否有類似案例或者說(shuō)未來(lái)會(huì)不會(huì)有類似案例,我個(gè)人表示懷疑……
4、容器:K8s 將成為基礎(chǔ),而 Docker 將會(huì)反彈
如果要對(duì)現(xiàn)代 IT 產(chǎn)業(yè)的關(guān)鍵技術(shù)做個(gè)排名,容器毫無(wú)疑問(wèn)將占據(jù)一席之地。在容器化技術(shù)的普及化中,K8s 發(fā)揮了巨大的作用。背靠大廠(Google)、足夠努力、精心設(shè)計(jì)、快速迭代,才有了今天成為事實(shí)標(biāo)準(zhǔn)的 K8s。
但另一方面,隨著 K8s 技術(shù)的成熟,未來(lái)關(guān)于 K8s 本身的吸引力會(huì)持續(xù)減少,這有點(diǎn)類似于跨越鴻溝理論中的技術(shù)采用生命周期,K8s 我認(rèn)為已經(jīng)到了晚期大眾這個(gè)階段。所以 Kamaruzzaman 表示,K8s 已經(jīng)成為現(xiàn)代軟件開(kāi)發(fā)的引擎,但也由于其本身的成熟度而導(dǎo)致進(jìn)展緩慢。從這個(gè)角度看,有點(diǎn)類似于 Java。
Docker 是另一個(gè)在容器化歷史進(jìn)程中發(fā)揮了關(guān)鍵作用的技術(shù),不幸的是,即便在全盛時(shí)期,Docker 也沒(méi)有找到商業(yè)化的終南捷徑,加上公司一系列的騷操作,在與 K8s 的正面對(duì)決中敗下陣來(lái)。
2022 年起,Docker 宣布推出新的訂閱模式,繼續(xù)做著商業(yè)化的艱難探索。坦白說(shuō),這個(gè)小標(biāo)題預(yù)測(cè)的結(jié)論并非定論,更多是 Kamaruzzaman 基于 Docker 的歷史功績(jī)提出的美好祝愿,我其實(shí)也一樣。Docker 是我對(duì)開(kāi)源行業(yè)產(chǎn)生濃厚興趣的開(kāi)始,希望它能有一個(gè)好的未來(lái)。?
5、網(wǎng)絡(luò)安全:每個(gè)人都會(huì)認(rèn)真對(duì)待安全
對(duì)初創(chuàng)公司或者中型公司來(lái)說(shuō),網(wǎng)絡(luò)安全就像“房間里的大象”,他們可以看到網(wǎng)絡(luò)安全的需求,卻沒(méi)有足夠的資源去實(shí)現(xiàn)他。這其實(shí)也是公有云能迅速落地下沉的一大原因,初創(chuàng)企業(yè)不需要自己去搭建底層的基礎(chǔ)設(shè)施,也省去了網(wǎng)絡(luò)安全的防護(hù),只要部署在公有云上就行,其他的事交給云廠商。
可當(dāng)云廠商遭到網(wǎng)絡(luò)攻擊,或者出現(xiàn)故障時(shí),受到影響的就絕不只是一家公司而已。事實(shí)上,2021 年曝出來(lái)的云廠商高危漏洞也不在少數(shù),2022 年公有云廠商和 Linux 都要在安全方面更努力地工作。
除了云安全,另一個(gè)常見(jiàn)的網(wǎng)絡(luò)安全來(lái)源于開(kāi)源軟件。之前奇安信有過(guò)相關(guān)數(shù)據(jù)報(bào)告,90%的開(kāi)源軟件存在安全漏洞,這對(duì)于在開(kāi)源軟件基礎(chǔ)上構(gòu)建起來(lái)的互聯(lián)網(wǎng)本身就是個(gè)令人不寒而栗的問(wèn)題。幸運(yùn)的是,高危漏洞的利用沒(méi)有那么容易。不幸的是,很多世界流行的開(kāi)源軟件,背后的維護(hù)者甚至只有兩三個(gè)人,比如 2021 年最受關(guān)注的 log4j 漏洞,影響了全世界近一半的 IT 公司。
我們需要思考一個(gè)問(wèn)題,為什么世界流行的開(kāi)源項(xiàng)目卻得不到應(yīng)有的收益?為眾人抱薪者,不可使其凍斃于風(fēng)雪。
6、區(qū)塊鏈:加密貨幣之外的生活終于開(kāi)始了
區(qū)塊鏈經(jīng)常與加密貨幣聯(lián)系在一起,每次有人被加密貨幣嘎了腰子,就有人開(kāi)始痛罵區(qū)塊鏈技術(shù)。但從技術(shù)上來(lái)講,加密貨幣只是區(qū)塊鏈技術(shù)的一個(gè)實(shí)現(xiàn)方式,卻并非區(qū)塊鏈的全部或唯一用例。
2021 年區(qū)塊鏈一個(gè)非常流行的新用例是 NFT(Non-Fungible Tokens),之前勇士隊(duì)球星庫(kù)里花了 18 萬(wàn)美元買(mǎi)了一張 NFT 的頭像就火出了圈。雖然,我也不懂這玩意兒貴在哪了……
NFT 目前更多用在數(shù)字藝術(shù)方面,但顯然可以期待它未來(lái)的使用場(chǎng)景。從這個(gè)點(diǎn)延伸出去可以看到,區(qū)塊鏈技術(shù)正在越來(lái)越為人所正視,注意是正視。IDC 預(yù)測(cè) 2022 年區(qū)塊鏈技術(shù)的解決方案增長(zhǎng)將達(dá)到 75%,考慮到目前該項(xiàng)技術(shù)的普及程度,我覺(jué)得這個(gè)數(shù)字不算盲目樂(lè)觀。
區(qū)塊鏈一個(gè)為人所詬病的點(diǎn)在于能源消耗,在國(guó)內(nèi)雙碳政策的前提下,區(qū)塊鏈要想獲得長(zhǎng)遠(yuǎn)發(fā)展,必然還是需要做出一些改變的,像以太坊那樣,在 2022 年由能源密集型的 “proof of work” 模型轉(zhuǎn)向綠色的 “proof of stake” 模型。
7、機(jī)器學(xué)習(xí):AutoML 和無(wú)代碼人工智能將使機(jī)器學(xué)習(xí)民主化
我之前策劃「稀土開(kāi)發(fā)者大會(huì)」的時(shí)候,用過(guò)一句文案叫「機(jī)器都在學(xué)習(xí),你憑什么例外」。這個(gè)點(diǎn)說(shuō)的就是機(jī)器學(xué)習(xí),但從實(shí)際的行業(yè)發(fā)展來(lái)看,機(jī)器學(xué)習(xí)的應(yīng)用規(guī)模還是受到不小的制約,最大的原因是——搞機(jī)器學(xué)習(xí)的專家太少了。第二個(gè)原因是——大多數(shù)公司不需要完全的機(jī)器學(xué)習(xí),有限的使用就夠了。
AutoML 就是在有限情況下實(shí)現(xiàn)機(jī)器學(xué)習(xí)使用的一種方式。某種意義上,它就相當(dāng)于低代碼/無(wú)代碼,不同之處在于,低代碼/無(wú)代碼是降低開(kāi)發(fā)的門(mén)檻,而 AutoML 是降低機(jī)器學(xué)習(xí)的使用門(mén)檻。
8、人工智能:狹義人工智能將被廣泛采用
我最近在看阿西莫夫的科幻系列,里面提到過(guò)的「機(jī)器人三大準(zhǔn)則」、由機(jī)器人協(xié)助建立的行星文明等等故事,講述的就是人工智能的終極目標(biāo)之一——讓 AI 可以和人一樣聰明,甚至更聰明。但從 AI 發(fā)展的 60 多年歷程里,我們離這個(gè)目標(biāo)還差得遠(yuǎn)。
跟機(jī)器學(xué)習(xí)一樣,深度學(xué)習(xí)在過(guò)去十年間獲得了大量采用和快速增長(zhǎng),預(yù)計(jì)在未來(lái)仍將如此。人工智能發(fā)展的終極目標(biāo)在肉眼可見(jiàn)的當(dāng)前觸不可及,但讓人工智能代理在特定領(lǐng)域協(xié)助/增強(qiáng)人類還是問(wèn)題不大的。
9、深度學(xué)習(xí)庫(kù):TensorFlow 將繼續(xù)統(tǒng)治
深度學(xué)習(xí)的輪子有很多,但你基本上可以只看這兩個(gè):Google 的 TensorFlow,Meta 的 PyTorch。
TensorFlow 在其 2.0 版本中進(jìn)行了自我更新,并引入了動(dòng)態(tài)圖形、Python 友好和許多其他變化。它還提供了 Tensorflow.js 以在瀏覽器中使用 AI 庫(kù)。其另一個(gè)創(chuàng)新是 Tensorflow Lite,它提供了在移動(dòng)和 Web 上部署 Tensorflow 的功能。Tensorflow 還發(fā)布了 Tensorflow Extended (TFX),這是一個(gè)用于部署生產(chǎn) ML 管道的端到端平臺(tái)。
PyTorch 是另一個(gè)主要的人工智能庫(kù),它引入了動(dòng)態(tài)圖形和 Python,對(duì)開(kāi)發(fā)人員也更友好。它還發(fā)布了 PyTorch Mobile,支持在 Android/iOS 設(shè)備上使用 PyTorch。它通過(guò) PyTorch Profiler 為開(kāi)發(fā)人員提供了更多的友好性來(lái)調(diào)試大型 AI 模型。
從 Stack Overflow 的調(diào)查數(shù)據(jù)來(lái)看,TensorFlow 繼續(xù)保持統(tǒng)治地位似乎并沒(méi)有什么懸念。
10、數(shù)據(jù)庫(kù):多模型、多用途數(shù)據(jù)庫(kù)正在興起
過(guò)去幾年間,數(shù)據(jù)庫(kù)領(lǐng)域的一個(gè)趨勢(shì)就是用一種特定的數(shù)據(jù)庫(kù)去匹配特定的用例,比如:
- RDBMS:用于結(jié)構(gòu)化數(shù)據(jù)的事物
- Wide-Column Database:用于低延遲,分布式數(shù)據(jù)庫(kù)
- Key-Value Store:用于分布式緩存
- Graph Database:用于極端關(guān)系數(shù)據(jù)
- Document Database:用于具有半結(jié)構(gòu)化數(shù)據(jù)的事物
- Distributed SQL:用于具有事務(wù)保證的低延遲,分布式數(shù)據(jù)庫(kù)
- OLAP Database:用于數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)分析
這種方法的一個(gè)缺點(diǎn)是,我們經(jīng)常需要為一個(gè)應(yīng)用程序使用多個(gè)數(shù)據(jù)庫(kù)?,F(xiàn)在有一個(gè)新的趨勢(shì),即每個(gè)數(shù)據(jù)庫(kù)將提供一個(gè)以上的模型并服務(wù)于一個(gè)以上的用例。PostgreSQL (Multi-Model)、Azure CosmosDB (Multi-Model, Multi-purpose)、SingleStore (OLAP 和 OLTP)是這些數(shù)據(jù)庫(kù)的先驅(qū)。
11、數(shù)據(jù)密集型計(jì)算:Spark VS 公有云
Kamaruzzaman 介紹道,Apache Spark 幾乎已經(jīng)取代 Hadoop 生態(tài)系統(tǒng)成為默認(rèn)的數(shù)據(jù)密集型計(jì)算框架。Spark 還使用相同的 API 提供接近實(shí)時(shí)的流處理。
另一個(gè)獲得很多關(guān)注的開(kāi)源框架是 Apache Beam,其提供了一個(gè)統(tǒng)一的編程模型來(lái)定義和執(zhí)行數(shù)據(jù)處理管道:批處理和流處理。這個(gè)背后的身影少不了 GCP、Azure 和 AWS。
所以如果你不想用云,或許只有 Spark 一個(gè)選擇。
12、實(shí)時(shí)流計(jì)算:Flink VS 公有云
這個(gè)點(diǎn)的意思跟上一條頗為類似,簡(jiǎn)單來(lái)說(shuō)就是,實(shí)時(shí)流計(jì)算這里,除了 Flink 啥都不推薦。即便要在公有云上用,也建議用 Flink,感覺(jué)無(wú)腦上就行了。話說(shuō)回來(lái),確實(shí)在這個(gè)領(lǐng)域里我目前也沒(méi)見(jiàn)過(guò)有能跟 Flink 掰掰手腕的輪子。
13、DevOps:現(xiàn)代 DevOps 的智能可觀測(cè)性
幾年前,可觀測(cè)性只對(duì)大型企業(yè)至關(guān)重要。然而,伴隨著云本地開(kāi)發(fā)和微服務(wù)架構(gòu)的迅速崛起,可觀測(cè)性對(duì)整個(gè)現(xiàn)代軟件開(kāi)發(fā)都至關(guān)重要。除了傳統(tǒng)的日志記錄、監(jiān)控、跟蹤,還需要 K8s 集群的遙測(cè)、拓?fù)鋽?shù)據(jù)等等。
其實(shí) DevOps 這種理念一直處在持續(xù)的發(fā)展中,當(dāng)它跟 AI 結(jié)合時(shí)就變成了 AIOps,當(dāng)它強(qiáng)調(diào)安全時(shí),就有了 DevSecOps,輪子的實(shí)現(xiàn)有各種形態(tài),歸根結(jié)底還是看需求是什么。
14、快速應(yīng)用開(kāi)發(fā):低代碼/無(wú)代碼 (LCNC) 將繼續(xù)蓬勃發(fā)展
低代碼/無(wú)代碼(Low Code/No Code,簡(jiǎn)稱 LCNC)旨在降低開(kāi)發(fā) Web/移動(dòng)應(yīng)用的障礙,而無(wú)需開(kāi)發(fā)人員(或少量開(kāi)發(fā)人員)。在未來(lái)的幾年里,我們?nèi)匀恍枰_(kāi)發(fā)人員來(lái)開(kāi)發(fā)應(yīng)用程序。但也有很多用例表明,低代碼/無(wú)代碼框架/工具確實(shí)可以顯著加快應(yīng)用程序開(kāi)發(fā)。
整個(gè) 2021 年稱之為低代碼元年都不為過(guò),這一年光是我見(jiàn)過(guò)的低代碼創(chuàng)業(yè)公司就不下三五家,一場(chǎng)關(guān)于低代碼是否業(yè)界毒瘤的爭(zhēng)論更是引爆了行業(yè)沸點(diǎn)。預(yù)計(jì) 2022 年,這些場(chǎng)景下會(huì)有更多低代碼/無(wú)代碼的身影:
- Web/移動(dòng) App 開(kāi)發(fā)
- 網(wǎng)站和登陸頁(yè)面
- 使用對(duì)話流的智能聊天機(jī)器人
- 電子商務(wù)
- 機(jī)器學(xué)習(xí)
- 人工智能(視頻、音頻、圖像)
- 工作流管理
- 使用 RPA 的過(guò)程自動(dòng)化
15、軟件架構(gòu):面向企業(yè)的微服務(wù)和微前端
目前主流的后端架構(gòu)有三種選擇:?jiǎn)误w、微服務(wù)和 Serverless,三者各有優(yōu)勢(shì)、劣勢(shì)和適用的場(chǎng)景。對(duì)于微服務(wù)而言,其是云原生場(chǎng)景下絕佳的架構(gòu)選擇,從企業(yè)發(fā)展角度來(lái)看,不論是上云后的改造,還是云原生的架構(gòu)設(shè)計(jì),都以微服務(wù)為首選。
前端領(lǐng)域的程序復(fù)雜性往往受到輕視,而微前端的思想內(nèi)核跟微服務(wù)是一樣的,都是為了解決復(fù)雜性而生,化整為零。因此可以暢想的是,微前端也會(huì)是未來(lái)前端開(kāi)發(fā)的首選架構(gòu)模型,另一個(gè)好消息是,主流的 JS 框架都支持微前端。
16、軟件開(kāi)發(fā):人工智能將協(xié)助開(kāi)發(fā)人員和 QA
軟件開(kāi)發(fā)本身很有意思的一個(gè)地方在于,開(kāi)發(fā)人員不喜歡做那些乏味的、可預(yù)測(cè)的、重復(fù)的臟活累活,所以各種輪子應(yīng)運(yùn)而生。研發(fā)們享受的是創(chuàng)作解決問(wèn)題的解決方案,而非享受問(wèn)題。人工智能在實(shí)現(xiàn)終極目標(biāo)之前,更多的價(jià)值往往就體現(xiàn)在這些地方上,比如使用 GPT-3 和 NLP 庫(kù)自動(dòng)地完成這些任務(wù)。
另外就是去年剛推出的一些自動(dòng)生成代碼的工具,比如 GitHub 的 Copilot。很多人喜歡玩梗說(shuō),AI 已經(jīng)可以自己寫(xiě)代碼,自己 Debug 了,程序員還有人要嗎?但實(shí)際上目前 AI 的能力仍舊是狹義層面的,但如果你只能、只會(huì)做臟活累活,那你確實(shí)比較危險(xiǎn),不是嗎?
17、編程語(yǔ)言(主流):Python 將引領(lǐng)潮流
我剛?cè)胄心菚?huì)兒,Python 還沒(méi)今天這么火,那個(gè)時(shí)候大家討論的是 Java 和 C 語(yǔ)言,甚至 Go 語(yǔ)言在中國(guó)的熱度感覺(jué)都不比 Python 差。可一瞬之間,Python 就在 TIOBE 編程語(yǔ)言排行榜上干到了第一名:
Python 具有簡(jiǎn)潔、解釋性、動(dòng)態(tài)、門(mén)檻低等特性(然而我卻沒(méi)學(xué)會(huì),從入門(mén)到放棄),這些在 Python 之禪里都有很直觀的體現(xiàn),更關(guān)鍵的是,Python 并不僅僅局限在軟件開(kāi)發(fā)行業(yè)里,很多做數(shù)據(jù)、圖表的行業(yè)同樣可以用 Python 實(shí)現(xiàn)很多工作。加上數(shù)據(jù)科學(xué)的火熱,Python 的火爆不難理解。2021 年 Python 的登頂不會(huì)是曇花一現(xiàn),懸念或許在于,以后誰(shuí)會(huì)把它頂下來(lái)?我個(gè)人期待 Rust。
18、編程語(yǔ)言(企業(yè)):Java 反擊
主流的企業(yè)級(jí)編程語(yǔ)言,很長(zhǎng)一段時(shí)間里代名詞就是 Java。Java 的語(yǔ)言設(shè)計(jì),JVM 的強(qiáng)大,共同構(gòu)筑了 Java 生態(tài)。但在云原生興起以來(lái),Java 其實(shí)受到了非常大的挑戰(zhàn)。我年前發(fā)過(guò)一條朋友圈專門(mén)聊過(guò)這個(gè)話題:
目前看有兩個(gè)技術(shù)趨勢(shì)會(huì)對(duì) Java 造成比較大的影響,一個(gè)是云原生,一個(gè)是 Serverless。造成影響的原因跟 Java 語(yǔ)言的特性有關(guān),這門(mén)語(yǔ)言設(shè)計(jì)就是為了大型應(yīng)用復(fù)雜場(chǎng)景,而云,尤其是 Serverless,更加適合輕量化、業(yè)務(wù)邏輯簡(jiǎn)單的應(yīng)用。話說(shuō)回來(lái),其實(shí)制約云原生和 Serverless 發(fā)展的,也恰恰是在大型應(yīng)用復(fù)雜場(chǎng)景下的管理問(wèn)題、安全問(wèn)題。
一個(gè)好消息是:Java 社區(qū)一直在持續(xù)地迭代創(chuàng)新,保證 Java 的生命力。比如 GraalVM 等現(xiàn)代化的特性,在 Java 近幾年保持周期發(fā)布的當(dāng)下,憑借現(xiàn)代化特性的更新和嚴(yán)格且無(wú)與倫比的向后兼容性,你可以不用再問(wèn) Java 老矣,尚能飯否。而是,接著奏樂(lè),接著舞!
19、客戶端 Web 框架:面向企業(yè)的 React 和 Angular
前端三大框架早已是耳熟能詳?shù)拇嬖冢簛?lái)自 Meta 的 React,來(lái)自 Google 的 Angular 和來(lái)自尤雨溪的 Vue。Kamaruzzaman 給出 React 和 Angular 會(huì)在企業(yè)中得到更多重用,而非 Vue 的原因是:前兩者背靠?jī)纱笃髽I(yè),而 Vue 過(guò)于依賴尤雨溪,且提到了 Vue 的安全考慮。
我不知道這個(gè)安全考慮指的是軟件方面的安全,還是地緣方面的安全,這里不做評(píng)價(jià)。但我想提的是,如果 Vue 在過(guò)于依賴尤雨溪的情況下,仍舊做到了如此流行,豈非更加說(shuō)明 Vue 的牛逼所在?你覺(jué)得呢?
20、服務(wù)器端框架(Java):用于微服務(wù)和無(wú)服務(wù)器應(yīng)用程序的本地框架
Spring MVC/Spring Boot 是 Java 里最主要的服務(wù)器端框架,它遇到的問(wèn)題跟 Java 遇到的問(wèn)題是伴生問(wèn)題,因?yàn)?Java 受到了云原生趨勢(shì)的挑戰(zhàn),導(dǎo)致了它的問(wèn)題。在 Redhat 推出 Quarkus 后,云原生開(kāi)發(fā)的首選框架易主,因?yàn)楹笳呤褂昧?GraalVM 而非傳統(tǒng)的 OpenJDK。終于,Spring 也聲明了將發(fā)布 Spring Native,同樣使用 GraalVM 進(jìn)行云原生開(kāi)發(fā)。
2022 年如果開(kāi)發(fā)云原生 Java 應(yīng)用程序,可以考慮使用 Java 原生框架。如果場(chǎng)景仍舊是單體 Java 應(yīng)用開(kāi)發(fā),繼續(xù)使用傳統(tǒng)框架亦無(wú)不可。
21、應(yīng)用開(kāi)發(fā):更靈活的原生應(yīng)用
移動(dòng)應(yīng)用開(kāi)發(fā)一直是個(gè)龐大的市場(chǎng),并且仍將持續(xù)膨脹下去。目前主流的移動(dòng)應(yīng)用開(kāi)發(fā)有四種模式:原生開(kāi)發(fā)、跨平臺(tái)開(kāi)發(fā)、混合開(kāi)發(fā)和云開(kāi)發(fā)。
原生開(kāi)發(fā)和跨平臺(tái)開(kāi)發(fā)是應(yīng)用最廣的開(kāi)發(fā)模式,前者提供了最大的靈活性,后者提供了“Write once,Run everywhere”的誘人可能。
去年寫(xiě)過(guò)一篇蘋(píng)果發(fā)布會(huì)的文章 蘋(píng)果:沒(méi)想到吧,我自己做了“小程序” ,里面借著蘋(píng)果生態(tài)分析了一下原生開(kāi)發(fā)的發(fā)展,重點(diǎn)在于其軟硬件的協(xié)同。Kamaruzzaman 預(yù)測(cè) 2022 年原生開(kāi)發(fā)將占據(jù)主流,重點(diǎn)在于跨平臺(tái)開(kāi)發(fā)不如原生靈活。未來(lái)如何,且走且看。
22、API 技術(shù):REST、gRPC 和 GraphQL 將共存
現(xiàn)代軟件開(kāi)發(fā)通常是 API 驅(qū)動(dòng)的開(kāi)發(fā):grin:,API 輪子可以說(shuō)是多如牛毛,但知名度最高的也就這三個(gè)了:REST、gRPC 和 GraphQL。
這三個(gè)主流 API 技術(shù),一個(gè)最古老,同時(shí)也是最成熟、最廣泛使用(REST);一個(gè)由 Google 創(chuàng)建,在服務(wù)和服務(wù)通信方面更快更高效(gRPC);一個(gè)由 Meta 開(kāi)發(fā),以為特定的用例定義數(shù)據(jù)結(jié)構(gòu)的形狀,并在一次訪問(wèn)中獲取所有數(shù)據(jù)。
這簡(jiǎn)直是完美體現(xiàn)軟件開(kāi)發(fā)沒(méi)有銀彈一詞的場(chǎng)景,各有各的擅長(zhǎng),也各有各的弊病,企業(yè)按需使用,每個(gè)輪子都有前景。我們都有光明的未來(lái)!