摘要:年,保羅格雷厄姆在他的一篇文章中提到,他的公司決定使用一門編程語言。然而,仍未得到與其他語言同等的尊重。被評為年開發(fā)者調(diào)查中最受歡迎的框架。是中最流行的編程語言。也就是說,我認(rèn)為質(zhì)疑是否是一種真正的編程語言的時(shí)代已經(jīng)過去。
原文:JavaScript-A First-Class Language At Last
作者:Tom Goldenberg
譯者:LeviDing
聲明:轉(zhuǎn)載請聯(lián)系本人,并注明出處。
2003年,保羅·格雷厄姆(Paul Graham)在他的一篇文章中提到,他的公司決定使用 Lisp (一門編程語言)。在文章中他將 Lisp 描繪成計(jì)算機(jī)語言界的法語,它獨(dú)特、深邃,能夠表達(dá)出難以描述的事物(就像法語中 je ne sais quoi 所指的)。他指出他的公司與競爭對手相比,優(yōu)勢就在于 Lisp 。
如果 Lisp 像法語,那么現(xiàn)如今的 JavaScript 就像英語一般。盡管二者的語法不太一致,但英語是世界上使用最廣泛的語言,JavaScript 是應(yīng)用最廣泛的計(jì)算機(jī)語言。
然而,JavaScript 仍未得到與其他語言同等的尊重。盡管它在創(chuàng)業(yè)公司和大型公司中的使用率持續(xù)增長,但 JavaScript 仍被認(rèn)為是一門沒那么重要的語言。大公司的高級工程師們聲稱它不是一門“真正的”編程語言,許多人并不知道除了操作像素,它還能被用于何處。
作為一名 JavaScript 工程師,我希望更深入地了解公眾對這門語言的看法,并觀察這些觀點(diǎn)在現(xiàn)實(shí)當(dāng)中是有多牢不可破。我發(fā)現(xiàn),有一部分的批評比較有水準(zhǔn),但大多數(shù)的批評則是沒有意義的。
不斷增長的生態(tài)系統(tǒng)除了樣式效果外,JavaScript 也被越來越多地用于軟件開發(fā)方面。例如后端任務(wù)、Web 服務(wù)器以及數(shù)據(jù)處理。Zeit 首席執(zhí)行官 Guillermo Rauch 指出,JavaScript 不是人為設(shè)計(jì)出來的,它是在進(jìn)化過程中得到的結(jié)果。它成型很快,起初只關(guān)注一個(gè)很小的方面,其余都是市場的力量對這門語言進(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 程序員的需求量也不低,如下圖所示:
對 JavaScript 有正面影響的其他統(tǒng)計(jì)數(shù)據(jù):
在 Github 上 JavaScript 開源項(xiàng)目的數(shù)量最多(比 Java 多出 50%)。
NodeJS 被評為 StackOverflow 2017 年開發(fā)者調(diào)查中最受歡迎的框架。
JavaScript 是 StackOverflow 中最流行的編程語言。
對 JavaScript 的批評:
我問過 Oracle 的一位朋友,他們的工程師對 JavaScript 有什么顧慮。他說“由于 JavaScript 是一門動態(tài)語言,對于系統(tǒng)編程來說,它并不是一門理想的編程語言”,這種針對 JavaScript 的抱怨非常普遍。JavaScript 的函數(shù)可以接受任意類型的參數(shù),但在 Java 中,如果參數(shù)不是特定類型就會報(bào)錯(cuò)。
function doSomething(literallyAnything) { return; }
我又問了另外一位在谷歌工作的朋友,他向我指出 NodeJS 的一些公認(rèn)的問題,他說,其中的一些問題雖然微乎其微,但使他會認(rèn)為這個(gè)框架還不夠成熟。
Rauch 指出,JavaScript 在垃圾回收方面并不是很理想。另一個(gè)方面,Java 和 Python 更適合數(shù)據(jù)科學(xué)類的項(xiàng)目,如機(jī)器學(xué)習(xí)和自然語言處理。這可能與這些語言的可用庫有關(guān),而非批判 JavaScript 的內(nèi)在缺陷。學(xué)術(shù)界對 Java 和 Python 的依賴也助長了這種論調(diào)。
上述幾位工程師都曾提到,每當(dāng)討論編程語言時(shí),經(jīng)常聽到其他工程師貶低 JavaScript。大家對于 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),頁面不會刷新,但會改變頁面狀態(tài),這種特性只能通過 JavaScript 在網(wǎng)絡(luò)上實(shí)現(xiàn)。
開發(fā)者幾年前開始通過 JavaScript 來制作單頁面應(yīng)用程序(SPA)。術(shù)語 single-page 是指在瀏覽器中這些應(yīng)用程序只加載一次代碼,所有后續(xù)視圖都是通過 JavaScript 生成的。反對者認(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 工程師的門檻變得更高。
在這些變化的背景下,對于發(fā)展初期的公司來說,使用 JavaScript 作為后端語言非常有意義,如果您已擁有優(yōu)秀的前端 JS 攻城師,此舉可以讓它們更輕松地協(xié)作,審核和共享代碼。
盡管 JavaScript 最初只是一門瀏覽器中的語言,但在計(jì)算機(jī)科學(xué)的各個(gè)方面 Web、移動端、物聯(lián)網(wǎng)和后端服務(wù)中,它都變得更加普及。工程師們不會因?yàn)樗麄儗φZ言的過時(shí)認(rèn)知而忽視它。其實(shí) JavaScript 一直是一門“真正的”編程語言,只不過這種聲明會比其他任何事情更容易被誤解。
總結(jié)從這些觀察結(jié)果可以看出,JavaScript 已經(jīng)達(dá)到以下這些成為一流編程語言的標(biāo)準(zhǔn):
被創(chuàng)業(yè)公司和大型公司用作后端服務(wù)框架(NodeJS)
有一個(gè)蓬勃發(fā)展的開源社區(qū)(在 GitHub 上最活躍)
作為一門專業(yè)技能,有大量的招聘需求中要求掌握 JavaScript 的知識(Indee.com)
最后,一家公司決定貫徹某種技術(shù)方案都是需要進(jìn)行妥協(xié)的。我們在 Commandiv 這款產(chǎn)品中就同時(shí)使用JavaScript 作為前端和后端的變成語言,但這并不適合所有人,我們這么決定,有一部分原因我們熟悉JavaScript 這門語言。為了在創(chuàng)業(yè)初期快速啟動,請使用你最熟悉的工具。
也就是說,我認(rèn)為質(zhì)疑 JavaScript 是否是一種“真正的”編程語言的時(shí)代已經(jīng)過去。JavaScript 前方的路還有很長,但是其應(yīng)用率和改進(jìn)速度使我對其前進(jìn)的道路充滿信心。
歡迎大家在評論區(qū)留下你的想法和感受!
歡迎大家加入學(xué)習(xí)交流QQ群:637481811
歡迎掃描上方二維碼關(guān)注 公眾號: LeviDing 訂閱實(shí)時(shí)動態(tài)。
本文首發(fā)于我的 個(gè)人網(wǎng)站 LeviDing 和微信公眾號,更多內(nèi)容歡迎關(guān)注我的個(gè)人網(wǎng)站和公眾號。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/112038.html
摘要:年,保羅格雷厄姆在他的一篇文章中提到,他的公司決定使用一門編程語言。然而,仍未得到與其他語言同等的尊重。被評為年開發(fā)者調(diào)查中最受歡迎的框架。是中最流行的編程語言。也就是說,我認(rèn)為質(zhì)疑是否是一種真正的編程語言的時(shí)代已經(jīng)過去。 原文:JavaScript-A First-Class Language At Last作者:Tom Goldenberg譯者:LeviDing聲明:轉(zhuǎn)載請聯(lián)系本人...
摘要:年,保羅格雷厄姆在他的一篇文章中提到,他的公司決定使用一門編程語言。然而,仍未得到與其他語言同等的尊重。被評為年開發(fā)者調(diào)查中最受歡迎的框架。是中最流行的編程語言。也就是說,我認(rèn)為質(zhì)疑是否是一種真正的編程語言的時(shí)代已經(jīng)過去。 原文:JavaScript-A First-Class Language At Last作者:Tom Goldenberg譯者:LeviDing聲明:轉(zhuǎn)載請聯(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:...
閱讀 3568·2021-11-18 13:20
閱讀 2726·2021-10-15 09:40
閱讀 1740·2021-10-11 10:58
閱讀 2106·2021-09-27 13:36
閱讀 2586·2021-09-07 10:06
閱讀 1848·2021-08-11 11:21
閱讀 1424·2019-08-29 17:04
閱讀 2079·2019-08-29 14:06