偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如你所愿?如果有一天,JavaScript徹底消失了……

開(kāi)發(fā) 前端
“世界上只有兩種語(yǔ)言:一種為人抱怨,一種無(wú)人使用。”并不是每個(gè)人都愛(ài)JavaScript。時(shí)不時(shí)就會(huì)有人抱怨說(shuō)JavaScript應(yīng)由其他語(yǔ)言代替。

 “世界上只有兩種語(yǔ)言:一種為人抱怨,一種無(wú)人使用。”

——C++語(yǔ)言之父BjarneStroustrup 

[[286719]]

并不是每個(gè)人都愛(ài)JavaScript。

時(shí)不時(shí)就會(huì)有人抱怨說(shuō)JavaScript應(yīng)由其他語(yǔ)言代替。

理由是:JavaScript有許多地方十分莫名其妙,早該修復(fù)了。

由于開(kāi)發(fā)人員尚未對(duì)這些地方進(jìn)行修復(fù),于是人們想當(dāng)然地以為JavaScript就是一種蹩腳的語(yǔ)言,根本無(wú)法修復(fù)。既然如此,就應(yīng)該用其他語(yǔ)言把它換掉,最好是用吐槽者們最喜歡的語(yǔ)言。

但事實(shí)真的如此嗎?

我們?nèi)绾巫叩浇裉?

JavaScript很難稱(chēng)得上是一種完美的語(yǔ)言,因?yàn)樗_實(shí)有些地方很奇怪。僅僅十日之內(nèi)開(kāi)發(fā)者就完成了JavaScript的開(kāi)發(fā)設(shè)計(jì)并使其更像Java,那么便不得不承受這一后果。

但是沒(méi)有一種語(yǔ)言是完美的,自ES6以來(lái),JavaScript已經(jīng)取得了巨大進(jìn)步,而且還在持續(xù)改進(jìn)。它從一種僅用于web頁(yè)面上制作動(dòng)畫(huà)的“玩具語(yǔ)言”,現(xiàn)已演變?yōu)橐环N嚴(yán)格意義上的編程語(yǔ)言,現(xiàn)如今JavaScript運(yùn)用于各類(lèi)大型且復(fù)雜的web應(yīng)用程序中。

JavaScript幾乎無(wú)處不在,成為目前世界上使用最多的編程語(yǔ)言。

那么,為什么有些開(kāi)發(fā)人員還在吵著要換掉它?

了解這門(mén)語(yǔ)言

人們對(duì)JavaScript的諸多吐槽源于他們的無(wú)知,他們不了解這門(mén)語(yǔ)言,也不愿意真正用心去學(xué)習(xí)這門(mén)語(yǔ)言。

this關(guān)鍵字、原型繼承和不變性缺乏是JavaScript中的三大混淆源。如果開(kāi)發(fā)人員已經(jīng)習(xí)慣了另一種語(yǔ)言,筆者能理解。同樣的,筆者也能理解由此造成的困惑和憤怒。

但這些都并非不可逾越。只要愿意學(xué),JavaScript也沒(méi)那么高深莫測(cè)。

開(kāi)發(fā)人員以為用另一種語(yǔ)言換掉JavaScript,便能一勞永逸,雖然這種想法可以理解,但這既不現(xiàn)實(shí),也非真正的解決之策。

“不破壞web”原則

JavaScript、HTML和CSS的首要設(shè)計(jì)原則是新特征可能永遠(yuǎn)不會(huì)破壞現(xiàn)有的網(wǎng)站。

這實(shí)質(zhì)上是將JavaScript變成了一種只可添加的編程語(yǔ)言:只要不破壞現(xiàn)有的網(wǎng)站,就可以添加特征,而新添加的特征可能永遠(yuǎn)不會(huì)改變或者移除現(xiàn)有的特征。

這一原則能夠確?,F(xiàn)有網(wǎng)站永不崩潰,即便這些網(wǎng)站創(chuàng)建于幾十年前,第39號(hào)技術(shù)專(zhuān)家委員會(huì)(TC39) 也會(huì)不遺余力堅(jiān)持這一原則。

這固然是件好事,但也確實(shí)給JavaScript增添了負(fù)擔(dān),因?yàn)樘卣髦荒芴砑拥狡渲卸荒芨摹?/p>

