Google、Microsoft、Mozillaなどが協力して、Web用の新しいバイナリ形式であるWebAssemblyを立ち上げました

GoogleMicrosoftMozilla、およびWebKitプロジェクトエンジニアは、6月17日に、ウェブアプリケーションをコンパイルするための新しいバイナリ形式であるWebAssemblyを立ち上げるために提携したことを発表しました。



Webは標準のおかげで進化していますが、良いことも悪いことも、JavaScriptもその1つです。 ただし、長年にわたって、言語の制限を回避するための多くの試みがありました。たとえば、他の言語のコードをJavaScriptに変換するコンパイラーの作成などです。 これらのプロジェクトのいくつかは、新しい機能を言語(Microsoft TypeScriptなど )またはJavaScriptアクセラレーション(Mozilla asm.jsなど )に追加することに焦点を当てています。 現在、これらのプロジェクトの多くは、WebAssemblyで何らかの形で結合されています。



この新しい形式により、プログラマーはブラウザー用にコードをコンパイルできます(現在、開発者はC / C ++に焦点を合わせていますが、他の言語は後で追加されます)。 このコンパイルされたコードは、JavaScriptエンジン内で実行されます。 ソースコードを解析する代わりに(特にモバイルデバイスで)多くの場合に時間がかかりますが、WebAssemblyははるかに高速にデコードできます。



その考えは、WebAssemblyが開発者に単一のコンパイルメソッドを提供し、最終的にすべてのブラウザーに実装されるWeb標準になるというものです。



JavaScriptファイルは、サーバーからダウンロードされ、ブラウザーのJavaScriptエンジンによって解析およびコンパイルされる単純なテキストファイルです。 WebAssemblyチームは、標準のJavaScriptテキストファイルよりもコードをよりよく圧縮できるため、たとえばasm.jsをデコードするよりもエンジンがバイナリ形式をはるかに高速に(現在の実装では最大23倍高速に)バイナリー形式を使用することを決定しましたコード。



Mozillaのasm.jsプロジェクトには、Webの速度をネイティブに近づけるという長期的な目標があります。 ブラウザでネイティブコードを起動するためのGoogle Native Clientプロジェクトにも同様の目標がありますが、比較的小さなものです。 WebAssemblyがこれらのプロジェクトの最高のものをブラウザにもたらすことができるようになりました。



最初のステップとして、WebAssemblyチームは、asm.jsと同じ機能を実現することを目指しています(開発者は、現在asm.jsコードをコンパイルするために使用するWebAssemblyに同じEmscriptenユーティリティを使用できます)。



この初期段階では、チームはJavaScriptでWebAssemblyコードを翻訳するpolyfillライブラリを起動することも計画しており、組み込みのWebAssemblyサポートがなくてもブラウザで実行できるようになっています(このライブラリは不要なので、ブラウザがWebAssemblyのネイティブサポートを取得するとすぐに)。 時間が経つにつれて、チームはより多くのユーティリティ (コンパイラ、デバッガなど)を開発し、他の言語(Rust、Go、C#など)のサポートを追加します。



チームは、JavaScriptに代わるものではなく、Web用に他の多数の言語をコンパイルする機能を追加するというアイデアに注目しています。 確かに、JavaScriptとWebAssemblyの両方が一緒に使用される可能性があります。 たとえば、アプリケーションの一部でWebAssemblyモジュール(アニメーション、視覚化、圧縮など)を使用でき、ユーザーインターフェイスは主にJavaScriptで記述されます。



すべての重要なブラウザ開発者がこのようなプロジェクトに協力していることはめったにありません。



All Articles