Node.jsã¯å®ç§ãªè£œåã§ã¯ãªããæ¬ ç¹ããããŸãïŒJSã䜿çšããŸããïŒïŒãRyanDahlã«ãã誀ã£ã決å®ã®ããã«ãéçºã®åææ®µéããåŒããã蟌ãŸãããã®ããããŸãã node.jsã¯ããã« äžæºãæããŸããããããããšã§ãããç¹ã«äŒæ¥éšéã§ã¯ããã®ã·ã¹ãã ã«ä»£ãããã®ãèŠã€ããããšãå°é£ãŸãã¯äžå¯èœãªå ŽåããããŸããããããããã°ã©ããŒã«ä»åŸäœå¹Žã«ãããã£ãŠäœæ¥ãæäŸããå€§èŠæš¡ãªã¬ã¬ã·ãŒã³ãŒãããµããŒãããå¿ èŠããªãå Žåã¯ãä»ã®ãœãªã¥ãŒã·ã§ã³ã«ç®ãåããããšãã§ããŸããäžèšã®èšäºã§ãNode.jsãã©ãŒãã«ã€ããŠèªãããšãã§ããŸããä»ã®ããã€ãã«ã€ããŠã¯ããã®èšäºã§èª¬æããŸãã
ASP.NET
ãå€ãåéã¯2äººã®æ°ããåéãããåªããŠããŸããã ASP.NETã«ã¯é·ãæŽå²ããããŸãã ASP.NETãµãŒãã¹ã®åºç€ã圢æããActiveServer Pagesãã¯ãããžã¯ãåäžçŽã®çµããã«éçºãããŸããããã¡ãããéçºæéã¯å¿ ãããè¯ãããšã§ã¯ãããŸãããã補åã®é·å¯¿åœã¯ããªã¥ãŒã ãç©èªã£ãŠããŸãã ASP.NETã®åäœåçã¯ãŸã£ããç°ãªããŸãããããã°ã©ã ã³ãŒããå®è¡ããŠã¢ãžã¥ãŒã«ãæ¥ç¶ããããã®ç°å¢ã§ããã ãã§ãªããWebãµãŒãã¹ãäœæããããã®ãã©ãããã©ãŒã ã§ããããŸãã Node.jsãšåæ§ã®åé¡ã解決ããããã«ãã䜿çšãããŸãã
Node.jsãå°ããªããŒã ã®çºæ¡ã«ãããã®ã§ãããæãåºæ¬çãªåœ¢åŒãI / Oã«ã¢ã¯ã»ã¹ã§ãããã©ãŠã¶ãŒã®å€éšã§JSããã°ã©ã ãèµ·åããããã®ç°å¢ã§ããå ŽåãASP.NETã¯å€§äŒæ¥ã®å žåçãªè£œåã§ããæåã¯ãéçºãããã«éå§ã§ãã倿°ã®ããã©ã«ãã©ã€ãã©ãªãå«ãŸããŠããŸãã Nodeã¯éçºè ã³ãã¥ããã£ã®ãããã§éçºããããããã·ã¹ãã ã«ã¯æåã«å¿ èŠãªãã¹ãŠã®ã¢ãžã¥ãŒã«ãè£ åããå¿ èŠããããŸããããã¯åçŽã«ä¿¡ããããªãã»ã©ã§ããæãåçŽãªãHelloworldïŒã on Nodeã¯ãæ°åã®ãã¡ã€ã«ãã·ã¹ãã ã«ãã©ãã°ããŸããããã«ãéãåžžã«å質ã«éãããšã¯éããŸãããéçºè ããi ++ããå¥ã®ã¢ãžã¥ãŒã«ã«è©°ã蟌ã¿ã100äžåããŠã³ããŒããããã®ããã±ãŒãžãçªç¶æŽæ°ãŸãã¯åé€ããæºåãã§ããŠããããã«èŠããããšããããŸããæ·±å»ãªäºææ§ã®åé¡ãåŒãèµ·ãããããnpmãã¯ã©ãã·ã¥ããããããŸããASPã§ã¯ãã»ãã¥ãªãã£ãšæŽæ°ã¯Microsoftãšã³ã·ã¹ãã ã«ãã£ãŠç£èŠãããASPãä»ã®å€§äŒæ¥ã«ãã£ãŠäœæãããã©ã€ãã©ãªã¯ããšã©ãŒãšäºææ§ã®åé¡ããªããæ³šææ·±ããã§ãã¯ãããŸã...
å€ãã®éãã«ãããããããäž»ãªãã®ã®1ã€ã¯ãèšç®ã®åæ£ã«å¯Ÿããç°ãªãã¢ãããŒãã§ãã Node.jsã§ã¯ããã¹ãŠãåäžã®ã¹ã¬ããã§å®è¡ãããŸããããéåæI / Oã䜿çšããŠããŸããã ASPã¯å ã ããã«ãã¹ã¬ããããã³åæI / Oã§æ©èœããŠããŸãããæåã®ãªãã·ã§ã³ã¯ããµãŒãã¹ãéåžžã«éäžçãªäº€æãå¿ èŠãšããå Žåã«åªããããã©ãŒãã³ã¹ã瀺ããŸãããã³ãŒããããããè€éã«ãªããŸããææ°ããŒãžã§ã³ã®è£œåã§ã¯ããããã®éãã¯è§£æ¶ãããŠããŸããNode.jsãšASP.NETã§ã¯ãasync \ awaitãã¿ãŒã³ã䜿çšãããŠããŸãã
JSã¯éçºäžã«å€§ããæé·ããŸãããã匷ãåä»ãã®ãªãèšèªã®ãŸãŸã§ãããå ã ã¯åŒ·ãåä»ããšOOPãæã£ãŠããC ++ã®çŽæ¥ã®åœ±é¿äžã§éçºãããCïŒã«è² ããŠããŸãããã®çµæãCïŒã¯ãã匷åã§äžè²«æ§ããããTSã®ãããªã¢ããªã³ãå¿ èŠãšããŸããããããäžæ¹ã§ãJSã¯ãã®åçŽãã®ããã«ãè€éãªCïŒæ©èœãå¿ èŠãšããªããã€ã¯ããµãŒãã¹ãããã°ã©ãã³ã°ãããšãã«éèŠãé«ãŸããŸãã
䜿çšãããããã°ã©ãã³ã°èšèªã®éãã«å ããŠããããã®ãã©ãããã©ãŒã ã«ã¯ç°ãªãã€ããªãã®ãŒããããŸããASP.NETã§ã¯ãå€ããäºåå®çŸ©ãããŠããããã¡ã€ã«æ§é ããå§ããŠãã¹ãŠãæ¢è£œã§ãããNode.jsã§ã®äœæ¥ãéå§ãããšãã¯ããã¹ãŠãèªåã§éžæããå¿ èŠããããŸããããã«ãããæè»æ§ãé«ããªããŸãããéçºãè€éã«ãªããŸãããã ããASP.NETã«ã¯ã匷åãªãããã°ããã¹ããããã³ãªãã¡ã¯ã¿ãªã³ã°ããŒã«ããããŸãã
ASP.NETãNode.jsãããå€§å¹ ã«å£ã£ãŠããã®ã¯ãå±éã®ããããã ãã§ããããŒãã«å¿ èŠãªã®ã¯ããšã³ãžã³ãšãããã·ãŸãã¯Dockerã®ã¿ã§ãããã©ãããã©ãŒã ã¯ãèªåã§æ§æããããšããã»ãšãã©ãã¹ãŠã®ãã¹ãã£ã³ã°ãããã€ããŒããå ¥æã§ããæ¢è£œã®VPSã€ã¡ãŒãžãååŸããããšãã§ããŸããASPã®å Žåãã¯ãã¹ãã©ãããã©ãŒã ã«ããããããããã¹ãŠãããã»ã©ç°¡åã§ã¯ãªãããµãŒããŒçšã®æ¢è£œã®ã€ã¡ãŒãžã¯ãAzureã¬ãã«ã®æå€§ã®ãã¬ãŒã€ãŒã®ã¿ãå©çšã§ããŸãã
JavaScriptã¯æ¬åœã«å¿ èŠã§ããïŒ
Node.jsã¯ããã©ãŠã¶ãŒãšãµãŒããŒéã®åæ¹åWebã¢ããªã±ãŒã·ã§ã³éä¿¡çšã«è€æ°ã®åæã¹ã¯ãªãããç°¡åã«å®è£ ã§ããã·ã³ãã«ã§ã¢ã¯ã»ã¹å¯èœãªããã°ã©ãã³ã°èšèªã§ãããããJSã®ã©ã³ã¿ã€ã ãšããŠäœæãããŸãããASP.NETã¯ãä»ã®æ¹æ³ã®ã¿ã䜿çšããŠWebã¢ããªã±ãŒã·ã§ã³ãäœæããããã«ãäœæãããŸãããåãDenoã¯ããµãŒããŒãªãœãŒã¹ãšçŽæ¥é£æºããä»®æ³ãã·ã³ã®äžã®ããã€ãã®ã¬ã€ã€ãŒã§æ§æãããŸãããã ãããµãŒããŒäžã§çŽæ¥å®è¡ããããä»®æ³ãã·ã³ãå¿ èŠãšããããã°ã©ãã³ã°èšèªã®è€éãªã©ãããŒã䜿çšããå¿ èŠã¯ãããŸããã
è¡ã
2007幎ãå瀟ã®ãšã³ãžãã¢ã¯ãC ++ãçŸåšã®ã³ã³ãã¥ãŒã¿ãŒæè¡ã®çŸå®ã«é©åããŠããªããšå€æããŸããããã«ãã³ã¢ããã»ããµãšåæ£ã·ã¹ãã ã®æ©èœã掻çšããå¹ççãªäžŠååããŒã«ãèªåã¬ããŒãžã³ã¬ã¯ã¿ãŒãããã³ã³ãŒãã®å¯èªæ§ãšåã®æäœã容æã«ããããã®ããã€ãã®ç°¡ç¥åãå¿ èŠã§ããã
éçºè ã®ç®æšã¯ããC ++ã®ããè¯ãããŒãžã§ã³ããäœæããããšã§ã¯ãªããããã°ã©ãã³ã°ã®çµéšã«åºã¥ããŠæ°ããèšèªãããçè§£ããããããããšã§ãããGoã¯2009幎ã«å ¬è¡šãããããã«ããã°ã©ãã³ã°èšèªã®ããã10è¿ãã«ãŸã§äžæããŸããïŒ2012幎åé ã®13äœïŒãRaymond Dahlèªèº«ãããGoã®ãããªçŸããèšèªãããã®ã«ããªãNode.jsãªã®ãããšãã衚çŸã§ããããè³è³ããŸãããããããç®æ°ããã¯éãå»ãããã®äžŠååããŒã«ãWebã¢ããªã±ãŒã·ã§ã³ã§ã®ãã€ã¯ããµãŒãã¹ã®éçºã«é©ããŠããããšã倿ãããŸã§ãèšèªã¯ã»ãšãã©å¿ããããŠããŸãããããã«ãããèšèªã¯ä»¥åã®äººæ°ã«æ»ããŸããã
Goçšã«ããã€ãã®Webãã¬ãŒã ã¯ãŒã¯ãäœæãããŠããŸãããããã«äœ¿çšã§ãããããWebã¢ããªã±ãŒã·ã§ã³ã®ããã°ã©ãã³ã°ã«å¿ èŠãªãã¹ãŠã®æ©èœãåããŠããããã䜿çšããå¿ èŠã¯ãããŸãããDenoã¯ããšããšGoã§æžãããŸããã
ã«ããŒ
åãGoãšæ¯èŒãããšãããã¯ææ°ã®èšèªã§ã¯ãªãã1995幎ã«ãªãªãŒã¹ãããŸããã Goãšã¯ç°ãªããPytonãããåªãããªããžã§ã¯ãæåã®éèš³èšèªã®äœæã«ç±å¿ã ã£ããŸã€ããšããã²ããéçºããŸããããã®èšèªã¯ããã«ã¯äººæ°ãåããŸããã§ãããç¹ã«ãæåã®æ°å¹Žéã¯ãã®ããã¥ã¡ã³ããæ¥æ¬èªã®ã¿ã§ãã£ãããã§ããè±èªã®æ¬ã¯2000幎代åé ãŸã§åºçãããã2005幎ã«Ruby on Rails Webãã¬ãŒã ã¯ãŒã¯ããªãªãŒã¹ ãããç¹ã«Appleã2007幎ã«Mac OS X10.5ã«å梱ãããšçºè¡šãããšãã«æ¥éã«æ®åããŸããã ã
ãã¹ãŠã®ã€ã³ã¿ããªã¿èšèªãšåæ§ã«ãRubyã®éåºŠã¯æ¯èŒçé ããRuby onRailsã§èšè¿°ãããWebã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããŸããããã®åé¡ãç¥ã£ãŠãèè ã¯äžäœäºææ§ã倱ãããã¯ããã«é«éã«å®è¡ãããããŒãžã§ã³ã®èšèªã®éçºãéå§ããŸãããããã¯2009幎ã«è¡ããŸãããé床ã¯å€§å¹ ã«åäžãã.NETããã³JVMã§å®è¡ãããŠããWebã¢ããªã±ãŒã·ã§ã³ãšåçã§ãããã®ãããã§ããã¬ãŒã ã¯ãŒã¯ã®äººæ°ãæ¥äžæããŸããã2018幎ãRubyã®äœæè ã¯ããŒãžã§ã³2.6ããªãªãŒã¹ããŸãããããã¯ãåçã³ã³ãã€ã«ãå®è£ ããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãããã«é«éåããŸãã
ãããŸã§ãRubyèšèªã¯Ruby onRailsãã¬ãŒã ã¯ãŒã¯ãšå¯æ¥ã«é¢é£ããŠããŸãã
ãšãªã¯ãµãŒ
ã¢ãŒã©ã³ã¯ãå€§äŒæ¥ã«ãã£ãŠäœæããããã1ã€ã®ããã°ã©ãã³ã°èšèªã§ããä»åã¯ãšãªã¯ãœã³ã®ã¹ãŠã§ãŒãã³äººãé 匵ã£ãã 1986幎ã誰ãWebã¢ããªã±ãŒã·ã§ã³ã®éçºã«ã€ããŠèããŸããã§ãããã€ã³ã¿ãŒãããã¯ãŸã ãããžã§ã¯ãã«ãããèšèªã¯ã·ã¹ãã ããªã¢ã«ã¿ã€ã ã§å®è¡ããããã«äœæãããŸãããé·ãéãErlangã¯ç€Ÿå ã®ããŒãºã«äœ¿çšããŠãã瀟å€ã§ã¯ã»ãšãã©ç¥ãããŠããŸããã§ãããã1998幎ã«çµå¶é£ãèªåœèªã®ãµããŒãã忢ãã䜿çšãçŠæ¢ããéçºè ã«Javaãžã®åãæ¿ãã矩åä»ããŸãããããã«ãããèšèªã¯ãªãŒãã³ã©ã€ã»ã³ã¹ã®äžã§ãªãªãŒã¹ããããããéçºããäŒç€Ÿã®å€éšã«é åžãããŸãããé·ãéããã®æŠå¿µããã«ãããã»ããµã¢ãŒããã¯ãã£ã®éçºã«é©ããŠããããšã倿ãããŸã§ãããã¯å°ããªç§åŠè ã®èŒªã«ããé¢å¿ããããŸããã§ããã
2012幎ãRuby onRailséçºè ã®1人ã§ããJoseWalimã¯ãé«è² è·ã·ã¹ãã ãå€§èŠæš¡ãªWebãµã€ãçšã®ããã°ã©ãã³ã°èšèªãäœæãããšããã¢ã€ãã¢ãæãã€ããŸããããã®çµæãErlangä»®æ³ãã·ã³ïŒBEAMïŒçšã«ãã€ãã³ãŒãã«ã³ã³ãã€ã«ããã颿°åããã°ã©ãã³ã°èšèªã§ããElixirãéçº ãã ãŸãããèšèªãéä¿¡æ©åšã®ããã°ã©ãã³ã°çšã«éçºãããErlangã«åºã¥ããŠãããšããäºå®ã«ãããElixirã¯ããã©ãŒã«ããã¬ã©ã³ã¹ããããã³ãŒã眮æãªã©ã®ç¬èªã®ç¹æ§ãåãåããŸããã ïŒå®è¡äžã®ããã°ã©ã ã®ã³ãŒããåèµ·åããã«å€æŽãŸãã¯ããŒã«ããã¯ããïŒããã³ãªã¢ã«ã¿ã€ã ã§åäœããæ©èœããããã®ããããã£ã䜿çšãããšãæ°Žå¹³ã¹ã±ãŒãªã³ã°ãšåçŽã¹ã±ãŒãªã³ã°ã®äž¡æ¹ããµããŒãããä¿¡é Œæ§ã®é«ãé«è² è·ã·ã¹ãã ãäœæã§ããã€ã³ã¿ãŒããªã¿ãŒèšèªïŒPHPãRubyãPythonïŒã§èšè¿°ãããåæ§ã®ã¢ããªã±ãŒã·ã§ã³ããã5ã10åé«éã«åäœããŸããäœæè ã®è·å Žã¯ãèšèªãRubyã®ãããªæ§æã䜿çšããŠãããšããäºå®ã«åœ±é¿ãäžããRuby onRailsã䜿çšããŠãã人ã«ãšã£ãŠã¯ç°¡åã«ç¿åŸã§ããŸãã
Elixirã¯çŸåšãDiscordãSquare EnixãPepsiCoãSketchãªã©ã®æåäŒæ¥ã§äœ¿çšãããŠããŸãã
ãããŠãçµå±ã®ãšãããJavaScriptã®å Žåã¯ã©ãã§ããããã
ããããæ°ããããã°ã©ãã³ã°èšèªãç¿åŸããããšãçŸå®çã§ãªãå ŽåãããŒãå šäœããµãŒããŒã«ãã©ãã°ããã«ã¯ã©ãããã°ããã§ãããããä»ã®JSã©ã³ã¿ã€ã ãèŠãããšãã§ããŸãã
RingoJSã¯ãJVMäžã«æ§ç¯ããããµãŒããŒäžã§å®è¡ããããã«æé©åããããã«ãã¹ã¬ãããã©ãããã©ãŒã ã§ããå°è±¡çãªæŽå²ãæã€MozillaRhinoãšã³ãžã³ã¯ãJSã³ãŒãã®è§£éã«äœ¿çšãããŸããããã¯1997幎ã«éçºããå§ããNetscapeã®æä»£ã«ããã®ãŒããåŸã«ãããžã§ã¯ãã¯Mozilla Foundationã«è»¢éããããªãŒãã³ãœãŒã¹ã«æçš¿ãããŸããã
RingoJSã¢ããªã±ãŒã·ã§ã³ã¯ãRaspberry PiãŸã§ã®ä»»æã®Linuxãã©ãããã©ãŒã ããŸãã¯Google AppEngineãªã©ã®ã¯ã©ãŠããã©ãããã©ãŒã äžã«ãããã€ã§ããŸãã RingoJSã¯CommonJSã«åºã¥ãã¢ãžã¥ã©ãŒã·ã¹ãã ã§ãããNode.jsã®ããã€ãã®ã¢ãžã¥ãŒã«ã䜿çšããããšãã§ããŸãããŸããRingoãšã³ãžã³ã䜿çšãããšãJavaã§èšè¿°ãããã©ã€ãã©ãªãçµ±åã§ããŸãã
PurpleJSã¯ãJVMã§å®è¡ããããã1ã€ã®åçŽãªJSãã¬ãŒã ã¯ãŒã¯ã§ãã JSãšã³ãžã³ã«ã¯ãOracleãéçºããNashornïŒãµã€ïŒã䜿çšããŠããŸãããã¬ãŒã ã¯ãŒã¯ã¯éåæã¢ãŒãã䜿çšãããNashornã¯CommonJSããµããŒãããŠããªãããããããNodeã®æ¬æ Œçãªçœ®ãæãã§ãããšã¯éããŸããããéåžžã«è»œéã§ãããã³ãŒãã倿ŽããåŸã«ãµãŒãã¹ãåèµ·åããå¿ èŠã¯ãããŸããã
Vert.xãã¯ããã¬ãŒã ã¯ãŒã¯ã§ã¯ãããŸããããJVMã§å®è¡ãããå®å šã«éåæã®ãªã¢ã¯ãã£ãWebã¢ããªã±ãŒã·ã§ã³ããã€ã¯ããµãŒãã¹ãããã³ãããã¯ãŒã¯ãŠãŒãã£ãªãã£ãäœæã§ããå€èšèªã®ããŒã«ã»ããã§ãããµããŒããããŠããèšèªã¯JavaãšJSã«éå®ãããŸããããGroovyãRubyãScalaãKotlinã§ã¢ããªã±ãŒã·ã§ã³ãèšè¿°ã§ããããšãé€ããŠãäžå åããããªããžããªãåããã¢ãžã¥ã©ãŒã·ã¹ãã ããµããŒããããŠãããVert.xã¯ç°¡åã«æ¡åŒµããã³ã¹ã±ãŒã©ãã«ã§ãã
ãããžã§ã¯ããæåã«Node.xãšåŒã°ãããã®åŸãæ³çãªåé¡ãåé¿ããããã«ååã倿Žãããã®ã¯ããããã§ããäœææã®ç®æšã¯Node.jsã®ç®æšãšåãã§ãããTim FoxïŒVert.xã®äœæè ïŒã¯åœŒãDaliã®æåãšãJVMã§Node.jsãäœãããã£ããã«è§ŠçºãããŸããã
éžæè¢ãå°è±¡çã§ãªããnode.jsãããªãã®æã®ãŸãŸã§ããå Žå
node.js