5æ27æ¥ã¯ã
Ryan Dahlã
Node.jsã®æåã®ããŒãžã§ã³ããªãªãŒã¹ããŠãã10幎ã«ãªããŸã
ã éå»10幎éã§ããããžã§ã¯ãã¯æåãåããŸããããã©ã€ã¢ã³èªèº«ã¯ãã§ã«ä»ã®ãã®ã«åãæ¿ããŠããŸãã 圌ã¯ä»äœãããŠããŸããïŒ åœŒã®æ°ãããããžã§ã¯ãã¯JavaScriptéçºè
ãã©ã®ããã«å©ããŸããïŒ åœŒã¯ç°ãªãèšèªãæè²ãäžä»£äº€ä»£ã«ã€ããŠã©ãæããŸããïŒ
ã©ãŠã³ãæ¥ã®2æ¥åã®5æ25æ¥ãã©ã€ã¢ã³ã¯HolyJSäŒè°ã§ãµã³ã¯ãããã«ãã«ã¯ã§è¬æŒããŸãã äžæ¹ãHolyJSããã°ã©ã å§å¡äŒã®ã¡ã³ããŒã§ãã
Eugene bunopus Kotãš
Dmitry dmitrymakhnev Makhnevã¯ãäžèšã®ãã¹ãŠã«ã€ããŠåœŒã«è©³çŽ°ã«è³ªåããŸããã Medium
ã§ãã€ã³ã¿ãã¥ãŒã®
è±èªçãçºè¡ããHabrã®ããã«ãã·ã¢èªçãäœæããŸããã
Eugene ïŒNode.jsã®ãããã§ãã§ã«å€ãã®èªè
ãããªããç¥ã£ãŠããŸãããããªãèªèº«ã«ã€ããŠå°ãæããŠããããŸããïŒ
ã©ã€ã¢ã³ ïŒç§ã¯ã«ãªãã©ã«ãã¢å·ãµã³ãã£ãšãŽããæ¥ãŸããã ç§ã¯å€§åŠã§æ°åŠãåŠã³ãããã§ã¹ã¿ãŒå€§åŠã®å€§åŠé¢ã§ã®ç§ã®å°éã¯ä»£æ°ããããžãŒã§ããã ãããã3幎åŸãç§ã¯èããŸããã ãããã¯ããŸãã«ãå¥åŠã§æœè±¡çãªãã®ã§ããã
ãã®ãããç§ã¯å€§åŠé¢ãåæ¥ããæ
è¡ã«è¡ãããã°ããããŠããã°ã©ãã³ã°ãé
ããŸããã å€ãã®äººãããããã£ããšæããŸãã 2000幎代åã°ã«ãWebéçºã«æºããããã«ãªããŸããã æåã¯ãRuby on RailsãšRubyå
šè¬ã奜ãã§ããã Nodeã«ã€ããŠã¯ãé©åãªã¿ã€ãã³ã°ã§é©åãªå Žæã«ããããšã¯å¹žéã§ãã å¶ç¶ã«ããNodeãå¯èœã«ãªã£ããšããç§ã¯å¯Ÿå¿ããåé¡ã«ã€ããŠèããŠããŸããã
ãŠãŒãžãŒã³ ïŒããã§éãè¯ãã£ãïŒ ãããšãããã®ãããžã§ã¯ãã«ç¹å®ã®ããžã§ã³ããããŸããããæåãããããªãã¯ãã®ãããžã§ã¯ããéåžžã«æåãããšæããŸãããïŒ
ã©ã€ã¢ã³ ïŒæåããããšãæãã§ããªã人ã¯ããããžã§ã¯ãã«åãçµãã§ããããïŒ ãã¡ãããã»ãšãã©ã®å Žåããããã®æåŸ
ã¯æºããããŠããŸããã ç§ãã¡ã¯ãããããŠãä»ã®äœããå§ããŸã-1ã€ãé€ããã¹ãŠã®ç§ã®ãããžã§ã¯ãã§èµ·ãã£ãããã«ã Nodeã§ã¯ãç§ã¯ééããªã幞éã§ããã ãã®åŸãChromeãç»å ŽãïŒãããŠV8ã§ïŒããã³ããããã³ã°I / OãšããããWebãã¬ãŒã ã¯ãŒã¯ã§ã©ã®ããã«è¡šçŸããããã«ã€ããŠå€ãã®ããšãèããŸãããããã¯ãã¹ãŠJavaScriptã§ããŸããããŸããã
ãŠãŒãžãŒã³ ïŒä»ãããªãã¯
ããããã£ãŠããã çŸåšã®ä»äºãšå°æ¥ã®èšç»ã«ã€ããŠè©±ããŸããïŒ
Ryan ïŒé·å¹Žã®ä»²éã§ãã
Bert Belderãšç§ã¯ã¹ã¿ãŒãã¢ãããäœæããããšããŠããŸãã éå»1幎åã«ããã£ãŠã圌ãšããã€ãã®ãããžã§ã¯ãã«åãçµãã§ããŸããããã®ãã¡ã®1ã€ãDenoã§ãã Bertã¯Nodeã®éçºã§å€§ããªåœ¹å²ãæãããNodeãWindowsã«ç§»æ€ããã»ãšãã©ã®äœæ¥ãè¡ããŸããã ããã«ã圌ã¯
Libuvã®èè
ã®äžäººã§ãã
ãŠãŒãžã³ ïŒããã¯è¿ãå°æ¥ã«å€§ããªæåãæåŸ
ããŠãããšæããŸããïŒ 5幎éã§äœæ¥ãç¶ããŸããïŒ
Ryan ïŒ5幎以å
ã«Denoãååšãããã©ããã¯ããããŸããããã»ãšãã©ã®ãããžã§ã¯ãã¯äœãçµãããªãããããããããªãã§ãããã ãããä»ã®ãšãããDenoã¯ç§ãæãããä»äºã«æºè¶³ãäžããŠãããŸãã
çŸæç¹ã§ã¯ãåçèšèªã®çŸç¶ã«æºè¶³ããŠããªããšæããŸãã çŽ æ©ã䟿å©ã§ååã«å€çšéãªããŒã«ãæããã§ãã NodeãšPythonã¯ã©ã¡ããåªããŠããŸãããäžåçã«è€éã§ããããäœããã®æ¹æ³ã§èšèšãäžååã§ãããšæããŸãã çµå±ãç§ã¯èªåã®ã¯ãŒã¯ãããŒçšã®ããŒã«ãäœãããšããŠããŸãã
Eugene ïŒè³ªåã®æºåäžã«ãMapping the Journeyã®Webãµã€ãã§
ã€ã³ã¿ãã¥ãŒãèªã¿ãŸã
ã ã ããã§ãæ©æ¢°åŠç¿ã§äœæ¥ããŠãããšèšããŸããã ãããŠãã®åŸããã«ã圌ãã¯JSConf EUã§DenoãåãäžããŠ
çºè¡šããŸããã ããªãã®èå³ã¯å€ãããŸãããïŒ
Ryan ïŒè¿å¹Žãç§ã¯æ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ã«å€¢äžã«ãªã£ãŠããŸãã äœæ¥äžã®ãããžã§ã¯ãã®è©³çŽ°ã«ã¯è§ŠããŸããããJavaScriptã®æ©æ¢°åŠç¿ãã¬ãŒã ã¯ãŒã¯ã§ããã ãã®ãããç§ã¯æ°å¹Žã¶ãã«Nodeãè©ŠããŸããããããã«ããNodeã®åé¡ã®ããã€ããæããã«ãªããŸããã ããã«ãããJSConfã§ã®ãã¬ãŒã³ããŒã·ã§ã³ãè¡ãããDenoãããã¿ã€ãã瀺ãããŸããã ãã®åŸããããžã§ã¯ãã¯å€§ããªé¢å¿ã瀺ãããããããŒãã¯åå ããŸããã ãããŠãç§ãã¡ã¯ããã«åãçµã¿ç¶ããŸããã åŸã§ãããã®MLãããžã§ã¯ãã«æ»ããŸãã
ç¹ã«ãDenoãWebGLã«æ¥ç¶ããããšæããŸãã ãåç¥ã®ããã«ãDenoã¯V8ã§å®è¡ãããŸããV8ã¯ãChromeãœãããŠã§ã¢ã€ã³ãã©ã¹ãã©ã¯ãã£ã®åºå€§ãªäžçã®äžéšã§ãã Chromeã«ã¯ãWebGLãå®è£
ããAngleã©ã€ãã©ãªããããŸãã ããã«æ¥ç¶ãããšãDenoãGPUãããã°ã©ã ã§ããããã«ãªããŸãã ãŸããå€ãã®ææ°ã®ãã¥ãŒã©ã«ãããã¯ãŒã¯ã®ãã¬ãŒãã³ã°ã¢ãã«ã«ã¯GPUãå¿
èŠã§ãã æ°åŠããã°ã©ãã³ã°ã§äœæ¥ããããã®æãŸããããã»ã¹ããDenoã«æäŸããŠã»ããã§ãã çµ±èšãšæ°åŠã®ã¿ã¹ã¯å
šäœã®ããªãã®éšåãäžçš®ã®ããŒã¿ã²ãŒã ã«åž°çãããã®ã§ãããããã¯åçèšèªã§è¡ãã®ã«éåžžã«äŸ¿å©ã ãšæããŸãã
äžè¬çã«èšãã°ãç¹ã«äººæ°ãããé«éã§ããå Žåãäžçã«ã¯ããã»ã©å€ãã®åçèšèªã¯ãããŸããã ãã®ãããJavaScriptã¯ã¢ãã«ã®å®çŸ©ã«æé©ã§ãã å€ãã®å Žåãèšç®ã¯GPUã«è»¢éããããããåçèšèªãŸãã¯ã©ã³ã¿ã€ã ã®é床ã¯ããã»ã©éèŠã§ã¯ãããŸããã äžè¬ã«ãé
ããæ©ããããããã¹ãŠã«æ»ãã€ããã§ãããä»ã®ãšããç§ã®çŠç¹ã¯åºéã«ãããŸãã
Dmitry ïŒDenoã¯æ¬çªç°å¢ã§äœ¿çšããæºåãã§ããŠããŸããïŒ Denoã®å®éã®äœ¿çšã«é¢ããèå³æ·±ãäºäŸããåç¥ã§ããïŒ
Ryan ïŒäººã«ãã£ãŠçã¿ã®éŸå€ã¯éãããã§ãã ãã°ãããã¥ã¡ã³ãã®æ¬ åŠãAPIã®å€æŽã«å¯Ÿå¿ããæºåãã§ããŠããå Žåã¯ãDenoãçŸåšã§ã䜿çšã§ããã¿ã¹ã¯ããããŸãã ããããäžè¬çã«ã圌ã¯ãŸã çç£ã®æºåãã§ããŠããŸããã çŸåšã¯ããŒãžã§ã³0.3ã§ãããä»ã®äººã䜿çšããã®ã«é©ããŠãããšèããããŒãžã§ã³ã1.0ãšããŠæå®ããŸãã ããã¯ããªã倧èŠæš¡ãªãããžã§ã¯ãã§ãããæ°ãããã©ãããã©ãŒã ãäœæããŠããŸãã ãããè¡ãã«ã¯ãå€ãã®äœæ¥ãè¡ãå¿
èŠããããé©åã«å®è¡ããããšããŠããŸãã ãã ããããã«ãŒã®å Žåã¯ãæãæ±ããŠåé¡ãçºçããå Žåã«åé¡ããã«ãªã¯ãšã¹ããæ®ãããšãæããªãã§ãã ãããããã䜿çšã§ããŸãã
Eugene ïŒäŒæ¥ãæ¬çªç°å¢ã§äœ¿çšãéå§ããã«ã¯ãDenoã«äœãè¿œå ããå¿
èŠããããŸããïŒ
Ryan ïŒDenoã®å ŽåãNode.jsãšã¯ç°ãªãç¶æ³ã«çŠç¹ãåœãŠãŠããŸãã ã³ã³ãã¥ãŒã¿ãŒãžã®äœã¬ãã«ã®ã¢ã¯ã»ã¹ãæäŸããããšããŠããŸãã ç¹ã«ãDenoã
Rustã¯ã¬ãŒããšããŠã€ã³ããŒãã§ããããã«ããŠãä»ã®ã·ã¹ãã ã«çµã¿èŸŒãããšãã§ããããã«ããŸãã
ç¬èªã®WebãµãŒããŒãŸãã¯ãµãŒããŒã¬ã¹ã·ã¹ãã ããããã¯ã©ã€ã¢ã³ãã«JavaScriptãå®è¡ããæ©èœãæäŸãããšããŸãã ãããããV8ã¬ãã«ãŸã§äžããããªãã®ã§ããã°ãçã®V8ã¯ã»ãšãã©æäŸããŸããã äœããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãå¿
èŠã§ããããã¹ã¯ãããã³ã³ãã¥ãŒã¿ãŒäžã®èª°ããæã£ãŠããå¯èœæ§ã®ããæ¬æ Œçãªã©ã³ã¿ã€ã ã¯ããã§ã«å€ãããŸãã ãã®ãåã蟌ã¿ãã·ããªãªãã«ããŒããããšèããŠããŸãã ãã®å ŽåãAPIãã©ã®ããã«èŠãããã«ã€ããŠãçŸåšäœæ¥äžã§ãã ãŸããããã©ãŒãã³ã¹ã®åé¡ããã
ãŸã ã ããè¯ãããã¥ã¡ã³ããæäŸããå¿
èŠããããŸãã äžè¬ã«ãããã¹ãããšããããŸãã
Dmitry ïŒDenoã®ã¿ã¹ã¯ã®1ã€ã¯ãTypeScriptã®çµã¿èŸŒã¿ãµããŒãã§ãã æè¿ãTypeScriptã¯éåžžã«åºãæ®åããå€ãã®äŒæ¥ããã©ãŠã¶ã ãã§ãªãNode.jsã§ã䜿çšããããã«ãªããŸããã Node.jsã³ã¢ããŒã ã®äººã
ã圌ã称è³ããŠãããšèããŸããã ããªãã®æèŠã§ã¯ãTypeScriptã¯ãã©ãŠã¶ã®JavaScriptã眮ãæããç¬èªã®ã©ã³ã¿ã€ã ãååŸããããšãã§ããŸããïŒä»®æ³ãã·ã³ã§ïŒïŒ
Ryan ïŒTypeScriptã®å©ç¹ã®1ã€ã¯ãJavaScriptã®ã¹ãŒããŒã»ããã§ããããã眮ãæããããªãããšã§ãã ç§ãæ¬åœã«æ³åã§ããã®ã¯ãTypeScriptãæšæºã«ãªãããªãã·ã§ã³ã®åãJavaScriptã«è¡šç€ºããããšããããšã§ãããããã¯ããã«èµ·ãããŸãã
åçèšèªã¯ãéçºã®åæ段éãããšãã°ãããã¿ã€ããäœæãããšãã«éåžžã«åœ¹ç«ã¡ãŸãã TypeScriptã®å©ç¹ïŒããã³äžè¬çãªãªãã·ã§ã³ã®åã®èãæ¹ïŒã¯ããããã¿ã€ããåŸã
ã«çæããã«ã€ããŠãã³ãŒãã«åã泚éããããšã§å®è£
ãåŸã
ã«ãããããããšãã§ããããšã§ãã ããã¯åæã«è¡ãããå¿
èŠã¯ãªããããJavaScriptã§éåžžã«é«éã«ç§»åããŠæ°ããã¢ã€ãã¢ã®æŠèŠã説æããããšãã§ããŸãã
V8ä»®æ³ãã·ã³ã§åã䜿çšããŠã©ã³ã¿ã€ã ãæé©åã§ãããã©ããã«ã€ããŠã¯ãããããŸããã ããã¯éåžžã«é£ããããã«èãããŸãããç§ã«ã¯ååãªèœåããªãã倧ããªå©çãåŸããããã©ãããå€æã§ããŸããã Denoã§ã¯ãJavaScriptã§å®è£
ãããTypeScriptã³ã³ãã€ã©ã䜿çšããŠããŸãã JavaScriptã«é«éã«å€æããã³ã³ãã€ã©ã®Rustå®è£
ãæ³åã§ããŸãã ããã¯å¯èœã§ãã
swcãããžã§ã¯ãã¯ããã«åãçµãã§ããŸãã
Eugene ïŒTypeScriptã¯JavaScriptã眮ãæããããšãã§ããŸããïŒ ES 2020ã§ãTypeScriptãJavaScriptã䜿çšããŠ1ã€ã®èšèªã«ããŒãžããããšããŸãã
Ryan ïŒã¯ããæšæºã«åãè¿œå ããããšãã§ããŸãã TC 39ã¯JavaScriptæšæºãèŠå¶ããŠããããã§ããïŒ ç§ã®ç¥ãéãããã®ãããªæ©äŒã¯ãŸã è°è«ãããŠããŸããã ããããããã¯å¯èœã§ãããããã¯ãŸã ããªãåã®ããšã ãšæããŸãã
ãŠãŒãžã³ ïŒããŒããç¥ã£ãŠããŸããïŒ äœ¿çšããããšããããŸããïŒ åœŒãã©ãæããŸããïŒ
Ryan ïŒå¥œå¥å¿ããè©ŠããŸããããããã¯ããªãåã®ããšã§ãã Dartã®ç®æšã¯TypeScriptã«äŒŒãŠããŸã-ããã¯ããªãã·ã§ã³ã®ã¿ã€ããæã€åçèšèªã§ãã åè¿°ããããã«ãããã«ããã¯ãŒã¯ãããŒãéåžžã«äŸ¿å©ã«æŽçã§ããŸãã ãã ããTypeScriptãšã¯ç°ãªããDartã¯JavaScriptã®ã¹ãŒããŒã»ããã§ã¯ãªããç°ãªãèšèªã§ãã ãããããããåå ã§ãã¯ããã«ãã£ãããšåºãããŸãã
確ãã«ãFlutterã¯ä»ã人æ°ãåããŠããã®ã§ãããã§äººçã«é
ãããšã£ãã®ãããããŸããã ãããã«ããŠããTypeScriptã¯æ°ããèšèªãäœæããã«åãç®æšãéæããããšãã§ããŸããã
æ°ããèšèªãç»å Žãããšã圌ã¯å¥œå¥å¿ããããã®ã¯ç°¡åã§ããã人ã
ã«ãã®èšèªã䜿çšãããã®ã¯ã¯ããã«å°é£ã§ãã å©ç¹ã¯éåžžã«éèŠã§ãªããã°ãªããŸããã ããšãã°ãç§ã¯Rustã«ã€ããŠéåžžã«æççã§ããã 圌ãã§ããããšã¯ãã¹ãŠãç§ãç©æ¥µçã«äœ¿çšããŠããC ++ã§æ¢ã«è¡ãããŠããããã«æããŸããã ããæè¿ã«ãªã£ãŠãRustãããããç¥ãããã«ãªããC ++ãç°¡åã«çœ®ãæããããšãã§ããããšãæããã«ãªããŸããã äžè¬ã«ãæ°ããèšèªãæåãããã«ã¯ãå€ãèšèªãããæ¡éãã«åªããŠããå¿
èŠããããŸãã
ãŠãŒãžãŒã³ ïŒèšèªã§ã¯-è»ã®ããã«ããšã«ããæã
ãã¹ã«ä¹ãããšããããŸãã
ã©ã€ã¢ã³ ïŒãã®ãšããã
Eugene ïŒTypeScriptã®äººæ°ã«ãããããããJavaScriptã¯äžè¬çã«ãŠããã¿ã¹ã«ãªããŸãããããã¯ãšã³ããããã³ããšã³ããã¢ãã€ã«ããã€ã¹ãReact NativeãRaspberry Piãªã©ã§ãã ã©ããããç§ãã¡ã«ã¯é©åœãããããã¹ãŠãå®è¡ã§ãã1ã€ã®èšèªããããŸãã ããã¯æ¬åœã«ããã§ããïŒ ãŸãã¯ãç¹å¥ãªã¿ã¹ã¯ã®ããã®ç¹å¥ãªèšèªã¯åžžã«ååšããŸããïŒ
Ryan ïŒJavaScriptã¯ã©ãã§ãåäœããã®ã§ããŸãã«èå³æ·±ããã®ã§ãã ãã ããå€ãã®äººãTypeScriptãå¥ã®èšèªãšããŠèªèããŠããäžæ¹ã§ãJavaScriptã§ã³ã³ãã€ã«ãããŠããããšã«æ³šæããŠãã ããã ãããã£ãŠãç§ã®èŠ³ç¹ãããããšãTypeScriptã¯ã©ãã§ãåäœããŸãã äžè¬çã«ãç§ã¯ããªãã®å£°æã«åæããŸãã ãã¡ãããè¿ãå°æ¥ãJavaScriptã¯ãã©ãŠã¶ãŒãšè€æ°ã®ããã€ã¹ã®èšèªã®ãŸãŸã§ãã ãããã£ãŠãç§ã¯ããã䜿ãç¶ããŸã-ããã¯éåžžã«å¹
åºãå¯èœæ§ãæäŸããŸãã
Dmitry ïŒãããããã®JavaScriptã®äººæ°ã¯ããã«æªããã®ã«ãªããšæããŸãããïŒ Webã¯çŸåšããããããµãŒãã¹ã«äžå¯æ¬ ãªãã©ãããã©ãŒã ã«ãªã£ãŠããŸããJavaScriptã¯ãå®çšŒåç°å¢ã§WebãµãŒãã¹ãäœæã§ããå¯äžã®èšèªã§ãã ãããããéžæè¢ãããããã¹ãŠã®ãã©ãããã©ãŒã ã1ã€ã®èšèªã§ç ãæŸãŸãããªãã£ãæ¹ãè¯ãã§ããããïŒ ãããããã©ãŠã¶ã«ç°ãªãä»®æ³ãã·ã³ãå¿
èŠã§ããïŒ
ã©ã€ã¢ã³ ïŒãããWasmã®äººæ°ã®åå ã ã£ããšæãã ãã®äžã§ãããšãã°Rustãã³ã³ãã€ã«ããŠããã©ãŠã¶ãŒã§å®è¡ã§ããã³ãŒãã«ã§ããŸãã
ãã°ãããããã«èãããŸãããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ããã®ä»ã®ã©ã³ã¿ã€ã ããŒã«ãåããèšèªã§ã¯ã©ã®ããã«æ©èœããã®ã§ããããã Wasmãä»ããŠPythonã䜿çšããŠãµã€ããæ§ç¯ããããšã¯æè¡çã«ã¯å¯èœãããããŸããããçµæã¯é¢åã§é
ããªããšæããŸãã ããã§ã¯çµéšã®ã¿ã衚瀺ããããšæããŸãã
Dmitry ïŒã€ãŸããJavaScriptã®ä»£ããã«äœãã䜿çšãããå ŽåãWasmã«å€æã§ããèšèªãåŠã¶å¿
èŠããããŸããïŒ
Ryan ïŒãŸãã¯JavaScriptã§ã å®éãJavaScriptã«ã¯ã¬ããŒãžã³ã¬ã¯ã¿ãŒãªã©ããããŸãã ãããã£ãŠãåçèšèªã䜿çšããå Žåã¯ãWasmã§ã³ã³ãã€ã«ãããããJavaScriptã«ç¿»èš³ããæ¹ãçã«ããªã£ãŠããŸããåæã«ãã¬ããŒãžã³ã¬ã¯ã¿ãŒãªã©ãå«ãã©ã³ã¿ã€ã å
šäœãã³ã³ãã€ã«ããŸãã å€ãã®ãªãœãŒã¹ãæè³ããå¿
èŠããããŸãããV8ã¯ããããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®æ¹ãããŸãããã§ãããã ãã ããã¯ããDartã¯JavaScriptã§ã³ã³ãã€ã«ãããWebãµã€ããäœæã§ããŸãã åãããšãããä»ã®èšèªããããŸãã
Dmitry ïŒããŸããŸãªèšèªã«ã€ããŠè©±ããŠããã®ã§ã2019幎ã«å匷ããäžã§èå³æ·±ãå€ããŸãã¯æ°ããèšèªã¯äœã§ããïŒ
ã©ã€ã¢ã³ ïŒç§ã¯æ¬åœã«éã奜ãã§ãã ããšãã°ãåäžã®å¯å€ãªããžã§ã¯ãã®ã¢ã€ãã¢ãªã©ãå€ãã®èå³æ·±ãçºèŠãå«ãŸããŠããŸãã éåžžã«æé©åãããã³ãŒããæäŸããåªããã³ã³ãã€ã©ãåããŠããŸãã ããããRustã®ç解ã¯å®¹æã§ã¯ãããŸããã ããã§äœãèµ·ãã£ãŠããã®ããç解ããã®ã«æ°ã¶æããããŸããã äžè¬ã«ãRustã¯éåžžã«èå³æ·±ãèšèªã§ããã決ããŠæ®éçã§ã¯ãããŸããã
ã¢ããªã±ãŒã·ã§ã³ãäœæããŠããã ãã®å Žåã¯ãRustã§ã¯ãªããRubyãJavaScriptãPythonãªã©ã®ããåçŽãªãã®ã§äœæããããšã«ãªãã§ãããã ããããRustãçŽ æŽãããä»äºãããç¶æ³ãããã€ããããŸãã ããšãã°ãããŒã¿ããŒã¹ãWebãµãŒããŒããŸãã¯ãã®å Žåã¯ä»®æ³ãã·ã³ãäœæããã®ã«æé©ã§ãã ã³ãŒãã§çºçãããã¹ãŠã®ããšãå®å
šã«å¶åŸ¡ã§ããŸãããéçºè
ã«éãããŠããè€éããç ç²ã«ããŸãã
Rustã¯äœã¬ãã«ã®ã³ãŒããèšè¿°ããããã®æ°ããèšèã§ãããGoããã倧ããªå©ç¹ããããŸãã Goã«ã¯ã¬ããŒãžã³ã¬ã¯ã¿ãŒããããããé«æ§èœãµãŒããŒã«æé©ã§ãããç°¡æœã§ããããã®äžã«æžã蟌ãã®ã¯éåžžã«ç°¡åã§ãã ãã ããã¬ããŒãžã³ã¬ã¯ã¿ããã©ã¹ã§ã¯ãªããã€ãã¹ã«ãªãå ŽåããããŸãã ããšãã°ãDenoã«ã¯ãã®ãããªã±ãŒã¹ããããŸãã ã¬ããŒãžã³ã¬ã¯ã¿ãŒãæ¢ã«ããV8ãã©ããããŸãã 1ã€ã®ããã»ã¹ã§2ã€ã®ã³ã¬ã¯ã¿ãŒãå€æãããããã®çžäºäœçšã¯å£æ»
çãªãã®ã«èŠããå¯èœæ§ããããŸãã V8èªäœã¯ãã§ã«éåžžã«è€éã§ãã äžè¬ã«ãRustã¯ç§ãã¡ã®ç®çã«æé©ã§ãã RustãWasmã§ã³ã³ãã€ã«ã§ãããšãã«ãRustã«ã©ã®ãããªæ°ããã¢ããªã±ãŒã·ã§ã³ãããããèŠãã®ã¯èå³æ·±ãã§ãããã
Dmitry ïŒé¢æ°åèšèªã®äººæ°ã®é«ãŸãã«ã€ããŠã©ãæããŸããïŒ ããšãã°ãããã³ããšã³ãã®ãšã«ã ããŸãã¯ã€ããªã¹ã
ã©ã€ã¢ã³ ïŒã©ã¡ããè©Šããããšããªãã®ã§ãäœãèšããŸããã
Eugene ïŒé¢æ°åèšèªå
šè¬ã«ã€ããŠã¯ã©ãã§ããïŒ
Ryan ïŒæ©èœçãªã¹ã¿ã€ã«ã¯ããªãããã§ãã ããã¯ãã¢ããªã±ãŒã·ã§ã³å
šäœãmapãreduceãªã©ã®ã¿ã§æ§æãããããšãæå³ãããã®ã§ã¯ãããŸããã åœä»€åã¹ã¿ã€ã«ã§äœæ¥ãããããèªã¿ãããç¶æ³ããããŸãã RustãšJavaScriptã§ã¯äž¡æ¹ã®ã¢ãããŒããéåžžã«ããŸãçµã¿åããããŠããããã1ã€ã ãã«éå®ããå¿
èŠã¯ãããŸããã æçµçã«ã¯ãCPUã¯äŸç¶ãšããŠå¿
é ã§ãããéä¿¡ãããåœä»€ã§åäœããŸãã ãããã£ãŠãåããã©ãã€ã ã®ã³ãŒãã«ã€ããŠèããã®ãè³¢æã§ãã
ãŠãŒãžã³ ïŒãããŠãããã¯ã©ããªã¹ã¿ã€ã«ã§æžãããŠããŸããïŒ ãªããžã§ã¯ãæåã§æ©èœããŸããïŒ
Ryan ïŒäž¡æ¹ã䜿çšããŸããã ããã¯ãã¹ãŠãç§ãã¡ãéæããããšããŠããç¹å®ã®ç®æšã«äŸåããŠããŸãã
Eugene ïŒããªããã©ã®èšèªã奜ããã«ã€ããŠã¯ãã§ã«è°è«ããŸããããããŒã«ã«ã€ããŠã¯ã©ãã§ããïŒ ãæ°ã«å
¥ãã®IDEã¯äœã§ããïŒ MacOSãŸãã¯Linuxã§äœæããŸããïŒ
Ryan ïŒç§ã¯vimã§æžããŠãiTerm2ã䜿ã£ãŠããŸããç§ã®ã³ã³ãã¥ãŒã¿ãŒã¯å°ããªMacBookã§ãã ç§ã¯ããæ
è¡ããŸãããã®ãããã©ãããããã§äœæ¥ããããšããããããŸãã ããæç¹ã§ã倧ããªã¢ãã¿ãŒã®åŸãã§äœæ¥ããåŸãã©ãããããã«åãæ¿ããã®ã¯éåžžã«çãããšã«æ°ä»ããŸããã ãã®ãããç§ã¯åžžã«ã©ãããããã§äœæ¥ããããšãåŠã³ãŸããã
ç§ã®å Žæã¯LinuxããŒã¹ã®ã·ã¹ãã ãŠãããã§ãSSHçµç±ã§æ¥ç¶ããŠããŸãã ç§ã¯ããŒã«ãéžæããã®ã¯ããªãæ代é
ãã§ãã»ãšãã©ã¯UNIXã®ãããªãã®ã§ãã ãããã°ã«LLDBã䜿çšããŠããŸãã
ç§ã¯Visual Studio Codeã§åããŠããŸããããçŸåšã¯ç¬èªã®ãã©ãããã©ãŒã ãäœæããŠãããããIDEã«æåŸ
ããå€ãã®çµ±åã¯ãããŸããã éåžžããã®ãããªããšã¯ç§ãåãçµãã§ãããã®ãšã¯äœã®é¢ä¿ããããŸããããããŠãçµå±ããããã¹ãŠã¯ç§ãæ··ä¹±ãããŸãã ç§ã¯è£žã®ã³ãŒãã§äœæ¥ããããšã«æ
£ããŠããŸãããããã¯äœã¬ãã«ã®ãœãããŠã§ã¢ãéçºãããšãã«ç¹ã«äŸ¿å©ã§ãã 人æ°ã®ãããã©ãããã©ãŒã çšã®Webãµã€ããŸãã¯ã¢ããªã±ãŒã·ã§ã³ãäœæããå ŽåãVisual Studio Codeã䜿çšãããšæããŸãã
Eugene ïŒäžè¬çã«ãããªãã¯æãªããã®ããã°ã©ããŒã§ãã
ã©ã€ã¢ã³ ïŒããããã¯ãã
ãŠãŒãžãŒã³ ïŒæ¬¡ã®è³ªåã¯åŠæ ¡ã«ã€ããŠã§ãã ã©ããããè¿ãå°æ¥ã®åºæ¬çãªããã°ã©ãã³ã°ã¹ãã«ã¯ãæ°åŠãè±èªããã®ä»ã®ç§ç®ãšäžç·ã«åŠæ ¡ã§ç 究ãããã§ãããã ããã«ã€ããŠã©ãæããŸããïŒ ããããããå°ãé ãå°æ¥ã«ãæ©æ¢°åŠç¿ãåŠæ ¡ã®ã«ãªãã¥ã©ã ã«å
¥ãã§ããããïŒ
ã©ã€ã¢ã³ ïŒç§ã¯éå»15幎éããã°ã©ãã³ã°ãè¡ã£ãŠããŸãããããã®éã«ã³ãã¥ããã£ã倧ããæé·ããŸããã 2005幎ãç§ã¯æãéèŠãªãã®ãã¹ãŠãèŠéããããã«èŠããŸããããä»æ¥ã®åºæºã§ã¯ãŸã å°æ°ã§ããã ä»ãããã°ã©ããŒã¯ã©ãã«ã§ãããŸãã æããã«ãããã°ã©ãã³ã°ã¯å€ãã®èŽè¡ã«æé·ããŸããã ããã¯ãå€ãã®äººã
ã«ãšã£ãŠéèŠãªã¹ãã«ã«ãªããŸããã ããã念é ã«çœ®ããŠãã¯ããããã°ã©ãã³ã°ã¯é«æ ¡ã§æããããã¹ãã§ãã ããããæ©æ¢°åŠç¿ã«ã€ããŠã¯ãããåºæ¬çãªããšã¯é«æ ¡çã«ãšã£ãŠãã圹ç«ã€ãšæããŸãã
æ°åŠã®ææ¥ã§ã¯ãçµ±èšããã£ãšç©æ¥µçã«ç 究ãã䟡å€ãããããã«æããŸãã ç±³åœã®é«æ ¡ã§ã¯ãçåŸã¯ä»£æ°ãäºæ¬¡æ¹çšåŒãæ°åŠã®å§ãŸãã埮åãªã©ãçµéšããŸãã 代æ°ãšãã¿ã³ãããã°ã©ã ã®å€§éšåãå ããŠãããéåžžã«å°æ°ã®äººã
ãå®æçã«ãããã䜿çšããŠããŸãã ããããå€ãã®å°é家ã¯çµ±èšããŒã¿ãåŠçã§ããå¿
èŠããããŸãã
æ©æ¢°åŠç¿ã«é¢ããŠã¯ããŸã å®éšæ®µéã§ãã 10幎åŸã«ãã¹ãŠãçŸåšã®ãŸãŸã§ãããšã¯èããããŸããããã®é åã¯æ¥éã«å€åããŠããŸãã
Eugene ïŒè¥ãäžä»£ã«ã€ããŠè©±ããŠããã®ã§ã1é±éã»ã©åã«ãªãã£ã¹ã§åŠæ ¡ããé 足ãããŸããã , 15 , , Python Rust. , 2005 , , -, . , YouTube . , .
: .
: , ?
: , . , . YouTube . , . . , , - , . , . ããã§ã¯ãããŸããã
: , , . ? - , ?
: , , . , . , , . - Rust, , Rust. , : .
: , , â ? - Rust, . ?
: . - ?
: . , , . ? pull requests ? , ?
: . .
: , . YouTube, . - ? ?
: â . YouTube, . Hacker News Reddit, â - . , , - . YouTube . - , . , (, ), YouTube.
: ?
: , . , , JavaScript. â , . . , , . HolyJS. ?
:
2016 , .
:
, NodeJS . . ? ? ?
: , Joyent. , , , . , , Deno, . , Deno.
: , ?
: , , . , , , . , . -, , , . , . , , , , , . , â âŠ
: , V8 Volkswagen Beetle?
: !
: , V8.
: , , . , . , , , .
: . ? , . , . ?
: , . , . . , Facebook Google, . - , â , . , . , . - , .
: IT , « » , . , . , IT , ?
: , « » â , . , . , , . , . .
: . , â , â . , . ?
: . , . .
: . , ?
: . .
: , , ?
: , . , - , â . , â , .
: HolyJS 2019 -. , !
: , .
HolyJS Deno: «Deno, a new Way to JavaScript». , .
- , Online- ( - ). , 24-25 , .