從引擎角度講,為什么瀏覽器只運(yùn)行JS,不能原生擴(kuò)展其他語(yǔ)言?

2023-11-05    分類: 網(wǎng)站建設(shè)

幾年前有一個(gè)類似的問(wèn)題:從引擎的角度來(lái)看,為什么瀏覽器只運(yùn)行JS,不能原生擴(kuò)展其他語(yǔ)言? -

綜上所述,原因有很多。最重要的是,一個(gè)瀏覽器支持多語(yǔ)言(及其VM)并不劃算(這個(gè)觀點(diǎn)也被我記憶中的JS之父Eich解釋過(guò))。引入一門新語(yǔ)言的好處一定要大到代價(jià)高昂,而且這樣的條件在歷史上是從來(lái)沒(méi)有過(guò)的,可以斷言以后也不會(huì)發(fā)生。 IE歷史上唯一能支持多語(yǔ)言的特例,是因?yàn)檎Z(yǔ)言引擎不包含在瀏覽器中,而是包含在OS中,而不僅僅是服務(wù)于瀏覽器。

基于目前各大瀏覽器廠商(當(dāng)然只能算是瀏覽器內(nèi)核廠商,如果你是一堆就別想了),理論上微軟可以考慮直接在瀏覽器中支持,但實(shí)際上,目標(biāo)是兼容 ES6+ 的一個(gè)超集。最好在其額外的特性進(jìn)入ES標(biāo)準(zhǔn)后,直接作為js引擎的升級(jí)來(lái)支持。另外,我也考慮過(guò)加入Dart,但我放棄了。目前最接近多語(yǔ)言的是各大主流js引擎廠商共同開(kāi)發(fā)的web,但它并不是新的語(yǔ)言和vm,而是現(xiàn)有js的擴(kuò)展。

IE 壟斷時(shí)期可能是唯一可以開(kāi)發(fā)多種語(yǔ)言的時(shí)期。但是vbs語(yǔ)言本身也有很多缺點(diǎn),比如語(yǔ)言特性不如js靈活,是私有語(yǔ)言,不是標(biāo)準(zhǔn)。此外,混合編程存在錯(cuò)誤處理等問(wèn)題,垃圾回收機(jī)制的差異導(dǎo)致混合編程容易出現(xiàn)內(nèi)存泄漏。這些都阻礙了vbs的普及或vbs/js的共存。關(guān)鍵是微軟并沒(méi)有通過(guò)大幅改善瀏覽器編程環(huán)境來(lái)大力推廣vbs,而是停止了幾年瀏覽器的開(kāi)發(fā)。當(dāng) IE 壟斷期過(guò)去后,瀏覽器上將不再有第二語(yǔ)言取代 js。

附注。有一個(gè)答案又臭又長(zhǎng),所以很神秘,還包含了很多低級(jí)錯(cuò)誤(比如vbs有安全問(wèn)題而js沒(méi)有),我討厭這種嚴(yán)重浪費(fèi)讀者心智的答案時(shí)間前端編程語(yǔ)言,我已經(jīng)反對(duì)了。加上沒(méi)有幫助。建議所有同意我答案的同學(xué)也提出反對(duì)意見(jiàn)和幫助,這個(gè)不好的答案盡快折疊。

【更新:回答不好答案的作者】你可能知道我強(qiáng)烈批評(píng)了某本JS書(shū)前端編程語(yǔ)言,最近我也強(qiáng)烈批評(píng)某本JS書(shū)的翻譯太爛了。如果這些書(shū)的作者和譯者跳出來(lái)說(shuō)我很努力,你太天真了,讀者又不是傻子,你無(wú)權(quán)干涉,你覺(jué)得有道理嗎?

請(qǐng)注意,我已經(jīng)明確表示,我討厭這種糟糕的答案,而不是針對(duì)您個(gè)人。年輕的時(shí)候也寫過(guò)很多自以為是的技術(shù)文章(也許現(xiàn)在)。相反,對(duì)于那些爛書(shū)和爛譯本,我可能不僅僅針對(duì)書(shū)本身。我要直接詛咒出版商。你明白其中的區(qū)別嗎?

[更新] 為什么這個(gè)答案是一個(gè)糟糕的答案,請(qǐng)參考這個(gè)答案下的評(píng)論。

網(wǎng)站題目:從引擎角度講,為什么瀏覽器只運(yùn)行JS,不能原生擴(kuò)展其他語(yǔ)言?
文章地址:http://www.bm7419.com/news32/292632.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站移動(dòng)網(wǎng)站建設(shè)、App開(kāi)發(fā)、自適應(yīng)網(wǎng)站、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)

網(wǎng)站建設(shè)知識(shí)