CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

WebAssemblyについてのQ and A

2023-10-26 01:05:08 | WebAssembly

WebAssemblyで何ができますか?

WebAssembly は、他の言語からコンパイルしたポータブルなバイトコード形式であり、最大のパフォーマンスを実現できます。 デベロッパーが WebAssembly を活用すると、別のプラットフォームのライブラリや機能をウェブに移植できます。 再実装は一切必要なく、高いパフォーマンスを発揮します。

WebAssemblyのメリットは何ですか?

WebAssemblyの最大のメリットは、WebブラウザでJavaScriptが担っていた処理の高速化が可能な点にあるでしょう。 JavaScriptとのベンチマーク検証を行ったところ、WebAssemblyの方が5倍以上高速に動作したというケースもあるほどです。

WebAssemblyのデメリットは?

WebAssemblyを使用することで、以下のようなデメリットもあります。


JavaScriptよりも低レベルな言語であるため、学習コストが高い


従来のWebアプリケーションよりも高速化が難しい場合がある


まだ一部のブラウザにしか対応していないため、普及には時間がかかる

WebAssembly なぜ早い?

WebAssemblyはJavaScriptに比べて機械コードに近く、サーバ側での最適化がすでに行われているため、コンパイルと最適化の所要時間がJavaScriptより短い。

WebAssemblyでできないことは?

Wasm自体はただの計算しか行うことができず、外のファイルを勝手に書き換えたりといった副作用を起こすことはできません。 また、ブラウザで動かす限りWasmがインポートできるものはJavaScriptで書けるもののみなので、結局WasmはJSにできる以上のことはできないということになります。

Webアプリの欠点は何ですか?

Webアプリの主なデメリットとしては次のものが挙げられます。

ホーム画面にアプリが置かれない(とくにホーム画面に通知を出せないことが多くのケースでデメリットとして挙げられます)


オフラインでの実行ができない


カメラ・マイク等端末側の機能(ネイティブ機能)を使用できない

C#のWebAssembly→Blazor

C++のWebAssembly→Emscripten

F#のWebAssembly→Bolero

※プログラミングスクールではほとんど何もできないような&俺のやりたいことが何一つできないようなJavascriptばかり教えているが、Javascriptマンセーな奴らは馬鹿なの死ぬの?wwwと思った。

やはり、C++、C#、F#しか勝たん!