Node.jsã®äœæè ã§ããRyanDahlã圌ã®å ±åã¯ã»ã³ã»ãŒã·ã§ã³ãå·»ãèµ·ããã圌ã¯å€ãã®ç·æ¥ã®åé¡ãæèµ·ãã倧ããªèªå€§å®£äŒãæèµ·ãããµãŒããŒããã°ã©ãã³ã°ã«é¢ä¿ãã人ã¯ã»ãšãã©ç¡é¢å¿ã§ã¯ãããŸããã§ãããããã¯ãšã³ãã«ã€ããŠã®åœŒã®è°è«ã§ã¯ãããã°ã©ããŒã¯2ã€ã®é£å¶ã«åããããŸãããNode.jsãæè·ããè ãããã°ã圌ã®æ¥æ»ãäºæž¬ããè ãããŸããã
ã©ã€ã¢ã³ã®ã¹ããŒããã2幎äœããçµéããŸãããITã§ã¯ãããã¯å šæ代ã§ããããã®éã«ãã¹ãŠãå€ããããã§ã¯ãªããå€ãã®ããšãå€ããå¯èœæ§ããããŸãããã®ã¬ããŒããèŠããŠããã以æ¥äœãå€ãã£ãã®ãã誰ãæ£ããã£ãã®ããèŠãŠã¿ãŸãããã
Node.jsã«ã€ããŠå°ã
ãã€ãŠãã©ã€ã¢ã³ãåçãFlickrã«ã¢ããããŒãããŠãããšãã« ã圌ã¯ç°åžžãªããšã«æ°ã¥ããŸãããããã¯ããµãŒããŒã«åçãã¢ããããŒãããããã»ã¹ãã°ã©ãã£ã«ã«ã«ç€ºãã€ã³ãžã±ãŒã¿ãŒã§ããä»æ¥ã§ã¯ãããã°ã¬ã¹ããŒã§èª°ããé©ããããšã¯äžå¯èœã§ããããã®ãããªã€ã³ã¿ãŒãã§ã€ã¹ã¯ãŸã æ®åããŠããããéåžžããŠãŒã¶ãŒã¯å転ããã°ããã®å¹³å¡ãªç æèšã®gifãèŠãŠãå®äºãŸã§ã®æ®ãæéã«é¢ããæ å ±ãæäŸããŸããã§ãããæäœã
次ã«ãWebãµãŒããŒãè€æ°ã®ã¿ã¹ã¯ãåæã«åŠçã§ããå¿ èŠããããšããäºå®ã«ã€ããŠèããŸãããåœæãã©ã€ã¢ã³ã¯ãã¹ãŠãéåæã§åäœããNginxã®ã¢ãžã¥ãŒã«ãéçºããŠãããNode.jsãã©ãããã©ãŒã ãšãªãã€ãã³ãé§ååã·ã¹ãã ãå®è£ ããããã®æãå¹ççãªæ¹æ³ã§ãããšããçµè«ã«éããŸããã
ããšããšãã¬ãŒã ã¯ãŒã¯ã¯web.jsãšåŒã°ããŠããŸãããããã®çšéã¯éåžžã®WebãµãŒããŒãããã¯ããã«åºãããšãå€æããããããã©ãããã©ãŒã ã®ååã¯Node.jsã«å€æŽãããŸãããå®æãããããžã§ã¯ãã¯ãJSConf 2009ã§ã©ã€ã¢ã³ã«ãã£ãŠçºè¡šããã45åéã®ããã©ãŒãã³ã¹ã¯ææåéãåããŸããã
ãã®ã·ã¹ãã ã¯ããã«åãå ¥ããããéåžžã«äººæ°ããããŸãããéåæã«å ããŠãããŒãã«ã¯ä»ã«ãå€ãã®å©ç¹ããããŸããæ¢åã®ããã¯ãšã³ãã«å¯Ÿããæœè±¡åã®å¥ã®ã¬ã€ã€ãŒãšããŠäœ¿çšã§ãããµãŒããŒåŽãæåããæžãçŽãå¿ èŠã¯ãããŸãããé«éäœæ¥ãšåªããæ¡åŒµæ§ã«ãããããšãã°ãã·ã¹ãã ã®ããŠã³ã¿ã€ã ãéåžžã«éèŠãªéšåã奪ãå¯èœæ§ããã販売ã·ãŒãºã³äžã§ãèœã¡ãªããã§ãŒã³ã¹ãã¢ã®éå¶çšã¢ããªã±ãŒã·ã§ã³ãªã©ãé«è² è·ã®ã·ã¹ãã ãæ§ç¯ããããšãå¯èœã«ãªããŸããã幎åã
ããã€ãã®åé¡ããããŸãããç¹ã«ãé©åãªããã¯ã°ã©ãŠã³ããæã€éçºè ãèŠã€ããã®ã¯ç°¡åã§ã¯ãããŸããã§ãããæãäžè¬çãªçç±ã¯æ¬¡ã®ãšããã§ãã ãç§ã¯NODE.JSãå«ãã§ã!!! 1111oneoneãã圌ãã¯èšèªã®æãããªåçŽããã以åã«ãµãŒããŒã®éçºãè¡ã£ãããšããªãããã°ã©ããŒãåŒãä»ãããšããäºå®ã«ç±æ¥ããŸããããã³ããšã³ãã¯éåžžJSã§èšè¿°ãããŠããããŸã£ããç°ãªãã¿ã¹ã¯ãããã§è§£æ±ºãããŸãã Javaã®éçºè ãããJavaã¹ã¯ãªãããšåŒã°ããèšèªã§ãåé¡ãªãããã°ã©ãã³ã°ã§ããããšããåèŠãæã£ãŠãããããåé¡ã«çŽé¢ããŸãã ã .Netãã©ãããã©ãŒã ã§äœæ¥ããããã°ã©ããŒã¯ãä»ã®ããã°ã©ããŒãããNodeã®äžã§JSã§ããã°ã©ãã³ã°ããã¿ã¹ã¯ã«ç°¡åã«å¯ŸåŠã§ããããšãããããŸãããããã«ãããŒãéçºã®æç¹ã§ãããããããã¯ãŒã«ãŒã¯éèŠã«ããã€ãã®å°é£ãçµéšããããã¯ãšã³ãã®JSããã°ã©ããŒã¯ååãªå ±é ¬ãåŸãŠããŸããã
ã©ã€ã¢ã³èªèº«ã¯ãéçºã®å®äºåŸãã°ããããŠã2012ã13幎é ã«ãGoèšèªã«èå³ãæã¡ãNode.jsã«é¢é£ãããã¹ãŠã®ãã®ããé·ãéé¢ããŸãããããã¯ããã®èšèªãæ©èœãšé床ã®ç¹ã§åœŒã«å®å šã«é©ããŠããããã§ãããã®åŸã圌ã¯ãã¥ãŒã©ã«ãããã¯ãŒã¯ã«èå³ãæã€ããã«ãªããŸãã...
äœæè ã«ããNode.jsãžã®æ¹å€
JSConf 2018ã«ã³ãã¡ã¬ã³ã¹ã®çŽ6ãæåãã©ã€ã¢ã³ã»ããŒã«ã¯ãåµèšããã»ãŒ10幎åŸã圌ã®çºæ¡è ãšäžç·ã«ä»äºãããããšæ±ºå¿ããŸãããããã¯ã圌ãèŠããã®ã«æºè¶³ããŠãããšããããšã§ã¯ãããŸãããééããªãããããžã§ã¯ãã¯å€§ããçºå±ããŸããããNode.jsã®éçºäžã«ãã©ã€ã¢ã³ã¯I / Oã®åé¡ã解決ããããšã«åºå·ãããããããããã€ãã®ééããç¯ãããããã·ã¹ãã ã®åé¡ã«ãªããŸããããã©ãããã©ãŒã ãéåžžã«äººæ°ã«ãªã£ãããããã¹ãŠã®äŸåé¢ä¿ãšäºææ§ãå£ããã«ã°ããŒãã«ã«äœããå€æŽããã«ã¯ããã§ã«é ãããŸããã
Ryanã¯ãNode.jsã ãã§ãªããéå»ã®ãã¹ãŠã®ãœãããŠã§ã¢ã«å¯ŸããŠéåžžã«æ¹å€çã§ããã 2011幎ã圌ã¯Google+ã§å°ããªã5åéææªãã€ãã³ããäž»å¬ããŸããããœãŒã·ã£ã«ãããã¯ãŒã¯èªäœã¯é·ãéééãããŠããŸããããã€ã³ã¿ãŒãããã¯ãã¹ãŠãèšæ¶ããŠããŸãã圌ã®èšèã®ç¿»èš³ã¯ããã§èªãããšãã§ããŸãïŒ ç§ã¯ã»ãšãã©ãã¹ãŠã®ãœãããŠã§ã¢ãå«ãã§ãããããŠã2018幎ã«è©±ã1幎åã«ã圌ã¯æ¬¡ã®ããã«è¿°ã¹ãŠããŸãã ããµãŒããŒã®å ŽåãGo以å€ã®èšèªãæ³åããããšã¯ã§ããŸããããå°æ¥ãèŠæ®ããŠã圌ã¯ãnode.jsãã©ãŒãã§ããGoã§æžãå§ããŸãããããã®åŸRustã«åãæ¿ããŸããã
ãããã£ãŠã2018幎ã®åœŒã®ã¹ããŒãã®æ¹å€çãªå£èª¿ã¯èª°ãé©ããããã©ãããã©ãŒã ã®äœæè ã®æ°é®®ãªå€èŠ³ãåã³ããã€ãã®åé¡ã®é¢é£æ§ãé«ããŸããã
Node.jsã«ã€ããŠåŸæããŠãã10ã®ããš
ãã®äžã§èæ ®ãããèŠç¹ãæãåºããŠãçŸåšã®ç¶æ³ãšæ¯èŒããŠã¿ãŸãããã
1ã
éçºã®åæã«èœãšãããçŽæã®æ¬ åŠã
2.2ã
å®å šä¿éåé¡ãNode.jsã¢ããªã±ãŒã·ã§ã³ã¯ãããŒã«ã«ãã£ã¹ã¯ããããã¯ãŒã¯ãããã³äžè¬çã«ã¯ã·ã¹ãã å šäœã«äžåºŠã«ã¢ã¯ã»ã¹ã§ããŸãã
3.3ã
誰ããé·ãéæŸæ£ããŠããè€éã§æ代é ãã®ãã«ãã·ã¹ãã ã
åã
äžå¿ èŠã«é¢åãªpackage.jsonã
äºã
ãã©ãããã©ãŒã ã®ã»ãã³ãã£ã¯ã¹ã¯ãã©ãŠã¶ãšäºææ§ããããŸãã
6ã
ã¢ãžã¥ãŒã«ã®éäžãªããžããªã
7ã
ã¢ãžã¥ãŒã«ãæ¥ç¶ããã³ãã³ãã¯ããã¡ã€ã«ã¿ã€ãã®å¿ é ã®è¡šç€ºãå¿ èŠãšããªããããæ··ä¹±ãæãå¯èœæ§ããããŸãã
8.8ã
index.htmlãšåæ§ã«ãindex.jsã䜿çšãããšãã¢ãžã¥ãŒã«ã®ããŒããããå°é£ã«ãªããpackage.jsonããµããŒãããåŸã¯äžèŠã«ãªããŸããã
ã¹ããŒãã®è°è«ã§ãã¬ããŒãã®éºæŸã®æ°ãã¿ã€ãã«ã®éºæŸã®æ°ãšäžèŽããªããšç¹°ãè¿ãèšåãããã®ã¯ããããã§ãããã©ã€ã¢ã³ãéåžžã«å¿é ããŠããããšãèæ ®ã«å ¥ããå¿ èŠããããŸãã圌ã¯èããåæºããŸããã¹ããŒãã®åé ã§ãããã«ã圌ã¯ã€ã³ã¿ãã¥ãŒã®äžã§ã圌ã¯ã¡ãã£ã¢é¢ä¿è ã§ã¯ãªãããã°ã©ããŒã§ãããšç¹°ãè¿ãè¿°ã¹ããããã¯å ã®åœŒã®æçš¿ã®ããããããäœçŸãã®ã³ã¡ã³ããåŒãä»ãããããšãšãä»ã¯ç§ãã¡ã®æèŠãè¡šçŸããéã«ãã£ãšæ³šæããå¿ èŠããããããšãåŸæããŸãããã³ãã¥ããã£ã¯ãã°ãã°åœŒã®èšèãæåéããããããšãç解ããŠããŸããã
ããã¢ããŠã³ã¹
Node.jsã®æ¬ ç¹ããªã¹ãããåŸãRyanã¯ãµãŒããŒäžã§ç¬èªã®JSã©ã³ã¿ã€ã ãããžã§ã¯ããæ瀺ããNodeïŒ
1ã«å¯Ÿããå©ç¹ãé çªã«ãªã¹ãããŸãã ã
ã³ãŒããå®è¡ããããã®å®å šãªãµã³ãããã¯ã¹ã§ãå¿ èŠãªæš©éã®ã¿ãä»äžããŸãã
2.2ã
ã¢ãžã¥ãŒã«ã®äœ¿çšã®ç°¡çŽ åãçŽæ¥ãªã³ã¯ã«ããããŒããããŒã«ã«ãã£ãã·ã¥ãžã®ä¿åããããã¯ãç¹å¥ãªã³ãã³ããæå®ããããŸã§æŽæ°ãããŸããã
3.3ã
TypeScriptã®å®å šãµããŒãã
åã
äžèŠãªãªã³ã¯ã®ãªãå¯äžã®å®è¡å¯èœãã¡ã€ã«
5ã
Denoã䜿çšãããšãç¹å®ã®ã¿ã¹ã¯ã«ã©ã¡ãã䟿å©ãã«ãã£ãŠãããŸããŸãªèšèªã§ã³ãŒãããã€ãã£ãã«å®è¡ã§ããŸãã
6.6ã
ãã£ãããããŠããªããšã©ãŒã§ã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãã·ã¥ããéåææäœã¯Promisesãåªãããã©ãŠã¶äºææ§ãè¿ããŸãã
äžèšã«å ããŠãDenoã¯ESã¢ãžã¥ãŒã«ã䜿çšããŸãããESã¢ãžã¥ãŒã«ã¯ããŒãã§ãµããŒããããŠããŸããã§ããã
Node.jsã®å€æŽç¹
ã¬ããŒãã¯ãããŸãã«ãªããŸããããã®ãããã³ãã¥ããã£ã§ãã®ãããªè©±é¡ãçºçããŸãããäžæ¹ã§ã¯ãçºèšã¯æ£ããã£ããäžæ¹ããããã®ãã¹ãŠãããã»ã©éèŠã§ãããšã¯éããªãããããã¹ãŠãåé€ããŠæ°ããç°å¢ãäœæããå¿ èŠããããŸãã
ãããããã»ãã¥ãªãã£äžã®æžå¿µã«ã€ããŠã®æãå ¬æ£ãªèšåã§ãã Node.jsã«ã¯ãå®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ãããµãŒããŒãéãããµã³ãããã¯ã¹ããããŸããããã®åé¡ã¯ãŸã å®å šã«ã¯è§£æ±ºãããŠããŸããããããã¯ãŒã¯ãžã®ã¢ã¯ã»ã¹ã¯ãã¡ã€ã¢ãŠã©ãŒã«ã§éããããšãã§ãããã£ã¹ã¯ãžã®ã¢ã¯ã»ã¹ããã®ä»ã®ã¢ã¯ã»ã¹èš±å¯ã¯ã³ã³ããããèµ·åããããšã§å¶éã§ããŸããããããã¯ãµãŒãããŒãã£ã®ãœãªã¥ãŒã·ã§ã³ã§ãããã©ãã§ã䟿å©ã§ã¯ãªãå ŽåããããŸãã
ã¬ããŒãã«èšèŒãããŠããéåæã³ãŒãã®å®è¡ã«é¢ããåé¡ã¯ãçŸæç¹ã§ã¯å€ããå°ãªãã解決ãããŠããŸãããã¡ãããRyanã2010幎ã«Promiseãåé€ããŠããªãã£ããšãããããããã¯è€éããããšä¿¡ããŠããã¯ãã§ããããµãŒãããŒãã£ã®æ©èœã¯èšããŸã§ããªããå€ãã®ã·ã¹ãã ã©ã€ãã©ãªããã§ã«ãã®æ©èœãæäŸããŠããŸããçŸåšãã¯ãŒã«ãŒãšäžŠè¡ããŠã¹ã¯ãªãããå®è¡ããããšãå¯èœã§ããMicrosoftãAlibabaãªã©ã®å€§äŒæ¥ã¯ããã«ãã¹ã¬ããã䜿çšããŠNodeã®ããŒãžã§ã³ãéçºããŠããŸãã
GYPãæé€ãããããšã¯äžåºŠããããŸããããã®éºç£ã¯ãä»åŸé·ãéNodeã«ååšããŸãããã©ãŠã¶äºæã®URLãªã³ã¯ã¯åé¡å€ã§ããããã°ããã®éãNodeã¯ESã¢ãžã¥ãŒã«ããµããŒãããŠããŸãã
äŸåé¢ä¿ã®è§£æ±ºã«ã¯æ³šæãå¿ èŠã§ããã©ãŠã¶ãŒãšã¯åäœãç°ãªããŸãããæãéèŠãªã®ã¯ãåé¡ããªãããã§ã¯ãããŸããããåäœããããšã§ãããããŠãpackage-lock.jsonã¡ã«ããºã ã®å€èŠ³ã¯ããããæå°éã«æããŸãã
NPMã¯2012幎以æ¥å€§ããé²åããŠããŸããããšã¯ãããé²åã¯èŠçã§ãããæ¯ã端ã«çœ®ãå·Šããããªã©ã®åé¡ã«ãã£ãŠæŒãé²ããããŸãã ãããããããã±ãŒãžã¯ãã¯ãæ¶ããã ãã§ã¯ãããŸãããã»ãã¥ãªãã£ç£æ»ã«ã¯ããã€ãã®ã¬ãã«ããããããŸããŸãªãœãŒã¹ããããã±ãŒãžãã€ã³ã¹ããŒã«ããæ©èœããããŸãããããŸã§ã®ãšãããéçºè ãæ£ããã³ãŒããgithubã«ã¢ããããŒãããnpmã§ãšã¯ã¹ããã€ãã䜿çšããã³ãŒããã¢ããããŒãããããšã劚ãããã®ã¯äœããããŸããã
index.jsã®åé¡ã¯ãã¢ãžã¥ãŒã«ãæ¥ç¶ããéã®æ¡åŒµæ©èœã®æ¬ åŠãšåæ§ã«ãå®éãããäžèªç¶ã«èŠããŸãã圌ã¯æ¥ãã§è°è«ã®ååãæãã€ãããšããå°è±¡ãåãããã¡ãªã¿ã«ãèšäºã®æåŸã§è©³ãã説æããŸããã
ãããã®åé¡ã®ã»ãšãã©ãã¹ãŠã解決ãããéåžžã«æåããŠããããšãèªããã¹ãã§ããããŒã«èªèº«ããããžã§ã¯ãã®éçºããé¢ããŸããã2012幎以æ¥ã圌ã¯ããŒããšã¯äœã®é¢ä¿ããããŸããã圌ã®ã¬ããŒãã¯ããªã䞻芳çã«èŠãããã©ãããã©ãŒã ã®æ¬ ç¹ã¯åœŒèªèº«ã®çºæ¡ã«ããèªåŒµãããŠããŸãããããã£ãŠããã®ã¹ããŒãã¯ãNode.jsãå ¬éãããšããããããéçºã®å®£äŒã®ããã«èŠããŸãã
å ¬å¹³ãæãããã«ãNodeã®ã¢ã¯ãã£ããªéçºã¯äŒæ¥ã«ãã£ãŠåŒ·ãå¶çŽãããŠããããšã«æ³šæããŠãã ãããäŒæ¥ã§ã¯ã倧éã®ã¬ã¬ã·ãŒã³ãŒããååšãããããã³ã¹ããããããããŠåé€ã§ããŸãããããã¯ãLinuxãæŽæ°ããå¿ èŠãããããã¹ãŠã®ã¢ãžã¥ãŒã«ãæ°ããã·ã¹ãã çšã«ã¢ã»ã³ãã«ã§ããªãå Žåã«ãé·ãéæ·±å»ãªåé¡ãåŒãèµ·ãããŠããŸãããé ããæ©ãããèšå€§ãªéã®ã³ãŒããæžãçŽããªããã°ãªãããããã«å€ãã®æéãšãéãè²»ãããŸãã倧äŒæ¥ã¯ããã«ãªãœãŒã¹ãè²»ããäœè£ããããŸãããéçºè ããããæŽæ°ããæéããªãå Žåãå°ããªæ奜家ã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã¯æŸæ£ãããŸãã
ããã«ãããããããNode.jsã«ã¯å·šå€§ãªã³ãã¥ããã£ããããããã°ã©ããŒãå€ãã®åé¡ã«å¯ŸåŠããã®ã«åœ¹ç«ã¡ãŸãããã ããéçºè ãã³ãã¥ããã£ã®åžæã©ããã«åªå é äœãèšå®ããªãå Žåãããããããããžã§ã¯ãã¯äžåäžã«é²è¡ããŸããé ããæ©ãããããŒããã©ã€ã¢ã³ã説æããå ã®æ¬ é¥ã«æçµçã«ééããå¯èœæ§ãããããããã解決ããããšã¯äžå¯èœã«ãªããŸããããããITã«ãšã£ãŠãäœããã°ããŒãã«ã«å€æŽããå¿ èŠãããã®ã¯ãããåããŠã§ã¯ãããŸãããããšãã°ãFlashã¯ããã»ã©é¢åãªããšãªãæ£åžžã«åã蟌ãŸããŸããã
ããéçº
è¬æŒã®çŽåŸãã³ãã¥ããã£ã¯Node-Denoã¢ãã°ã©ã ãããã«ç解ããŸããããã€ãDoneãšãããããžã§ã¯ããæžããããšãããžã§ãŒã¯ãããããŸãããããããåè«ã¯ããŠãããDenoã®éçºã¯ã©ãããæ¥ãã®ã§ããããïŒ
è¬æŒäžãã©ã€ã¢ã³ã¯æ£çŽã«èšã£ãŠãããã¯çŸåšå®éšçãªãããã¿ã€ãã§ãããããŒãã®ä»£æ¿ãšããŠæäŸãããŠããŸããã
ãããããããã2幎以äžãçµéããæšå¹Žã®æ¥ã«ãããã1.0.0ãšããæ°åã§ãªãªãŒã¹ãããŸããã
åè¿°ã®ããã«ããããžã§ã¯ãã¯Goã§éå§ãããŸããããåŸã«Rustã§åèšèšãããŸããããããžã§ã¯ãã¯åœåã®ããã«æžéãæ¢ããŸããããããã§ãé床ã«å©ç¹ã¯èŠãããŸããã§ãããããŒã ã«ããæé©åã«ãããTypeScriptã®æäœãé«éåãããŸãããããã¯ããã¬ãŒã³ããŒã·ã§ã³ã®æç¹ã§ãTSãã©ã³ã¹ã¬ãŒã¿ã®èµ·åã«1ç§ããã£ãããã§ããã©ã€ã¢ã³ã2018幎ã®ã¬ããŒãã§ææ¡ããããã«ããšã³ãžã³ã¹ãããã·ã§ããã䜿çšããŠãããã¯è§£æ±ºãããŸããã
ãã©ãããã©ãŒã ã¯Nodeãšå®å šã«äºææ§ããªãã絶察çãªä»£æ¿ãšããŠã§ã¯ãªãã代æ¿ãšããŠãç 究ãããžã§ã¯ããéçºè ã«ãã®ãããªãœãªã¥ãŒã·ã§ã³ãéçºããä»ã®æ¹æ³ãéçºããããä¿ãå®éšãšããŠèããããŸããã
Denoã¯çŸåšã次ã®éšåã§æ§æãããŠããŸãããµã³ãããã¯ã¹ã§ããV8ãšã³ãžã³äžã®Typescript / Javascriptã©ãã㌠ã¯ãTS / JSã¬ã€ã€ãŒãšRustããã¯ãšã³ãïŒãã¡ã€ã«ã·ã¹ãã ã«ã¢ã¯ã»ã¹ã§ããããã¯ãšã³ãïŒã®éã®ã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãããã«ãã¹ã¬ããã¯ãJavaScriptã®ãPromiseãã«é¡äŒŒãããRustFutureãæ§é ã䜿çšããŠãã€ãã³ãã®äœæãšåŠçãæ åœããRustéåæã©ã³ã¿ã€ã ã§ããTokioã䜿çšããŠæäŸã ããŸãã
ç°å¢ã¯æ¬è³ªçã«å®å šã§ãããããã©ã«ãã§ã¯ã¢ã¯ã»ã¹æš©ã¯ãããŸãããå¿ èŠãªæš©éãä»äžããã«ã¯ãç¹å®ã®ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ã䜿çšããŠãã©ãããã©ãŒã ãèµ·åããå¿ èŠããããŸãã解決çã¯ãããŸãã§ããé ããæ©ãããéçºè ã¯ã¹ã¯ãªããã§ç¡éã®ãªãã·ã§ã³ãæžãããšã«ãããããããããããŸããããªããªãã倧èŠæš¡ãªãããžã§ã¯ãã§ã¯ãããããããããããã-allow-allããããã©ã«ãã§èµ·åãããããã§ãã
å¿ èŠã«å¿ããŠãDenoã䜿çšãããšãç¹å®ã®èšç®ã¿ã¹ã¯ãå®è¡ããã®ã«äŸ¿å©ãªèšèªã§ããã°ã©ã ãåŒã³åºãããšãã§ããŸãã
***
çŸæç¹ã§ã¯ããªãªãŒã¹ããŒãžã§ã³ã¯ãã§ã«1.7ãšããçªå·ã§ãªãªãŒã¹ãããŠããŸããããããDenoãæ¯æãã倧äŒæ¥ã®æºNode.jsã¯ãŸã èãããŸãããnode.jsã®ããŒã±ãããã¬ã€ã¹ã§ã€ã¡ãŒãžãäœæããŸãã
ãDenoãããžã§ã¯ãã¯ç±æãæã£ãŠéçºãããŠããŸãã ãã©ã€ã¢ã³èªèº«ã¯çŸåšGoogleã§åããŠããããã¥ãŒã©ã«ãããã¯ãŒã¯ãšãã£ãŒãã©ãŒãã³ã°ã«é¢äžãããšã³ãžãã¢ã®ã¿ã¹ã¯ã®èšå®ã«åãçµãã§ããŸãã
Dahlã¯ãRyanã«ãšã£ãŠãŸã£ããäºæ³å€ã®Node.jsãããã«èªèãããããã«äººæ°ãåãããšãã«æ®åœ±ãããæåã®ãããžã§ã¯ãã®è€åäœãéçºãããšèª°ããèããŠããŸããããããããããã圌ã¯æ°ããã¢ã€ãã¢ãªãã§ã¯åº§ãããšãã§ããã圌èªèº«ã®çºæã®äžå®å šãã容èªããããšãã§ããªã人ã ã®äžäººã§ãã
ããŒã«ã¯2018幎ã®äŒè°ã§è©±ããã£ãšåã«ããã«åãçµã¿å§ããŸãããã圌女ã®å ã®ããŒãã¯éåžžã«ç°ãªã£ãŠããŸããã圌ã¯ãéå»æ°å¹Žéè¡ã£ãŠããæ©æ¢°åŠç¿ã«ã€ããŠè¬æŒããäºå®ã§ããããããã圌ã«ã¯æºåããæéããªãã圌ã®ã¹ããŒãã®ãããã¯ã¯äŒè°ã®æ°æ¥åã«æåéãåé€ãããŸããããããŠã圌ã¯ã³ãã¥ããã£ã§ã®èªåã®éã¿ãšãèŽè¡ã圌ã®ããã©ãŒãã³ã¹ãã©ã®ããã«æåŸ ããããç解ããŠããã®ã§ãèŽè¡ã®æåŸ ã«å¿ããæ°ãã䟡å€ã®ãããããã¯ãèŠã€ããããã«ã1æ¥ã2æ¥ã§éåžžã«æžåœã«åªåããªããã°ãªããŸããã§ããã
ãããã£ãŠã圌ã¯ãNode.jsã®ãã©ãŒãã宣èšããã€ããã¯ãªãã£ãã®ãããããŸããããæ°ããã¬ããŒããäœæããããã«æ¥ãã§ããŸããã圌ã¯ãªããšãããªãã®éã®ãã€ãºãäžããããšãã§ããŸãããããããããã£ãŒãã©ãŒãã³ã°ã®ãããã¯ãããã¯ããã«å€ãã§ãããã