WebAssembly 入門快問快答

WebAssembly 旨在徹底提高應用程序的性能、安全性和開發人員的生產力。 它用託管容器和細顆粒度的安全模型替換本機代碼。

在學習WebAseembly 的過程中,總會遇到一些問題。這裏選取了關於 WebAssembly 比較典型的幾個問題,一一解答。

2020年,我們爲什麼用本地代碼編程?

在過去的幾年中,CPU 的速度基本不再飛速提升。 同時,人工智能、大數據和區塊鏈都對計算能力提出了巨大的要求。 到目前爲止,解決方案是在我們的軟件中使用越來越多的本地代碼。 本機代碼效率高,接近硬件,能夠訪問專門的硬件,如 GPU 和人工智能芯片。

然而,本機代碼也存在平臺依賴性和安全性等問題。 在過去的30年裏,軟件工程的大趨勢已經從原生代碼轉變爲運行在虛擬機器或容器中的託管代碼。

WebAsssembly 比本機代碼好在哪裏?

WebAssembly 是下一代虛擬機,它將幫助我們將本機代碼模塊轉換爲 服務。

  • 可以用多種編程語言編寫 WebAssembly 程序,而不僅僅是 c 和 c + + 。特別要指出,WebAssembly 能很好地支持Rust。

  • 可以從多個編程框架(如 JavaScript、 Python 和 PHP)訪問或調用 WebAssembly 程序。

  • WebAssembly 是跨平臺的。 它們可以在所有主要的操作系統和硬件平臺上無需更改即可運行。

  • WebAssembly 程序相當安全,因爲它們在虛擬機中執行。

  • 由於其輕量級的虛擬機設計,WebAssembly 程序具有效率高,速度快的特點。 它與本機代碼性能相當。

  • WebAssembly 提供了一種訪問新硬件的簡單而安全的擴展機制

WebAssembly 安全、速度快且跨平臺。 但是,WebAssembly 不是主要在瀏覽器內部使用嗎?

WebAssembly 是由 Google,Mozilla,Apple 和 Microsoft 合作發起的。 它一開始的設計目標是一個在瀏覽器內部的高性能代碼執行引擎。 在這個情況下,它的典型應用是對性能有高要求的的瀏覽器應用,比如動畫遊戲,很像早先的 java applet。

然而,和之前的 Java 和 JavaScript 一樣,WebAssembly 在正在大舉向服務器端遷移,並也取得了成功。 Webassembly 的安全性、性能、平臺和語言兼容性,使其成爲理想的服務器端運行環境。

想要使用WebAssembly必須學會Rust語言,是這樣嗎?

不用。WebAssembly 兼容多語言。 可以用各種不同的主機語言調用 WebAssembly 程序和函數,比如 Javascript、 Rust、 Go、 Python,甚至 PHP。

您可以用各種不同的編程語言編寫 WebAssembly 程序。 然而,Rust 是目前最廣泛用於創建 WebAssembly 程序和模塊的語言。

Rust 連續4年被評爲最受大家喜愛的編程語言。 它是目前最熱門的編程語言。 它有許多令人激動的特性。比如,它像 c 一樣強大而靈活,但是更加安全,而且沒有 Java 的性能損耗。 它既支持面向對象編程,也支持函數式編程。 它是世界上成長最快的編程語言之一,現在從前端到後端到基礎設施的整個軟件堆棧中都使用它。

你對 WebAssembly 有什麼疑問呢?歡迎在評論區留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章