當前位置:
首頁 > 知識 > 最終,JavaScript成為了一流語言

最終,JavaScript成為了一流語言

最終,JavaScript成為了一流語言



技術公司後端服務編程語言剖面圖(圖片來源:Stackshare.io)


2003年,保羅·格雷厄姆(Paul Graham)在文中提到,他的公司決定使用Lisp(一門編程語言)。在文章中他將Lisp描繪成計算機語言界的法語,它獨特、深邃,能夠表達難以描述的事物(亦即法語je ne sais quoi所指)。他指出自己公司相比競爭對手的優勢在於Lisp。


如果Lisp像法語,那麼現如今的JavaScript就像英語一般。儘管二者的語法不一致,但英語是世界上最廣泛使用的語言,JavaScript是最廣泛應用的計算語言。

然而,JavaScript仍未得到與其他語言同等的尊重。儘管它的使用率在創業公司和大型公司中持續增長,但若非必要,人們不會認為它是一門有用的語言。大公司的高級工程師聲稱它不是一門「真正的」編程語言,許多人並不知道除了操作像素外它還能被用於何處。


作為一名JavaScript工程師,我希望更深入地了解公眾對這門語言的看法,並觀察這些觀點在現實中到底有多牢不可破。我發現,一些批評有失水準,但更多的批評則是有意義的。


不斷增長的生態系統


除了樣式效果外,JavaScript也被越來越多地應用於軟體開發,例如後端任務、Web伺服器以及數據處理。Zeit首席執行官Guillermo Rauch指出,JavaScript「不是人為設計出來的,它是在進化過程中得到的結果。它成型很快,起初只關注一個很小的目標,後來都是市場的力量改造了這門語言。


Rauch的公司提供一個僅在瀏覽器和伺服器中使用JavaScript的開源Web框架,事實證明,許多公司都在做同樣的事情。


Rauch的公司提供了一個僅在瀏覽器和伺服器上使用JavaScript的開源Web框架。 事實證明,許多公司都在做同樣的事情。根據展示公司技術棧信息的網站StackShare.io的數據,在後端語言的選取上,相比Python(4000)或Java(3900),更多公司使用JavaScript(6000)。這個網站面向的更多是創業公司,但它從側面反映出JavaScript是一個不斷增長的生態系統。以下是展示不同公司技術棧極各自市場份額的維恩圖(數據來自StackShare.io)。

最終,JavaScript成為了一流語言



技術公司後端服務編程語言剖面圖(市場佔有率估值)


再來看看編程工作的數據吧,Indeed.com上的一個看法告訴我們,在美國,大多數編程工作都使用Java,但JavaScript並沒有落後,如下圖所示:

最終,JavaScript成為了一流語言



對JavaScript有正面影響的其他統計數據:


在Github上JavaScript開源項目的數量最多(比Java多出50%)。


NodeJS被評為StackOverflow 2017年開發者調查中最受歡迎的框架。


JavaScript是Stack Overflow中最流行的編程語言。


對JavaScript的批評


我諮詢過一位Oracle的朋友,他們的工程師對JavaScript有什麼顧慮。他說「由於JavaScript是一門解釋型無類型語言,對於系統編程來說它不是一門理想的編程語言」,這種針對JavaScript的投訴非常普遍。JavaScript函數接受任意類型的參數,但在Java中,如果參數不是特定類型1就會引發錯誤。


我又諮詢另外一位在谷歌工作的朋友,他向我指出NodeJS的一些公開的問題,他說,一些錯誤雖然微乎其微,但他會認為這個框架不夠成熟。


Rauch指出,JavaScript的垃圾回收不是最理想的。另一個批評是Java和Python更適合數據科學類的項目,如機器學習和自然語言處理。這可能與這些語言可用的庫有關,而非批判JavaScript的內在缺陷。學術界對Java和Python的依賴也助長了這種論調。

上述幾位工程師都曾提到,每當討論編程語言時,經常聽到其他工程師貶低JavaScript。大家對於JavaScript用於後端任務依然心存疑慮,但是大部分敵意似乎又與語言和生態系統的現狀無關。


JavaScript藝術的現狀


JavaScript在過去5年中已經走過很長一段路,早期JavaScript用例一般像Facebook的「Like」按鈕這樣的功能,每當用戶點擊「Like」圖標,頁面不會刷新,但會改變頁面狀態,這種特性只能通過JavaScript在網路上實現。


