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