因此,雖然JavaScript中令人混淆的方面在理論上是可以修復(fù)的,比如this關(guān)鍵字,但可能會(huì)破壞現(xiàn)有的網(wǎng)站,而這些網(wǎng)站在修復(fù)之前是可以完美運(yùn)行的。顯然這是不可接受的,因?yàn)樗`反了“不破壞web”的原則。

使用另一種語(yǔ)言并非解決之策

理論上可以用一種新的語(yǔ)言取代JavaScript,不過(guò)在技術(shù)和邏輯處理上卻十分棘手,且無(wú)休無(wú)止,這也不無(wú)可能。

但是這種語(yǔ)言也需要遵循“不破壞web”的原則,這基本上也把這種語(yǔ)言變成了一種只可添加的語(yǔ)言??赡芤呀?jīng)可以預(yù)測(cè)到,人們對(duì)該種語(yǔ)言的熱情將會(huì)下降,很快人們就會(huì)聽(tīng)到同樣的呼聲要求替換掉該種語(yǔ)言。

這個(gè)原則對(duì)JavaScript的約束,限制了其發(fā)展的方式,這也將適用于任何需要遵守該原則的語(yǔ)言。這就造就了今天的JavaScript,任何一種語(yǔ)言都無(wú)法取代它而不受該原則的約束。

在過(guò)去20多年里,JavaScript保持著前所未有的向后兼容性,這實(shí)際上是一巨大成就。web發(fā)展到今天,JavaScript功不可沒(méi),它該因此而受到喝彩,而不該遭到人們的痛恨。

從頭開(kāi)始? 

希望開(kāi)發(fā)人員現(xiàn)在已經(jīng)意識(shí)到,用另一種語(yǔ)言完全替代JavaScript是不太可能的。但如果真的不想好好學(xué)習(xí)JavaScript,還可以通過(guò)WebAssembly和其他十幾種可編譯成JavaScript的語(yǔ)言來(lái)學(xué)習(xí)。

筆者對(duì)TypeScript印象深刻,這是因?yàn)樗梢詫㈧o態(tài)類(lèi)型的特征添加到JavaScript和PureScript中,這就好比瀏覽器中的Haskell,可以進(jìn)行成熟的函數(shù)式編程。

但是額外的編輯步驟一如既往,使學(xué)習(xí)變得更加復(fù)雜,那么問(wèn)題來(lái)了:這樣做是否值得。目前筆者建議使用TypeScript,因?yàn)樗荍avaScript的一個(gè)超集,兩者非常類(lèi)似。TypeScript也在積極發(fā)展壯大,擁有一個(gè)龐大的社區(qū)。

需要花時(shí)間去學(xué)習(xí)它,也可以用這些時(shí)間好好學(xué)習(xí)JavaScript。它沒(méi)那么高深莫測(cè),不可學(xué)習(xí),一旦掌握它的奇怪之處,就會(huì)發(fā)現(xiàn)它是一種非常強(qiáng)大且通用的語(yǔ)言。它并非完美無(wú)暇,但卻是必不可少的。

話(huà)說(shuō)回來(lái),沒(méi)有一種語(yǔ)言是完美的。

選擇權(quán)在你。

 

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2022-06-09 09:27:16

前端行業(yè)生存

2024-09-26 11:21:09

2013-10-15 10:02:24

IEIE10IE11

2016-05-06 10:02:33

CSSJavaScript工具

2012-10-18 13:26:53

Wi-Fi以太網(wǎng)FDDI

2019-12-26 10:47:55

程序員Google電腦

2023-09-25 10:24:47

CIOIT團(tuán)隊(duì)

2018-10-22 17:52:28

GitHub代碼開(kāi)發(fā)者

2019-12-10 09:08:29

分布式開(kāi)源RocketMQ

2017-11-02 15:04:15

2018-12-09 14:55:07

區(qū)塊鏈加密貨幣比特幣

2024-10-07 09:49:14

2021-04-01 07:44:45

排名調(diào)整Java Java基礎(chǔ)

2019-04-28 09:56:15

程序員互聯(lián)網(wǎng)脫發(fā)

2021-03-29 08:20:51

入職后端官場(chǎng)

2018-03-19 10:30:17

程序員永久斷網(wǎng)

2022-12-12 16:37:31

云遷移云計(jì)算IaaS

2020-05-11 08:36:21

程序員工作生活

2015-11-18 10:44:12

智能

2017-06-15 16:23:48

白熊視頻/人工智能/騰
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)