天天看點

無處不在的 JavaScript

作者 | Fernando Doglio

譯者 | 王強

策劃 | 闫園園

你知道那個梗嗎?就是有人試圖在任何帶有螢幕和某種輸入界面的電子裝置上運作 Doom 遊戲那個?

結果今天我們開始在 JavaScript 這邊也看到這種現象了。由于這種語言的通用性以及它背後社群的規模和活躍程度,JavaScript 的使用場景變得越來越多,遠遠超出了它一開始隻用于浏覽器的設計目标。

那麼我們就來看看我們最喜歡的程式設計語言到底能做多少事情,以至于我們可以開始展望一個完全由 JavaScript 塑造的未來了。

1

開發人員在哪裡都能見到它

很難向非開發人員解釋為什麼某件事情是用 JavaScript 來做的,因為他們很難了解背後的必然性。但我們開發人員是可以看到幕後的原因的,我們很了解自己最喜歡的産品背後使用的技術究竟有着怎樣的優勢。

正如我們即将看到的那樣,JavaScript 可以成為我們技術生活和個人生活的一部分。因為如前所述,我們在幾年前就超越了浏覽器的限制。這主要歸功于 Node.js,它讓我們都意識到自己可以在任何後端中運作 JS 了,而這一切都是從那時開始的。

2

硬體上的 JavaScript

這可能是讓 JS 融入我們日常生活的最大用例。

像 Johnny-Five 這樣的庫允許你将 JS 代碼嵌入到幾乎任何類型的開源硬體中運作。雖然這裡當然會有很多限制,你也不能随便拿起什麼晶片就用 JS 對其程式設計,但隻要你願意改一下你的電子裝置并在你的産品中放一個 Arduino(舉個例子),你就可以建立任何運作在 JavaScript 上的硬體。

不信我的話?甚至還有一個名為 Espruino 的項目,它提供了所有的硬體、手冊,甚至是開發環境,供你學習和使用 JS 來做各種事情。

我覺得這隻是一個開始,考慮到這種語言是如此簡單和靈活,它将推動可程式設計硬體的崛起,這種趨勢會一年比一年火熱。甚至有一個開源的 SmartWatch 可以用 JavaScript 來程式設計,名為 Bangle.js。

開放硬體,再加上開源軟體和快速發展的 3D 列印機等建立工具,為新一代黑客提供了絕佳的成長環境。他們能直接在家中建構自己的電子産品和電器,并使用以 JS 編寫的進階 API 對其進行程式設計。

3

用于人工智能的 JavaScript

雖然 Python 在進行一些嚴肅的 AI 程式設計工作(我指的是開發新的 ML 模型或進行一些繁重的資料處理)時仍然是更受歡迎的選擇,但 JS 也不甘落後。

事實上,借助以下庫,你已經可以使用 JavaScript 編寫軟體,利用經過訓練的 ML 模型了:

TensorFlow.js 允許你直接從浏覽器或指定的運作時運作經過訓練的機器學習模型。

Brain.js,一個使用 GPU 執行神經網絡優化的庫,可以在浏覽器和 Node.js 上運作。

ML5.js 建構在 Tensorflow 之上,可進一步簡化直接從 JavaScript 通路機器學習模型的過程。

Syntaptic.js,另一個用于直接在浏覽器或其他相容運作時(例如 Node.js)上建立神經網絡的庫。

其他社群為 AI 領域提供的生态系統與 JavaScript 所提供的生态系統之間仍然存在一定差距,而且考慮到 JavaScript 每年都在被移植到更多平台上,這種差距隻會繼續擴大。借助 JS,AI 社群遲早會發現他們能将 AI 帶到世界的每一個角落。

4

遊戲開發中的 JavaScript

雖然你還沒聽說過完全用 JavaScript 編寫的 3A 遊戲,但這種語言正在慢慢走近這個行業。

例如,雖然 Unity 确實放棄了對類 JS 語言的支援,但 JavaScript 本身就擁有制作遊戲所需的一切特性,至少可以用來制作運作在浏覽器上的遊戲。

不要誤會我的意思,這本身并不是一件壞事。浏覽器圖形渲染能力比起早期已經有了很大發展,你可以直接在浏覽器上獲得一些有趣的結果,并且也能充分利用計算機的 GPU 性能。

誠然,距離 3A 遊戲行業接受 JS 作為他們的标準之一還有很長的路要走,但這項技術已經有了自己的位置。浏覽器 API 可以給你提供從處理輸入到硬體加速所需的一切支援,是以我們遲早會看到第一個獨立遊戲工作室為節省成本而用 JS 打造的 3A 級遊戲。

其實我的目光放的更遠一些,如果在 2012 年的時候這個家夥就可以在當年的 XBOX 上運作完整的 JS 運作時,那麼我們遲早會看到所有主要平台上都會有 JS 運作時。一旦一家公司開發出來并獲得準許,許多公司就會效仿。

如果你隻對 Web 遊戲開發感興趣,你可能需要檢視用 JS 開發遊戲時用到的 top 9 庫清單:2020 年 9 個頂級 JS 遊戲引擎和庫。(https://blog.bitsrc.io/9-top-js-gaming-engines-and-libraries-for-2020-81707d9f095)

5

Web3 時代和 JavaScript 在這個新世界中的影響力

所有人都在談論這個話題,或者為它寫文章,抑或浏覽這個話題的相關内容。我說的就是新一代 Web,基于分布式和區塊鍊技術:Web3。

他們說這是 Web 的未來。它也完全依賴 JS,至少目前是這樣。

雖然你不會很快使用 JavaScript 編寫智能以太坊合約,但你将使用 Web3.js 等庫與區塊鍊互動來建立自己的 dApp(你的分布式應用程式)。

如果需要,你甚至可以使用 JavaScript 建立自己的區塊鍊。這仍然是一個全新的領域,很難準确預測它将如何演變,但我可以肯定的是,JS 将在這一演變中發揮重要作用。

6

用于移動開發的 JavaScript

考慮到我們多年來一直有能力使用 JS 為移動裝置編寫混合應用程式,這個主題大家都應該很熟悉了。

但是感謝 React Native 之類的項目,你還可以建立使用手機的原生 API 來渲染 UI 的應用程式。這種路徑在性能上絕對優于混合方法,并且由于它依舊相容主流移動作業系統,你仍然可以獲得在所有平台上使用單一語言的好處。

Skype、Facebook、Uber、Discord 等應用程式已經在利用這種原生技術了,這很明顯地告訴了我們移動行業的未來會是什麼樣子:由 JavaScript 打造。

有人可能會說,在接下來的幾年内我們将不斷看到 JavaScript 的新用例出現在各種各樣的地方。這種觀點可能是正确的,因為這種語言自身的演變趨勢表明,它正在适應其不知疲倦的社群不斷創造出來的新需求,這個社群希望讓 JS 無處不在。

我們接下來還會在哪裡看到 JavaScript 呢?我的猜測是,一旦我們意識到它是多麼強大的工具,以及将它嵌入到可穿戴等裝置上是多麼容易,我們就會在更多裝置中看到它。一旦遊戲工作室開始意識到這種語言的力量及其遊戲制作能力,我們也将在遊戲主機上見到它的身影。

你呢?你認為 JavaScript 在不久的将來會出現在哪裡?

https://blog.bitsrc.io/a-future-made-of-javascript-5ab417f34355

繼續閱讀