WebAssemblyã®ä»çµã¿ â ãã©ãŠã¶ã§ãã€ãã£ãçŽã®é床ãåºãã¯ã±
WebAssemblyã£ãŠJavaScriptã®ä»£ããã«ãªããã®ãªã®ïŒ
代ãããšãããããè£å®ãã ããJavaScriptã¯æè»ã§æžãããããã©ãã€ã³ã¿ããªã¿ã§åãããéãåŠçã¯èŠæãWebAssemblyïŒç¥ããŠWasmïŒã¯ãã©ãŠã¶äžã§åããã€ããªåœä»€åœ¢åŒã§ããã€ãã£ãã«è¿ãé床ãåºããã ãç»ååŠçã3Dãåç»ç·šéã¿ãããªCPUéçŽåã®åŠçã«åããŠãããã
ãã€ããªåœä»€åœ¢åŒã£ãŠãã©ããã£ãŠäœãã®ïŒ
CãC++ãRustãªã©ã®ããã°ã©ãã³ã°èšèªã§æžããã³ãŒãããLLVMãªã©ã®ã³ã³ãã€ã©ã.wasmãã¡ã€ã«ã«å€æãããã ãããšãã°Rustãªããcargo build --target wasm32-unknown-unknownãã§Wasmãã€ããªãçæããããEmscriptenãšããããŒã«ãã§ãŒã³ã䜿ãã°C/C++ã®ã³ãŒããWasmã«ã³ã³ãã€ã«ã§ãããã
ãã©ãŠã¶ã¯ãã®ãã€ããªãã©ããã£ãŠåããã®ïŒ
ãã©ãŠã¶ã®Wasmãšã³ãžã³ã.wasmãã€ããªãåãåã£ãŠããŸãããªããŒã·ã§ã³ïŒåãã§ãã¯ãªã©ïŒãè¡ããæ¬¡ã«ãã€ãã£ãã®ãã·ã³ã³ãŒãã«ã³ã³ãã€ã«ãããã ããã®ã³ã³ãã€ã«ãéåžžã«é«éãªã®ããã€ã³ãã§ãJavaScriptã®ããã«ããŸãã€ã³ã¿ããªã¿ã§å®è¡âããããã¹ã ãJITã³ã³ãã€ã«ããšããæ®µéãèžãŸãªããŠãããã¹ããªãŒãã³ã°ã³ã³ãã€ã«ãšãã£ãŠãããŠã³ããŒãããªããåæã«ã³ã³ãã€ã«ããããšãã§ãããã
JavaScriptãšã¯äžç·ã«äœ¿ããã®ïŒ
ãã¡ããïŒWasmã¢ãžã¥ãŒã«ã¯import/exportã®ä»çµã¿ãæã£ãŠããŠãJavaScriptããWasmã®é¢æ°ãåŒãã ããéã«WasmããJavaScriptã®é¢æ°ãåŒãã ãã§ãããã ãããšãã°Figmaã¯UIéšåãJavaScriptïŒReactïŒã§äœã£ãŠãã¬ã³ããªã³ã°ãšã³ãžã³ãC++ããWasmã«ã³ã³ãã€ã«ããŠäœ¿ã£ãŠãããGoogle EarthãWasmã®ãããã§ãã©ã°ã€ã³ãªãã§ãã©ãŠã¶ãã3Då°çåãèŠãããããã«ãªã£ããã ãã
ã»ãã¥ãªãã£ã¯å€§äžå€«ãªã®ïŒãã€ããªã£ãŠæãæ°ãããâŠ
å®ã¯Wasmã¯ã»ãã¥ãªãã£ã«ããªãæ°ã䜿ã£ãèšèšãªãã ããµã³ãããã¯ã¹å ã§åäœããŠãçŽæ¥OSã®ãã¡ã€ã«ããããã¯ãŒã¯ã«ã¯ã¢ã¯ã»ã¹ã§ããªããã¡ã¢ãªãç·åœ¢ã¡ã¢ãªãšããç¬ç«ããé åã䜿ãããããã©ãŠã¶æ¬äœãä»ã®ã¿ãã®ã¡ã¢ãªãèŠãããšãã§ããªãããJavaScriptãšåããªãªãžã³ããªã·ãŒãé©çšããããã ã
ãã©ãŠã¶ä»¥å€ã§ãWasmã£ãŠäœ¿ããã®ïŒ
ãããWASIïŒWebAssembly System InterfaceïŒã ãããã©ãŠã¶ã®å€ã§ãWasmãåããããã®æšæºã€ã³ã¿ãŒãã§ãŒã¹ã§ããã¡ã€ã«èªã¿æžãããããã¯ãŒã¯éä¿¡ãªã©ã®OSæ©èœã«ãèœåããŒã¹ãã®ã»ãã¥ãªãã£ã¢ãã«ã§ã¢ã¯ã»ã¹ã§ãããWasmtimeãWasmerãšãã£ãã©ã³ã¿ã€ã ã䜿ãã°ããµãŒããŒãµã€ãã§ãWasmãåããDockerã®å ±ååµèšè ãããã2008幎ã«WasmãšWASIããã£ãããDockerãäœãå¿ èŠã¯ãªãã£ãããšèšã£ãã®ã¯æåãªè©±ã ãã
Dockerã®ä»£ããã«ãªãããã£ãŠããšïŒïŒããããïŒ
ã³ã³ããããèµ·åãéããŠãµã€ãºãå°ããããããCloudflare WorkersãFastly Compute@Edgeã§ã¯ãã§ã«Wasmããšããžã³ã³ãã¥ãŒãã£ã³ã°ã«äœ¿ã£ãŠããããããã«æè¿ã¯ãã³ã³ããŒãã³ãã¢ãã«ããšãã仿§ãé²ãã§ããŠãç°ãªãèšèªã§æžããWasmã¢ãžã¥ãŒã«ãåå®å šã«çµã¿åãããããããã«ãªããGCïŒã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒããããŒã¶ã«ãé²è¡äžã§ããããå ¥ããšGoãKotlinã®ãããªGCèšèªããã®ã³ã³ãã€ã«ãå¹ççã«ãªããã ã
ããããªèšèªããã©ãŠã¶ã§åãæªæ¥ãæ¥ããã ãïŒ
ãŸãã«ããã ããWasmã¯ããã©ãŠã¶ã®ããã®æè¡ãããããŠãããŒãµã«ã©ã³ã¿ã€ã ãã«é²åãã€ã€ããããã©ãŠã¶ããµãŒããŒããšããžãIoTããã€ã¹âŠã©ãã§ãåããã€ããªãå®å šã«é«éã«åãäžçãç®æããŠãããã ããäžåºŠã³ã³ãã€ã«ããã°ã©ãã§ãåãããšããJavaã®å€¢ããå¥ã®åœ¢ã§å®çŸããããšããŠãããšãèšãããã