WebAssembly 入門快問快答

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

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

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。app

您能夠用各類不一樣的編程語言編寫 WebAssembly 程序。 然而,Rust 是目前最普遍用於建立 WebAssembly 程序和模塊的語言。框架

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

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

相關文章
相關標籤/搜索