ãŠã§ãã«ã¯çŽ æŽãããæªæ¥ããããŸããBrendan Ike ã¯æšæ¥ããŠã§ãéçºã³ãã¥ããã£ãçç ŽããŸããããŠã§ãã¯ãJavaScriptãããã¯ããã«åªããåäœãããæ°ããäœã¬ãã«ãã€ããªã³ã³ãã€ã«åœ¢åŒãåãåããŸãã
GoogleãMicrosoftãMozillaãããã³ããã€ãã®ç¬ç«ããå°é家ã
W3C WebAssembly Community Groupã§æ°ãããããžã§ã¯ãã«åãçµãã§ããã圌ããåãçµãã§ããã®ã¯å°ããªããšã§ã¯ãããŸããã
WebAssemblyã¯æ¬¡ã®ãšããã§ãã
- JavaScriptã®æ¹åïŒãã¹ãŠã®éèŠãªããšãwasmã«å®è£
ãïŒWebAssemblyã®ç¥-翻蚳è
ã®ã¡ã¢ïŒãæšæºJavaScriptã¢ãžã¥ãŒã«ãšããŠã€ã³ããŒãããŸãã
- æ°ããããã°ã©ãã³ã°èšèªïŒ WebAssemblyã¯ããã€ããªåœ¢åŒã§æœè±¡çãªæ§æããªãŒïŒJavaScriptãªã©ïŒãå®çŸ©ããŸãã ã³ãŒããèšè¿°ããŠãããã¹ã圢åŒã®ãšã©ãŒãåãé€ãããšãã§ããŸãã WebAssemblyã¯èªã¿ãããã§ãã
- ãã©ãŠã¶ãŒã®æ¹åïŒãã©ãŠã¶ãŒã¯ãã€ããªåœ¢åŒãç解ããŸããã€ãŸããéçºè
ã¯ãã€ããªãã³ã³ãã€ã«ã§ããçŸåšäœ¿çšãããŠããJavaScriptããã¹ããã¡ã€ã«ãããã¯ããã«å€ããå§çž®ã§ããŸãã ãã¡ã€ã«ãå°ããã»ã©ãããŠã³ããŒãã¯é«éã«ãªããŸãã ã³ã³ãã€ã«æéãæé©åããå¯èœæ§ã«å¿ããŠãWebAssemblyã®ã³ãŒãã¯JavaScriptãããé«éã«éä¿¡ããã³å®è¡ã§ããŸãã
- ã³ã³ãã€ã«ã®ç®çïŒä»ã®èšèªãWebãã©ãããã©ãŒã ã®ã¹ã¿ãã¯å
šäœãéããŠäžæµã®ãã€ããªãµããŒããåãåãèœåã
ããã¯JavaScriptã«ãšã£ãŠäœãæå³ããŸããïŒ
ãã®è³ªåã«çããåã«ãæéãå·»ãæ»ããŸãããã ReactãAngularãBackboneãjQueryã®åã®æ代ã«æ»ã£ãŠãã ããã
ããã«ããã
ãããã¯ãŒã¯ã¯ãã¡ãã»ãŒãžé
ä¿¡ã·ã¹ãã ã䜿çšããŠè¡šç€ºããããã€ããŒããã¹ãããã¥ã¡ã³ãã®ã»ããã§ããããŸã çžäºæ¥ç¶ãããŠããŸããã æåã®WebãµãŒããŒã¯ãCERNã®NeXTã³ã³ãã¥ãŒã¿ãŒïŒäžèšåç
§ïŒã§èµ·åãããŸãã...
1991幎ã®åºã§ã ç§ã¯ç°è²ã«å€ããæéããããŸããã§ããã ç§ã¯10,000çªç®ã®ããã¹ãããŒã¹ã®ã¯ãšã¹ãã²ãŒã ãããã¯ããããšããŠããŸãïŒãããããã¹ãŠæ°ããŠããŸããïŒã
ãã®ç®çã®ããã«äžçš®ã®ããã°ã©ãã³ã°èšèªãéžæããŸããã åœæãç§ã¯ãã§ã«BASICãšPascalã«ããããããŠããŸããã Cã䜿çšãããã£ãã®ã§ãããã§ããŸããã§ãããBorlandTurbo C ++ã®ç®±å
¥ãããŒãžã§ã³ã«ä¿åããŠããŸããïŒæåéãã説ææžãšã€ã³ã¹ããŒã«ãã£ã¹ã¯ãå
¥ã£ãããã±ãŒãžããã¯ã¹ã«å
¥ã£ãŠããŸãïŒã ããããç§ã¯æãåçŽãªã¿ãŒãã¢ã»ã³ãã©ãŒããæã£ãŠããŸããã§ããã
ã¢ã»ã³ããªèšèªã§èšè¿°ããDOSã®ã³ãã³ãã©ã€ã³ãšããããã°ãã䜿çšããŠå®è¡å¯èœããã°ã©ã ã«ãã³ã³ãã€ã«ãããŸããã ããããããããšæããªããä¿¡ããŠãã ããã DOSã§äœæ¥ããã®ã«åå幞éã ã£ã人ã§ãããããããã°ãã䜿çšããŠã¢ã»ã³ãã©ãŒããããã°ããæ¢åã®ã³ãŒããéã¢ã»ã³ãã«ïŒãªããŒã¹ãšã³ãžãã¢ãªã³ã°ïŒã§ããããšãç¥ããŸããã
ãã£ãããïŒ ãã å«ãã ã£ãã æ°ããBorland Turbo C ++ã«åº§ã£ãŠäººéçã«ããã°ã©ã ã§ããç¬éãåŸ
ã€ããšãã§ããŸããã§ããã äžè¬çã«ã圌ãã¯ç§ã«ãããäžããŸããã ãã£ãïŒ
Borland Turbo Assemblerãããªã€ã³ã¹ããŒã«ãããŠãããããç§ã¯Borland Turbo C ++ã奜ãã§ããã ãªã«ïŒïŒ ãã°ãããé«ã¬ãã«ã®ãªããžã§ã¯ãæåC ++ããŒã«ãããã®ã«ããªãã¢ã»ã³ããªèšèªã§ããã°ã©ã ããã®ã§ããïŒ
æã«ã¯ãè³ã溶ããããšãªãã裞ã®éãŸãã¯ããã«è¿ãéã§äœæ¥ãããããšããããŸãã ã¡ãªã¿ã«ãC ++ã䜿çšããåã«å€ãã®ãã·ã³ã³ãŒããèšè¿°ããããšãèšåããŸãããïŒ
ç§ã¯å€¢äžã§ãã
ã¢ã»ã³ããªèšèªã§ã³ãŒããæžããšããå®éã®çµæãéæããããšã¯ããã»ã©ç°¡åã§ã¯ãããŸããã ããã§ã¯ããªãWebAssemblyãå¿
èŠãªã®ã§ããããïŒ
WebAssemblyãå¿
èŠãªã®ã¯ãJavascriptã®æè»æ§ããã¹ãŠããããããã®äžã«èŠããå€ãã®ããšãæ³åããããšã¯ãŸã å°é£ã§ãããããã«è¿œå ããå¿
èŠãããèšèªã®æ©èœã¯èšèªãè€éã«ããã ãã§ããã
ãŠãŒã¶ãŒãæ··ä¹±ãããããã§ã ã
WebAssemblyã䜿çšãããšãããããããã°ã©ã ã«äœ¿çšã§ããåçŽãªäœã¬ãã«ã®ã³ãŒããããã¯ãæäœã§ããŸãã
JavaScriptãšã©ãéãã®ã§ããïŒ ããŒã¯ãŒãã¯ãäœã¬ãã«ãã§ãã ããªããã£ããå®çŸ©ããŸããããã«ã¯ããããã®ã¿ã€ãã«å¯Ÿãã
å€ãã®ã¿ã€ããšæäœããããã®ãªãã©ã«ãå¶åŸ¡ãããŒãåŒã³åºããããŒããªã©ãå«ãŸããŸãã
ãããã¯éåžžã«åçŽãªããªããã£ãã§ãã è€éãªããšã¯äœããããŸããã è€éãªãªããžã§ã¯ãã·ã¹ãã ïŒãããã¿ã€ããŸãã¯ãã®ä»ïŒã¯ãããŸããã çµã¿èŸŒã¿ã®èªåãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãã¯ååšãããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãå¿
èŠã«ãªã£ããšãã«å®æçã«åæ¢ããŸãã
å®éãWebAssemblyãäžè¬çãªèšèªãšã¯èããªãæ¹ã䟿å©ã§ãã
ãã¥ãŒãªã³ã°ãã·ã³ã«å°ã䌌ãè»ã®ããã«èŠããŸãã
......WebAssemblyãšã¯äœã§ããïŒ
WebAssemblyã¯ã
ãã€ããªåœ¢åŒã§æ ŒçŽããã
æœè±¡æ§æããªãŒ ïŒASTïŒãå®çŸ©ã
ãŸã ã ãã€ããªã¯ã
å°ããªã¢ããªã±ãŒã·ã§ã³ãäœæã§ããã®ã§çŽ æŽããã
ã§ã ã ãã€ããªã³ãŒãããããã°ããæ¹æ³ãçåã«æã£ãŠããããšã§ãããã
幞ããªããšã«ããã©ãŠã¶ã§åäœãããããã¬ãç©æ¥µçã«éçºãããŠãããæœè±¡çãªæ§æããªãŒãïŒæ¯èŒçïŒèªã¿ããã
ããã¹ã圢åŒã§è¡šç€ºãããŸã ã äŸã瀺ããããšæããŸãããä»ã®ãšããããŸãå€ãã¯ãããŸããã ãããããWebAssemblyã®ã³ãŒãã¯ãJavaScriptã§ææžãã§èšè¿°ãããåæ§ã®ã³ãŒããããèªã¿ã«ãããããããŸããããå°ãªããšãASM.jsãšåããããèªã¿ãããã§ãããã ãããããã£ãšç°¡åã§ãã èŠãŠã¿ãŸãããã
WebAssemblyã¯äœã®ããã«äœ¿çšãããŸããïŒ
ãšããããã¹ã¬ãããšSIMDïŒåäžåœä»€ãè€æ°ããŒã¿ïŒã®åçŽãªäœæ¥ãã€ãŸãã1ã€ã®ã³ãã³ãã¹ããªãŒã ãšè€æ°ã®ããŒã¿ã¹ããªãŒã ã§äœ¿çšã§ããŸãã å€ãã®ããŒã¿ãããã¯ããã¥ãŒã«å
¥ããŠããã1ã€ã®ã³ãã³ããäœæããŠåæã«åŠçã§ããŸãã
ããã¯ãã¹ããªãŒãã³ã°ãããªã®äžŠååŠçãããã»ããµã«ãã£ãŠåŠçãããããšãæå³ããŸãã åŸããåããªãå ŽåãJSã§ãã®æ±ºå®ã«ã€ããŠèããããšããããŸãããJavaScriptã§äœã¬ãã«ã®åé¡ã解決ããã®ã¯ãã€ãäžäŸ¿ã§ããã
ãã®ãããªå Žåããããããªããžã§ã¯ãã·ã¹ãã ããã¬ããŒãžã¯ãªãŒããŒããããã³åçãªã¯ãšãªåŠçãå¿ããŠãã ããã ããŒã¿ã¹ããªãŒã ããã¥ãŒã«å
¥ããŠãã§ããã ãè¿
éãã€å¹ççã«åŠçããŸãã
ã¢ããªã¯ã©ãã§ããïŒ
çŸåšã
Ableton Live ïŒé³æ¥œã®äœæïŒã
Adobe Premiere Pro ïŒãããªã®äœæïŒãªã©ã®ã¢ããªã±ãŒã·ã§ã³ã¯ãWebãžã®ç§»æ€ã«ã¯ããŸãé©ããŠããŸããã ããã¯å¯èœã§ããããŸã é£ããããšã«æ³šæããŠãã ããã 解決ãã¹ãå€ãã®åé¡ããŸã ãããŸãã ããšãã°ããªã¢ã«ã¿ã€ã ã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ãæé©ã«åæããæ¹æ³ã決å®ããå¿
èŠããããŸãã
ããã«ãåŠçæ©èœã®ãããã¯ãŒã¯ãä»ããŠå€§éã®ããŒã¿ã転éããã¢ããªã±ãŒã·ã§ã³ãéçºããããšãå¯èœã§ãã ããšãã°
ãã®ã¿ãŒããã«ã®ã¢ããªã±ãŒã·ã§ã³ãªã©ã 人ã
ã¯ãã®ãããªããšãèãããšããéåžžJavaScriptã«ã€ããŠèããŸããã å€ãã®äººã¯ããããè©ŠããŠã¿ãã®ãçŽç²ãªçæ°ã ãšæãã§ãããã
ãããããããã«ãããJavaScriptã¯ã倢èŠãããšãã§ããã¢ããªã±ãŒã·ã§ã³ã®ã»ãšãã©ãæ§ç¯ããããã®æ¬åœã«çŽ æŽãããèšèªã§ãã
WebAssemblyã¯ãJavaScriptã®ã®ã£ãããã·ãŒã ã¬ã¹ã«åããŸãã
JavaScriptã®æ©èœã«ã¯ã®ã£ããããããããã¯æ±ºããŠç§å¯ã§ã¯ãããŸããã 圌ã®æãå¿ å®ãªãã¡ã³ã§ãããèšèªãé床ã«ã飲ã¿èŸŒããããšãè©Šã¿ãæè»æ§ãšå¹çæ§ã倱ããšãã䞻匵ã«å察ããããšã¯ã»ãšãã©ãããŸããã æšæ¥ãJavaScriptèªäœã«æ©èœãè¿œå ããã ãã§ããããã®ã®ã£ããã«å¯ŸåŠã§ãããšæããŸããã Brendan Ikeã¯FluentäŒè°ã§ãåãéãææ¡ããŸããã ææããŸããã
ãã ãããã®éãã£ãš1ã€ã®ãã€ã³ããèŠéããŠããŸããã誰ããé«æ°Žæºèšèªã§ããã°ã©ãã³ã°ãããã®ã§ãããåæã«ãé床ãäžããå¿
èŠããããšãã«ã¢ã»ã³ããªèšèªã«ãã·ã³ã¯ãã§ããŸãã
WebAssemblyã¯ãJavaScriptã®é床ãåäžãããããšããããŸãïŒ
ä»æ¥ãWebAssemblyã«ã€ããŠã®èšäºãWebå
šäœã§æ°çŸã§ã¯ãªãã«ãããäœåããããšç¢ºä¿¡ããŠããŸãã ãããã®ã»ãšãã©ãã以åã«æžãããã®ã§ã¯ãªãããã®ããã°ã©ãã³ã°èšèªã®ãŸã£ããç°ãªãæ©èœã«å°å¿µããããšã¯ééããããŸããã ãšããã§ãç§ã圌女ã«åãã§ããŸãã
WebAssemblyã䜿çšãããšãWebéçºã§ããå€ãã®èšèªã䜿çšã§ããŸã
ãã¡ãããå®éã«ã¯ãWebAssemblyãWebéçºã§ä»ã®ããã°ã©ãã³ã°èšèªã䜿çšããå¿
èŠã¯ãããŸããã ããšãã°ãJavaScriptã®ã³ã³ãã€ã«ã§çŽ æŽããã
AAA ã²ãŒã ãšã³ãžã³ãæ¢ã«ãããŸãã
JavaScriptãé
ããšèããå Žåã¯...ããã§ã¯ãããŸããã
WebAssemblyã¯ãã»ãšãã©ã®JSéçºè
ãJavaScriptã§èŠãããªããã®ãè¿œå ããŸãã æ©èœèªäœãå¿
èŠã§ãããJavaScriptã«ã¯ééããªãå ŽæããããŸããã ããã«ãä»ã®ããã°ã©ãã³ã°èšèªããã®ã³ã³ãã€ã«ã䜿çšããŠãããããã¹ãŠã®æ©èœãååŸã§ããŸãã
å®éãWebAssemblyã¯ããã®ç®çã®ããã«ç¹å¥ã«äœæããã代æ¿ã³ã³ãã€ã©ãæäŸããŸãã
ããã§ãããšãã°å
±æã¡ã¢ãªãã§ãŒã³ã«å€§ããäŸåããã³ãŒãã移æ€ããã®ãã¯ããã«ç°¡åã«ãªããŸãã WebAssemblyã®ã³ã³ãã€ã©ãŒãèšè¿°ããæ¹ãJavaScriptã®ã³ã³ãã€ã©ãŒãèšè¿°ãããããç°¡åã§ãããšç¢ºä¿¡ããŠããŸããããã¯ãæåã®ãã®ãèšèªé¢æ°ãç¹å®ã®æœè±¡æ§æããªãŒã«æé©ã«è»¢éããããšãä¿èšŒããããã§ãã
ãã¹ãŠã®å€ãããã°ã©ãã³ã°èšèªãWebäžã§åé¡ãªã䜿çšã§ããããã«ãªã£ããšããäºå®ã¯è¯ãããšã§ãããããã¯äž»ãªããšã§ã¯ãããŸããã äºå®ã¯æ¬¡ã®ãšããã§ãã
WebAssemblyã¯ãéçºè
ãæ°ããããã°ã©ãã³ã°èšèªã§äœæ¥ãéå§ããåªããçç±ã§ãã
ãããã¯ãŒã¯ã«ã¯çŽ æŽãããæªæ¥ããããŸãã ãã®ãããæé
ãã«ãªãåã«ã圱ããæãåºããŠããžãã¹ã«åãæããããšããå§ãããŸãã
ã¢ããªã³+ FAQ
QïŒ
wasmãšã¯äœã§ããïŒAïŒ
W eb
As se
m blyã®é åèªã
QïŒ
JVMã䜿çšããªãã®ã¯ãªãã§ããïŒAïŒãã©ã°ã€ã³ã䜿çšããŠJVMããã©ãŠã¶ãŒã«è¿œå ããããšããè©Šã¿ãè€æ°åãããŸããã æ®å¿µãªãããããã«ã€ããŠã¯è¯ãããšã¯äœããããŸããã JavaScriptã«ã¯ä»®æ³ãã·ã³ãçµã¿èŸŒãŸããŠãããããå¥ã®ä»®æ³ãã·ã³ãè¿œå ãããšã2çªç®ã®æ¥ç¶APIã»ããã衚瀺ãããä»®æ³ãã·ã³ãDOMããããã¯ãŒã¯ãã»ã³ãµãŒãå
¥åããã€ã¹ãªã©ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã ãã®ããã«äœããç ç²ã«ããªããã°ãªããŸããã ããšãã°ãä»®æ³ãã·ã³ã®ããã»ã¹ã¯ãå©çšå¯èœãªãªãœãŒã¹ãã©ã®ããã«åæ£ããŸããïŒ ãã®è³ªåã«çããããšã¯ãæã£ãããé£ããã§ãã
æåã¯ãWebAssemblyã¯ASM.jsããªãã¡ã€ã«ãšããŠæ©èœããŸããã€ãŸããJavaScriptä»®æ³ãã·ã³ã䜿çšã§ããŸãã ããã«åºã¥ããŠèšèªã®èšèšãéçºããããããWebAssemblyã¯ã代æ¿ã®ä»®æ³ãã·ã³ãæäŸã§ãããããã¹ã ãŒãºã«ãã©ãŠã¶ãšçµ±åã§ããŸãã
QïŒ
WebAssemblyã®ç»å Žã¯ãå°æ¥å€ãã®æ°ããããã°ã©ãã³ã°èšèªãç»å Žããããšãæå³ããŸããïŒ ããã¯æçåã«ã€ãªãããŸããïŒJavaScriptã¯å®å
šã«å®å
šã§ãã ãã®çæ
ç³»ã¯ä»åŸæ°å¹Žéç¹æ ããŸãã WebAssemblyã¯ãæçåãšããããããããã©ãŒãã³ã¹ãå€æ§æ§ãããã³åé²ã«é¢ãããã®ã§ãã
AïŒJavaScriptã¯ããµãŒããŒåŽã ãã§ãªããå°åã³ã³ãã¥ãŒã¿ãŒããããããªã©ã®çµã¿èŸŒã¿ã·ã¹ãã ã®ããã°ã©ãã³ã°ã«ãããŠãåžžã«éåžžã«æ·±å»ãªç«¶äºãç¹°ãåºããŠããŸããã éçºããããšã³ã·ã¹ãã ãšå°éã®éçºããŒã ãšã®ããªãè¯ãéžæè¢ãå€æ°ååšããŠããã«ãããããããNodeã¯æ°èäŒæ¥ãå¶å©äŒæ¥ã®ãµãŒããŒã§ã®ååšæãæ¥éã«é«ãç¶ããŠããŸãã
ããã«ãJavaScriptã¯åŒ·åãªãšã³ã·ã¹ãã ã ãã§ãªããéçºè
ã®éæ²³ã«çŽé¢ããŠãåªãããµããŒããæäŸããŠããŸãã ããŸããŸãªã¢ãžã¥ãŒã«ã®äººæ°ã°ã©ããèšäºã«è¿œå ããã®ã奜ãã§ãã ãããã®æ²ç·ãèŠãŠé©ãã
ç·ã®æ²ç·ã«æ³šæããŠãã ããã ããã¯ãNodeã«å梱ãããŠããæšæºã®JavaScriptãªããžããªã§ããnpmã§ãã
JavaScriptã¯ãã²ãŒã éçºããããããIoTããã€ã¹ã®ããã°ã©ãã³ã°ã§ãŸããŸã䜿çšãããŠããŸãã ãããã®åéã§ã¯CãC ++ãããã³Javaãšããªãã®ç«¶äºããããŸãããããã¯JavaScriptãäž»èŠãªWebããã°ã©ãã³ã°èšèªãšããŠã®äœçœ®ã«åœ±é¿ãäžããããšã¯ãããŸããã ãã¹ãŠã®éçºè
ã«ã¯éžæè¢ããããJavaScriptã䜿çšããçç±ã¯ãããŸããããããæ°ã«å
¥ã£ãŠããããã§ãã
JavaScriptã¯åç¶ããŸãã ãããã°ã©ãã³ã°èšèªã«ã¯2çš®é¡ãããããŸããã人ã
ãåžžã«äžæºãæã£ãŠããèšèªãšã誰ã䜿çšããŠããªãèšèªã§ããã ãã§ã«ã³ã»ã¹ãã©ãŠã¹ãã«ã
䟿å©ãªè³æ
W3C WebAssemblyã³ãã¥ããã£ã°ã«ãŒãã¡ãŒãªã³ã°ãªã¹ãIRCïŒircïŒ//irc.w3.orgïŒ6667 /ïŒwebassembly
Github誰ãé¢ä¿ããŠããŸããïŒèè
ã«ã€ããŠ
Eric Elliottã¯ã
ãProgramming JavaScript Applicationsãããã³
ãLearn JavaScript Universal Development with NodeãES6ãïŒReactãã®èè
ã§ãã 圌ã¯ãã¢ããã·ã¹ãã ãºããºã³ããã£ãããã¹ãã¶ãŠã©ãŒã«ã¹ããªãŒããžã£ãŒãã«ãESPNãBBCãããã³ã¢ãã·ã£ãŒããã©ã³ã¯ãªãŒã·ã£ã³ãã¡ã¿ãªã«ãªã©ã®ã¢ãŒãã£ã¹ãã®ãœãããŠã§ã¢éçºã«æºãã£ãŠããŸããã ãšãªãã¯ã¯ãã»ãšãã©ã®æéãäžçã§æãçŸãã女æ§ãšã·ãªã³ã³ãã¬ãŒã§éãããŸãã
翻蚳äœæ¥ïŒ
greebn9k ïŒã»ã«ã²ã€ã°ãªããã£ãã¯ïŒã
ã»ãã³ãã ïŒ
ããŒãã»ãã³ ïŒã
ã·ã«ããªãªã³ ïŒã¢ã³ãã¬ã€ãã«ã¬ãïŒ
ã·ã³ã°ãªãŒ