摘要:年,保羅格雷厄姆在他的一篇文章中提到,他的公司決定使用一門編程語言。然而,仍未得到與其他語言同等的尊重。被評(píng)為年開發(fā)者調(diào)查中最受歡迎的框架。是中最流行的編程語言。也就是說,我認(rèn)為質(zhì)疑是否是一種真正的編程語言的時(shí)代已經(jīng)過去。
原文:JavaScript-A First-Class Language At Last
作者:Tom Goldenberg
譯者:LeviDing
聲明:轉(zhuǎn)載請(qǐng)聯(lián)系本人,并注明出處。
2003年,保羅·格雷厄姆(Paul Graham)在他的一篇文章中提到,他的公司決定使用 Lisp (一門編程語言)。在文章中他將 Lisp 描繪成計(jì)算機(jī)語言界的法語,它獨(dú)特、深邃,能夠表達(dá)出難以描述的事物(就像法語中 je ne sais quoi 所指的)。他指出他的公司與競爭對(duì)手相比,優(yōu)勢(shì)就在于 Lisp 。
如果 Lisp 像法語,那么現(xiàn)如今的 JavaScript 就像英語一般。盡管二者的語法不太一致,但英語是世界上使用最廣泛的語言,JavaScript 是應(yīng)用最廣泛的計(jì)算機(jī)語言。
然而,JavaScript 仍未得到與其他語言同等的尊重。盡管它在創(chuàng)業(yè)公司和大型公司中的使用率持續(xù)增長,但 JavaScript 仍被認(rèn)為是一門沒那么重要的語言。大公司的高級(jí)工程師們聲稱它不是一門“真正的”編程語言,許多人并不知道除了操作像素,它還能被用于何處。
作為一名 JavaScript 工程師,我希望更深入地了解公眾對(duì)這門語言的看法,并觀察這些觀點(diǎn)在現(xiàn)實(shí)當(dāng)中是有多牢不可破。我發(fā)現(xiàn),有一部分的批評(píng)比較有水準(zhǔn),但大多數(shù)的批評(píng)則是沒有意義的。
不斷增長的生態(tài)系統(tǒng)除了樣式效果外,JavaScript 也被越來越多地用于軟件開發(fā)方面。例如后端任務(wù)、Web 服務(wù)器以及數(shù)據(jù)處理。Zeit 首席執(zhí)行官 Guillermo Rauch 指出,JavaScript 不是人為設(shè)計(jì)出來的,它是在進(jìn)化過程中得到的結(jié)果。它成型很快,起初只關(guān)注一個(gè)很小的方面,其余都是市場的力量對(duì)這門語言進(jìn)行的改造。
Rauch 的公司提供一個(gè)僅在瀏覽器和服務(wù)器中使用 JavaScript 的開源 Web 框架,事實(shí)證明,許多公司都在做同樣的事。根據(jù)展示公司技術(shù)棧信息的網(wǎng)站 StackShare.io 上的數(shù)據(jù),在后端語言的選取上,相比 Python(4000)或 Java(3900),更多公司選擇使用 JavaScript(6000)。這個(gè)網(wǎng)站面向的更多的是創(chuàng)業(yè)型公司,但它從側(cè)面反映出了關(guān)于 JavaScript 的一個(gè)不斷增長的生態(tài)系統(tǒng)。以下是展示不同公司的技術(shù)堆棧及其各自的市場份額的維恩圖(數(shù)據(jù)來自 StackShare.io)。
再來看看不同語言程序員的工資情況吧,Indeed.com 上的數(shù)據(jù)告訴我們,在美國,Java 程序員的需求量較大,但 JavaScript 程序員的需求量也不低,如下圖所示:
對(duì) JavaScript 有正面影響的其他統(tǒng)計(jì)數(shù)據(jù):
在 Github 上 JavaScript 開源項(xiàng)目的數(shù)量最多(比 Java 多出 50%)。
NodeJS 被評(píng)為 StackOverflow 2017 年開發(fā)者調(diào)查中最受歡迎的框架。
JavaScript 是 StackOverflow 中最流行的編程語言。
對(duì) JavaScript 的批評(píng):
我問過 Oracle 的一位朋友,他們的工程師對(duì) JavaScript 有什么顧慮。他說“由于 JavaScript 是一門動(dòng)態(tài)語言,對(duì)于系統(tǒng)編程來說,它并不是一門理想的編程語言”,這種針對(duì) JavaScript 的抱怨非常普遍。JavaScript 的函數(shù)可以接受任意類型的參數(shù),但在 Java 中,如果參數(shù)不是特定類型就會(huì)報(bào)錯(cuò)。
function doSomething(literallyAnything) { return; }
我又問了另外一位在谷歌工作的朋友,他向我指出 NodeJS 的一些公認(rèn)的問題,他說,其中的一些問題雖然微乎其微,但使他會(huì)認(rèn)為這個(gè)框架還不夠成熟。
Rauch 指出,JavaScript 在垃圾回收方面并不是很理想。另一個(gè)方面,Java 和 Python 更適合數(shù)據(jù)科學(xué)類的項(xiàng)目,如機(jī)器學(xué)習(xí)和自然語言處理。這可能與這些語言的可用庫有關(guān),而非批判 JavaScript 的內(nèi)在缺陷。學(xué)術(shù)界對(duì) Java 和 Python 的依賴也助長了這種論調(diào)。
上述幾位工程師都曾提到,每當(dāng)討論編程語言時(shí),經(jīng)常聽到其他工程師貶低 JavaScript。大家對(duì)于 JavaScript 用于后端依然心存疑慮,但是大部分?jǐn)骋馑坪跤峙c這門語言及其生態(tài)系統(tǒng)的現(xiàn)狀無關(guān)。
JavaScript 的現(xiàn)狀JavaScript 在過去 5 年中已經(jīng)走過很長一段路,早期 JavaScript 的用例一般像 Facebook 的 Like 按鈕這樣,每當(dāng)用戶點(diǎn)擊 Like 圖標(biāo),頁面不會(huì)刷新,但會(huì)改變頁面狀態(tài),這種特性只能通過 JavaScript 在網(wǎng)絡(luò)上實(shí)現(xiàn)。
開發(fā)者幾年前開始通過 JavaScript 來制作單頁面應(yīng)用程序(SPA)。術(shù)語 single-page 是指在瀏覽器中這些應(yīng)用程序只加載一次代碼,所有后續(xù)視圖都是通過 JavaScript 生成的。反對(duì)者認(rèn)為,用戶需要花很長時(shí)間才能完成初始下載,在手機(jī)上更是長達(dá) 20-30 秒!
在過去的兩年中,將 JavaScript 代碼發(fā)送到瀏覽器的技術(shù)已經(jīng)大大改善(參見:webpack)。這可以解決JavaScript Web 應(yīng)用的緩慢的加載速度,提升性能并提供更好的用戶交互體驗(yàn)。這是目前 Web 開發(fā)領(lǐng)域最先進(jìn)的技術(shù)。
伴隨著技術(shù)進(jìn)步,出現(xiàn)了新的 JavaScript 范式。狀態(tài)管理庫將計(jì)算機(jī)科學(xué)原理應(yīng)用于用戶交互,JavaScript 工程師的門檻變得更高。
在這些變化的背景下,對(duì)于發(fā)展初期的公司來說,使用 JavaScript 作為后端語言非常有意義,如果您已擁有優(yōu)秀的前端 JS 攻城師,此舉可以讓它們更輕松地協(xié)作,審核和共享代碼。
盡管 JavaScript 最初只是一門瀏覽器中的語言,但在計(jì)算機(jī)科學(xué)的各個(gè)方面 Web、移動(dòng)端、物聯(lián)網(wǎng)和后端服務(wù)中,它都變得更加普及。工程師們不會(huì)因?yàn)樗麄儗?duì)語言的過時(shí)認(rèn)知而忽視它。其實(shí) JavaScript 一直是一門“真正的”編程語言,只不過這種聲明會(huì)比其他任何事情更容易被誤解。
總結(jié)從這些觀察結(jié)果可以看出,JavaScript 已經(jīng)達(dá)到以下這些成為一流編程語言的標(biāo)準(zhǔn):
被創(chuàng)業(yè)公司和大型公司用作后端服務(wù)框架(NodeJS)
有一個(gè)蓬勃發(fā)展的開源社區(qū)(在 GitHub 上最活躍)
作為一門專業(yè)技能,有大量的招聘需求中要求掌握 JavaScript 的知識(shí)(Indee.com)
最后,一家公司決定貫徹某種技術(shù)方案都是需要進(jìn)行妥協(xié)的。我們?cè)?Commandiv 這款產(chǎn)品中就同時(shí)使用JavaScript 作為前端和后端的變成語言,但這并不適合所有人,我們這么決定,有一部分原因我們熟悉JavaScript 這門語言。為了在創(chuàng)業(yè)初期快速啟動(dòng),請(qǐng)使用你最熟悉的工具。
也就是說,我認(rèn)為質(zhì)疑 JavaScript 是否是一種“真正的”編程語言的時(shí)代已經(jīng)過去。JavaScript 前方的路還有很長,但是其應(yīng)用率和改進(jìn)速度使我對(duì)其前進(jìn)的道路充滿信心。
歡迎大家在評(píng)論區(qū)留下你的想法和感受!
歡迎大家加入學(xué)習(xí)交流QQ群:637481811
歡迎掃描上方二維碼關(guān)注 公眾號(hào): LeviDing 訂閱實(shí)時(shí)動(dòng)態(tài)。
本文首發(fā)于我的 個(gè)人網(wǎng)站 LeviDing 和微信公眾號(hào),更多內(nèi)容歡迎關(guān)注我的個(gè)人網(wǎng)站和公眾號(hào)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/83214.html
摘要:年,保羅格雷厄姆在他的一篇文章中提到,他的公司決定使用一門編程語言。然而,仍未得到與其他語言同等的尊重。被評(píng)為年開發(fā)者調(diào)查中最受歡迎的框架。是中最流行的編程語言。也就是說,我認(rèn)為質(zhì)疑是否是一種真正的編程語言的時(shí)代已經(jīng)過去。 原文:JavaScript-A First-Class Language At Last作者:Tom Goldenberg譯者:LeviDing聲明:轉(zhuǎn)載請(qǐng)聯(lián)系本人...
摘要:年,保羅格雷厄姆在他的一篇文章中提到,他的公司決定使用一門編程語言。然而,仍未得到與其他語言同等的尊重。被評(píng)為年開發(fā)者調(diào)查中最受歡迎的框架。是中最流行的編程語言。也就是說,我認(rèn)為質(zhì)疑是否是一種真正的編程語言的時(shí)代已經(jīng)過去。 原文:JavaScript-A First-Class Language At Last作者:Tom Goldenberg譯者:LeviDing聲明:轉(zhuǎn)載請(qǐng)聯(lián)系本人...
摘要:周末在網(wǎng)上閑逛,發(fā)現(xiàn)了一個(gè)叫波蘭程序員,從年開始,開發(fā)一個(gè)叫做的語言。注意,不是語言啊,在字母上還有一撇,這是個(gè)波蘭字母,我搜了一下發(fā)音好像有點(diǎn)像赤。 周末在網(wǎng)上閑逛, 發(fā)現(xiàn)了一個(gè)叫Piotr Fusik波蘭程序員,從2011年開始,開發(fā)一個(gè)叫做?的語言。? GitHub :https:...
閱讀 1839·2021-11-11 16:55
閱讀 760·2019-08-30 15:53
閱讀 3599·2019-08-30 15:45
閱讀 747·2019-08-30 14:10
閱讀 3276·2019-08-30 12:46
閱讀 2134·2019-08-29 13:15
閱讀 2035·2019-08-26 13:48
閱讀 942·2019-08-26 12:23