JavaScript 正在蠶食著開發領域

Erucy發表於2015-12-03

JavaScript 正在蠶食著開發領域,抑或是開發領域正在蠶食著 JavaScript?

好吧,如果你相信 Parse 公司的聯合創始人兼技術長 Kevin Lacker 的話,現在的情況就是這樣的。

在本週於都柏林舉辦的 Web 峰會上,Lacker 在它的演講中表示,強大、無處不在的 JavaScript,及其完善的生態系統,會使得這門語言在未來幾年內成為應用、網站和伺服器端開發的預設語言。

現代開發者在近 10 年間的開發過程中,不得不面對這三大主要平臺:瀏覽器、伺服器和本地/手機應用。JavaScript 已經成為事實上的 Web 標準語言。而 Lacker 認為 JavaScript 正在接手伺服器端開發,馬上就要將觸手伸向安卓及 iOS 上的原生應用。

“在瀏覽器中幾乎沒什麼可能打亂 JavaScript 一統天下的局面” Lacker 說到,“更有意思的是在伺服器端開發領域。”

日益流行的 Node.js

Lacker 自己確實有利益在其中,因為 Parse 是一家著名的後臺服務提供商,他們使用了伺服器端的 JavaScript。Parse 公司在 2013 年被 Facebook 收購,並在最近幾年內成為了 Facebook 開發過程的關鍵所在。

Java、C、Python、Ruby、PHP 以及大量 ASP.NET(及其他語言)的衍生物,已經成為後端處理中傳統的伺服器語言。

“執行在伺服器上程式語言已經永遠是一個碎片化的市場了。” Lacker 說。

Lacker 可能確實有其動機在推進 JavaScript 的發展,最近幾年中 JavaScript 佔領伺服器端開發領域的趨勢日益顯著。

在伺服器端安裝 JavaScript 的趨勢已經有一段時間了,超過 20 多種流行的框架執行在其上。SilkJS、MongoDB、Aptana、CouchDB、Domino(IBM)、SAP HANA XS Engine、TeaJS 以及 Opera 都在這段時間內推出了其伺服器端的 JavaScript 框架,在技術領域廣受歡迎。

然而在伺服器端 JavaScript 領域中最耀眼的明星當屬 Node.js。

“如果你想要找工作的話,趕緊學習 Node.js吧,” Lacker 說。“ Node.js 正在發生著不同尋常的變化,它正在顛覆傳統的指令碼開發。”

傳統的指令碼開發是這樣的:你有兩個不同的開發團隊,一個後端一個前端。後端團隊處理在伺服器端的開發,使用的是需要編譯的語言(相對指令碼開發來說),比如 C# 或者 Java。而前端團隊則是在使用 HTML、CSS、JavaScript,以及原生應用開發語言比如 Swift、Object-C 或 Java。

Lacker 的觀點是,開發人員傾向於使用他們最熟悉的程式語言。而 JavaScript 的流行則意味著,現在的每個 Web 開發人員都能成為伺服器端開發,而無須從根本上改變其程式設計方式。

“同一個工程師團隊使用 JavaScript 和 Node.js,而不是 Java 和 JavaScript,” Lacker 說,“你有一個巨大的優勢,因為你在使用你已經瞭解的東西。”

Netflix 和 Paypal 都在使用後端 Node.js、前端 JavaScript 的開發方法,Lacker 這樣說到。

“每家公司總有人會寫 JavaScript,幾乎無一例外。” Lacker 說。“在伺服器端驅動 JavaScript 前行的力量是不同的……它的優勢在於你可以用更短的時間完成功能。”

原生應用緩慢地接受 JavaScript

Lacker 指出,在 JavaScript 正在蠶食開發領域這個論點中,最薄弱的環節就是應用生態環境。最優秀的高效能應用都是使用原生語言編寫的——在安卓上是 Java,在 iOS 上則是 Object-C / Swift。

但是程式設計師們在盼望一個通用的開發語言。HTML5 加上 CSS 和 JavaScript 曾經被認為是這個通用開發語言,不過“混合”應用(基本上是把網站“封裝”成原生應用)由於效能問題在近幾年開始淡出這個舞臺,。Lacker 認為第一代使用 JavaScript 建立原生應用(也就是混合應用)的工具——PhoneGap、Sencha、appMobi、Appcelerator——都還不錯,不過並沒有解決底層的問題。

Facebo 和 Parse 在嘗試解決這個問題。React Native 是一個 JavaScript 框架,它嘗試建立一套工具和方法,能夠不借助原生語言,只用 Web 技術來建立動態的原生 app。Xamarin 則是另一家公司,提供了跨平臺的原生應用開發工具,幫助開發者在 JavaScript 中呼叫 C#。(譯者注:在 Xamarin 中,通過 WebView 控制元件使用 JavaScript 呼叫 C# 只是該框架的很小一部分功能,Xamarin 基本上還是使用 C# 而非 JavaScript 進行開發的。在原始版本中作者將 Xamarin 描述為 JavaScript工具,經評論提醒後已進行修正。)

參見:一次編寫,多處執行:React Native 引領通用 App 開發潮流

“在這個核心領域的程式語言有可能發生改變的原因之一就是人們在這些語言的部署和應用上投入了大量的精力。” Lacker 說。

對於開發者來說,在當下使用 JavaScript 建立一個完全沉浸式的、動態的原生應用依然很困難。如果你提議說使用 JavaScript 來編寫一個街機風格的遊戲,那會招來人們的嘲笑。JavaScript 在硬體加速、遊戲引擎(比如 iOS 上的 Metal)以及圖形支援能力等方面都還沒有準備好。

JavaScript 作為全平臺的主導語言

Web 開發者(依然是開發者中最多的一支)被綁在了 JavaScript 上。到目前為止它還沒有任何競爭對手。Google 的 Dart 語言曾經試圖挑戰 JavaScript 的地位,不過 Google 意識到這不太可能成功,於是把 Dart 設計成能夠被編譯為 JavaScript 的語言(就像 CoffeeScript 或者 GorillaScript)。

Lacker 的主要觀點之一,就是 JavaScript 的生態環境能夠使得 JavaScript 變得更好,隨之而來的就是大型商業公司會逐步使用 JavaScript。生態環境使得產品越來越好,而越來越好的產品意味著佔領市場。

“其他的程式語言並沒有顯現出這種增長的勢頭。” Lacker 說到。

JavaScript 市場的增長證明了 Lacker 的這一觀點。

4 月份,在 Stack Overflow 的一份調查中顯示,54.8% 的開發者在使用 JavaScript。Node.js 同樣佔有了 13.3% 的席位。7 月,一家名為 Devpost 的公司指出,HTML 和 JavaScript 目前是在學生開發者當中最受歡迎的語言(資料來自其黑客馬拉松網路)。最近,Stack Overflow 做出了一份程式語言的情感分析。令人驚訝的是,JavaScript 在討厭比例的排行榜上並沒有排到很高。

“JavaScript 程式設計師的生態環境,以及 JavaScript 的工具正在佔領這個市場。市場也會反哺產品,讓它變得越來越好。這正是 JavaScript 逐步蠶食著開發領域的原因。” Lacker 說。

本文的原始版本錯誤地將 AngularJS 認為是伺服器端語言,現在本文已經更正了該問題。

標題圖片:“The Real JavaScript Robot”,來自 Flickr 使用者 Ben Alman,CC協議

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

JavaScript 正在蠶食著開發領域

相關文章