開發者幾年前開始通過JavaScript來製作單頁面應用程序(SPA)。術語「單頁」是指在瀏覽器中這些應用程序只載入一次代碼,所有後續視圖都是通過JavaScript生成的。反對者認為,用戶需要花很長時間才能完成初始下載,在手機上更是長達20-30秒!


在過去的兩年中,向瀏覽器發送JavaScript代碼的技術已得到顯著提高(參見:webpack)。這可以解決JavaScript Web應用緩慢的載入速度,提升性能並創建更好的用戶交互體驗。這是目前Web開發領域最先進的技術。


伴隨著技術進步,出現了新的JavaScript範式。狀態管理庫將計算機科學原理應用於用戶交互,JavaScript工程師的門檻變得更高。


在這些變化的背景下,對於早期階段的公司來說,使用JavaScript作為後端語言非常有意義,如果您已擁有優秀的前端JS攻城師,此舉可以讓它們更輕鬆地協作,審核和共享代碼。


儘管JavaScript最初是一門瀏覽器中的語言,但在計算機科學的各個方面-Web、移動端、物聯網和後端服務中,它都變得更加普遍。工程師是明智的,不要因為他們對語言過時的看法而解僱他們。其實JavaScript一直是一門「真正的」編程語言,只是此時此刻,這種聲明會比其他任何事情更容易被誤解。


總結


從這些觀察結果可以看出,JavaScript已經達到以下這些成為一流編程語言的標準:

被創業公司和大型私營公司用作後端服務框架(NodeJS)


有一個蓬勃發展的開源社區(在Github上最活躍)


作為一門專業技能,有大量的招聘需求要求掌握JavaScript知識(Indee.com)


最後,一家公司決定貫徹某種技術方案都是需要妥協的。我們在Commandiv這款產品中就同時使用JavaScript作為前端和後端服務語言,但這並不適合所有人,我們這麼做決定一部分原因是因為我么熟悉JavaScript這門語言。為了在創業初期快速啟動,請您使用最趁手的工具。


也就是說,我認為質疑JavaScript是否是一種「真正的」編程語言的時代已經過去,它的旅程遠沒有結束,但是其應用率和改進速度使我對其前進道路充滿信心。


感謝Alim S. Gafar對本文進行審核。


湯姆·金伯格(Tom Goldenberg)是Commandiv的首席技術官兼聯合創始人,Commandiv是一個人投資平台。


附註


1儘管該語言不支持靜態類型,但像Facebook和微軟這樣的公司已經發布了添加此功能的庫(Facebook發布了Flow,微軟發布了TypeScript)。


作者:Tom Goldenberg

原文:https://hackernoon.com/javascript-a-first-class-language-at-last-209376f69731


譯者:劉振濤


譯文:http://www.infoq.com/cn/news/2017/05/JavaScript-become-language


---- 廣告----


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 JavaScript 的精彩文章:

JavaScript非同步與Promise實現
這真的是我見過的最全的全套視頻資源
如何看待浙江大學申請雙向綁定技術專利
程序員的計劃和變化

TAG:JavaScript |

您可能感興趣

為什麼成立中韓語言交流會?The Language Exchange of Dreamtalk in Shanghai
Swift for TensorFlow 已在 GitHub 上開源,Tensor 成為 Swift 語言裡面的一等公民
大師語言 | John William Godward
Stream:我們為何要從Python轉到Go語言?
Facebook Libra的Move語言與其他語言有什麼不同?
首款基於Pascal腳本語言的全功能Web伺服器Moon Http Server即將上線
Facebook收購Bloomsbury AI,以提高自然語言處理能力打擊假新聞
Google Assistant 語音助手將支持更多語言,比 Siri 更加智能
Semantic Experiences網站:用自然語言同AI交流
身體的語言 ya.tender
用R語言的Blogdown+Hugo+Netlify+Github建博客
Kotlin和Swift語言在Redmonk榜上排名大幅提升
對話 Salesforce 首席科學家 Richard Socher:選擇 ML 是出於對數學和語言的熱愛
Salmon:一個基於Python語言的郵件伺服器
Stack Overflow最新薪資計算器出爐:DevOps和Go語言開發者是大贏家
Canonical宣布Kotlin編程語言Snap包格式上線
Google Duplex證明人類語言是唯一重要的API
微軟收購AI創企Semantic Machines,以實現更為自然的人機交互語言
換掉Python!那個還不錯的Stream公司上了GO語言的船!
Kotlin語言Web庫又添一虎將:Kweb