JavaScript,大有前景的編程語言

原文:JavaScript-A First-Class Language At Last
做者:Tom Goldenberg
譯者:LeviDing
聲明:轉載請聯繫本人,並註明出處。javascript

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

若是 Lisp 像法語,那麼現現在的 JavaScript 就像英語通常。儘管兩者的語法不太一致,但英語是世界上使用最普遍的語言,JavaScript 是應用最普遍的計算機語言。java

然而,JavaScript 仍未獲得與其餘語言同等的尊重。儘管它在創業公司和大型公司中的使用率持續增加,但 JavaScript 仍被認爲是一門沒那麼重要的語言。大公司的高級工程師們聲稱它不是一門「真正的」編程語言,許多人並不知道除了操做像素,它還能被用於何處。webpack

做爲一名 JavaScript 工程師,我但願更深刻地瞭解公衆對這門語言的見解,並觀察這些觀點在現實當中是有多牢不可破。我發現,有一部分的批評比較有水準,但大多數的批評則是沒有意義的。程序員

不斷增加的生態系統

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

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

公司後端編程語言的市場份額

再來看看不一樣語言程序員的工資狀況吧,Indeed.com 上的數據告訴咱們,在美國,Java 程序員的需求量較大,但 JavaScript 程序員的需求量也不低,以下圖所示:後端

對 JavaScript 有正面影響的其餘統計數據:瀏覽器

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

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

  • JavaScript 是 StackOverflow 中最流行的編程語言。

對 JavaScript 的批評:

我問過 Oracle 的一位朋友,他們的工程師對 JavaScript 有什麼顧慮。他說「因爲 JavaScript 是一門動態語言,對於系統編程來講,它並非一門理想的編程語言」,這種針對 JavaScript 的抱怨很是廣泛。JavaScript 的函數能夠接受任意類型的參數,但在 Java 中,若是參數不是特定類型就會報錯。

function doSomething(literallyAnything) { 
    return;
}

我又問了另一位在谷歌工做的朋友,他向我指出 NodeJS 的一些公認的問題,他說,其中的一些問題雖然微乎其微,但使他會認爲這個框架還不夠成熟。

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

上述幾位工程師都曾提到,每當討論編程語言時,常常聽到其餘工程師貶低 JavaScript。你們對於 JavaScript 用於後端依然心存疑慮,可是大部分敵意彷佛又與這門語言及其生態系統的現狀無關。

JavaScript 的現狀

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

開發者幾年前開始經過 JavaScript 來製做單頁面應用程序(SPA)。術語 single-page 是指在瀏覽器中這些應用程序只加載一次代碼,全部後續視圖都是經過 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 是不是一種「真正的」編程語言的時代已通過去。JavaScript 前方的路還有很長,可是其應用率和改進速度使我對其前進的道路充滿信心。

歡迎你們在評論區留下你的想法和感覺!

歡迎你們加入學習交流QQ羣:637481811


微信公衆號: LeviDing

歡迎掃描上方二維碼關注 公衆號: LeviDing 訂閱實時動態。

本文首發於個人 我的網站 LeviDing 和微信公衆號,更多內容歡迎關注個人我的網站和公衆號。

相關文章
相關標籤/搜索