作者 | 徐杰承
上世紀(jì)80至90年代,伴隨著計(jì)算機(jī)的逐漸普及,大量編程語言也在這一時(shí)期誕生。彼時(shí),世界范圍內(nèi)平均每一個(gè)月便會(huì)產(chǎn)生一種新的編程語言。據(jù)不完全統(tǒng)計(jì),截止到2022年,人類已經(jīng)開發(fā)了大約9000種編程語言。
然而,隨著時(shí)間的推移,新編程語言的誕生速度卻在持續(xù)下降,尤其在過去幾年間,新編程語言的產(chǎn)生頻率已放緩到了約一年一種。但這一變化卻似乎并沒有給開發(fā)者們帶來任何影響,我們所熟悉的Python、JavaScript等一眾老伙計(jì)依然足矣應(yīng)付目前絕大多數(shù)的研發(fā)需求,并且仍舊表現(xiàn)強(qiáng)勢。那么,這是否意味著我們已不再需要新的編程語言了呢?
1、為什么一些編程語言能夠長期流行?
Python、JavaScript等語言能夠長期流行且受到開發(fā)者們的廣泛喜愛,很大程度上是由于它們的用戶友好性。以Python為例,作為一種高級編程語言,Python擁有豐富的開發(fā)框架、廣泛且高質(zhì)量的可用庫與良好的代碼可讀性。并且具有用戶友好的數(shù)據(jù)結(jié)構(gòu),還提供了web服務(wù)的輕松集成,這些優(yōu)點(diǎn)使得其備受開發(fā)人員的青睞。
而JavaScript作為目前市面上最受歡迎的編程語言之一,能夠方便地操縱各種瀏覽器對象、支持分布式運(yùn)算和處理,且與絕大多數(shù)互聯(lián)網(wǎng)瀏覽器兼容,目前我們能夠看到的所有網(wǎng)站幾乎都是基于JavaScript所構(gòu)建的。此外,JavaScript自誕生以來不斷通過大規(guī)模的更新使自己與持續(xù)發(fā)展的技術(shù)生態(tài)系統(tǒng)緊密相連,如今的JavaScript與十年前的JavaScript幾乎可以說是兩種語言。
2、為什么我們不再需要新的編程語言?
當(dāng)路面變得不再平坦時(shí),造一些更好的輪子永遠(yuǎn)比造一輛新車要來的方便。相比于從頭開始構(gòu)建一種新的編程語言,幾乎所有的開發(fā)人員都更愿意選擇在現(xiàn)有語言的基礎(chǔ)上更新框架,這也是絕大部分開發(fā)者們用腳投票的結(jié)果。
MachineHack首席技術(shù)官Krishna Rastogi曾在一次采訪中公開表示“從頭開始構(gòu)建編程語言是一個(gè)非常消耗時(shí)間和資源的過程,絕大部分問題只需要更新框架就可以輕松解決。并且,當(dāng)涉及到編程語言功能時(shí),更多并不一定代表著更好。當(dāng)我們用多種方法描述同一個(gè)想法時(shí),它可能會(huì)變得令人困惑。”。
根據(jù)Krishna Rastogi的介紹,早期的軟件行業(yè)之所以會(huì)出現(xiàn)種類如此種類繁多的編程語言,是由于早年間硬件的性能不夠可靠,因此開發(fā)人員必須通過復(fù)雜多樣的編程語言來彌補(bǔ)硬件功能方面的種種不足。但如今,硬件已經(jīng)發(fā)展得足夠優(yōu)秀,開發(fā)人員自然就不再需要使用那些復(fù)雜且沒有太多實(shí)際意義的編程語言,去選擇那些泛用性更強(qiáng)、功能更強(qiáng)大且更加友好的編程語言就足夠了。
除此之外,一門編程語言的興衰與否,與其周圍的生態(tài)環(huán)境也有著至關(guān)重要的聯(lián)系。主流的成熟編程語言周圍大多擁有各類龐大的社區(qū),這些社區(qū)能夠?yàn)檎Z言以及新晉學(xué)習(xí)者提供源源不斷的資源補(bǔ)充,使整個(gè)語言的生態(tài)系統(tǒng)得以持續(xù)發(fā)展。老牌語言在這方面的技術(shù)資產(chǎn),是后來者極難超越的。
最后一點(diǎn),從功利角度來講,由于大多數(shù)工程師在入行時(shí)都會(huì)選擇學(xué)習(xí)較為成熟的編程語言,并圍繞語言選擇工作方向、堆砌自己的技術(shù)棧。因此企業(yè)在對于技術(shù)架構(gòu)的選擇方面,也會(huì)因?yàn)榉(wěn)定性及人員招聘等問題而遵從一定的設(shè)計(jì)原則,這樣雙向促進(jìn)的邏輯也就自然而然的形成了一個(gè)閉環(huán)。
3、非英語種編程語言有前途嗎?
前文中我們對于編程語言的討論始終圍繞著語言本身的一些特點(diǎn),那么,在語種這個(gè)世界性問題上,會(huì)有新的編程語言給出不一樣的答案么?非英語種編程語言的目的,是為了讓那些母語非英語的開發(fā)者能夠使用自己更為熟悉的語種,進(jìn)行程序的設(shè)計(jì)與創(chuàng)作,但這個(gè)想法在執(zhí)行方面卻面臨著很多的困難。
例如,計(jì)算機(jī)科學(xué)家Ramsey Nasser在貝魯特大學(xué)學(xué)習(xí)期間,發(fā)現(xiàn)自己所學(xué)的所有編程語言都高度依賴于英語,他對此非常失望,因此決定從頭開始創(chuàng)造一種阿拉伯語編程語言,但這件事最終卻以失敗告終。對此,Ramsey Nasser指出了在開發(fā)中遇到的許多困難,最主要的一點(diǎn)便是:英語已經(jīng)深深烙印在了各種軟硬件操作系統(tǒng)之中,因此創(chuàng)造其他語種的編程語言需要用特定語種對過去幾十年的軟件工程進(jìn)行重寫,這幾乎是不可能完成的任務(wù)。
當(dāng)然,你可能會(huì)說如今市面上確實(shí)有不少基于非英語種的編程語言,例如中文編程語言“易語言”、日文編程語言“撫子”等。但其實(shí)它們都沒有成功擺脫英文編程語言的束縛,例如“易語言”就是基于C++進(jìn)行構(gòu)建的。這些非英語種編程語言,絕大部分只是基于傳統(tǒng)編程語言進(jìn)行了大量封裝和重寫。雖然對于初學(xué)者而言,這類語言的確會(huì)顯得相對簡單,但在性能、可用性等方面,這類語言則完全無法與傳統(tǒng)的基于英語的編程語言相比。
4、Web3會(huì)改變編程語言的新格局嗎?
分析最近十幾年編程語言的發(fā)展變化,我們不難發(fā)現(xiàn),現(xiàn)代編程語言的語法、特性、語言設(shè)施、編程范式等方面都在逐漸趨同,業(yè)界主流的編程語言都在朝著優(yōu)化開發(fā)者生產(chǎn)力的方向演進(jìn);谶@個(gè)趨勢,我們可以判斷,這便是Web2.0時(shí)代編程語言發(fā)展的終極目標(biāo)。
但隨著近期Web3呼聲的不斷加劇,新一代互聯(lián)網(wǎng)似乎已經(jīng)離我們越來越近了。而Web3的到來,勢必將會(huì)重塑整個(gè)互聯(lián)網(wǎng)的生態(tài)系統(tǒng),并催生出大量專屬于Web3時(shí)代的全新應(yīng)用。屆時(shí),我們將極有可能需要更多全新的、更加適用于編寫智能合約和開發(fā)區(qū)塊鏈應(yīng)用的編程語言來填補(bǔ)Web2與Web3之間的溝壑。
文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請謹(jǐn)慎對待。投資者據(jù)此操作,風(fēng)險(xiǎn)自擔(dān)。
京東11.11采銷直播探廠為消費(fèi)者揭開答案。近日,京東3C數(shù)碼采銷走進(jìn)武漢攀升工廠、合肥聯(lián)想工廠和科大訊飛展廳,通過直播帶貨廠商爆款產(chǎn)品,并為消費(fèi)者帶來超值低價(jià)與福利。
奧維云網(wǎng)(AVC)推總數(shù)據(jù)顯示,2024年1-9月明火炊具線上零售額94.2億元,同比增加3.1%,其中抖音渠道表現(xiàn)優(yōu)異,同比有14%的漲幅,傳統(tǒng)電商略有下滑,同比降低2.3%。
“以前都要去窗口辦,一套流程下來都要半個(gè)月了,現(xiàn)在方便多了!”打開“重慶公積金”微信小程序,按照提示流程提交相關(guān)材料,僅幾秒鐘,重慶市民曾某的賬戶就打進(jìn)了21600元。
華碩ProArt創(chuàng)藝27 Pro PA279CRV顯示器,憑借其優(yōu)秀的性能配置和精準(zhǔn)的色彩呈現(xiàn)能力,為您的創(chuàng)作工作帶來實(shí)質(zhì)性的幫助,雙十一期間低至2799元,性價(jià)比很高,簡直是創(chuàng)作者們的首選。
9月14日,2024全球工業(yè)互聯(lián)網(wǎng)大會(huì)——工業(yè)互聯(lián)網(wǎng)標(biāo)識解析專題論壇在沈陽成功舉辦。