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