ã¯ããã«
ãã®èšäºã§ã¯ãããã°ã©ãã³ã°èšèªãšããŠæ³šç®ãããŠããScalaãšãã®ãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠã®è§£èª¬ãè¡ããŸããããã°ã©ãã³ã°ã®çµéšãå°ãªãæ¹ã§ãç解ã§ãããããçšèªã®èª¬æããå§ããŠåãçµã¿ãŸãã
Scalaãšã¯äœã?
Scalaãšã¯ããªããžã§ã¯ãæåãšé¢æ°åããã°ã©ãã³ã°ã®ç¹æ§ãäž¡æ¹æã€éçåä»ãã®ããã°ã©ãã³ã°èšèªã§ããJavaãšäºææ§ãæã€ããšã§ç¥ãããã·ã³ãã«ãªèšè¿°ãšé«ãããã©ãŒãã³ã¹ã匷åãªéçåãã§ãã¯ãæ¡åŒµæ§ãªã©ãç¹åŸŽãšããŠæããããŸãã
ãªãããªããžã§ã¯ãæåãšããã®ã¯ãããã°ã©ã ãäºãã«ç¬ç«ããããªããžã§ã¯ãããååãã圢ã§èšèšã»å®è£ ããæ¹æ³è«ã®ããšã§ãã³ãŒãã®åå©çšæ§ãšå¯èªæ§ã®åäžãç®æããŠããŸãããããŠãé¢æ°åããã°ã©ã ãšã¯ãèšç®ãæ°åŠçãªãé¢æ°ãã®è©äŸ¡ãšããŠæããããã°ã©ã ãäžé£ã®å ¥åºåãè¡ãé¢æ°çŸ€ã§èšè¿°ããèãæ¹ã§ãã
Scalaãã¬ãŒã ã¯ãŒã¯ãšã¯äœã?
ç¶ããŠãScalaãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠèª¬æããŸãããã¬ãŒã ã¯ãŒã¯ãšã¯ããœãããŠã§ã¢ã®éçºãåæ»ã«é²ããããã®åå°ãšãªãéšåãæäŸããã·ã¹ãã ã®ããšã§ãäžã§ãScalaãã¬ãŒã ã¯ãŒã¯ã¯ScalaèšèªãçšããŠãœãããŠã§ã¢éçºãè¡ãããã®ãã¬ãŒã ã¯ãŒã¯ã®ããšãæããŸãã
ãã¬ãŒã ã¯ãŒã¯ã«ã¯ãç¹å®ã®ã¿ã¹ã¯ãæ©èœã«é¢ããéšåãæäŸããããããéçºè ã¯ããããçµã¿åãããŠããã°ã©ã ãéçºããŸããããã«ãããæéãããã现ããã³ãŒãã£ã³ã°äœæ¥ãæžãããèšèšãã¢ã«ãŽãªãºã ã«ããå€ãã®æéãè²»ããããšãã§ããŸãã
ä»åŸããã®èšäºã§ã¯ãScalaãã¬ãŒã ã¯ãŒã¯ã®äžã§ãç¹ã«æ³šç®ãã¹ããã®ã«çŠç¹ãåœãŠããã®ç¹æ§ãå©çšã·ãŒã³ã«ã€ããŠæ·±ãæãäžããŠãããŸãããã²æåŸãŸã§ã芧ããã ããScalaãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠã®ç解ãæ·±ããŠãããŸãããã
Scalaãã¬ãŒã ã¯ãŒã¯ã®çš®é¡
Scalaã§Webã¢ããªã±ãŒã·ã§ã³éçºãè¡ãéã«åœ¹ç«ã€ãã¬ãŒã ã¯ãŒã¯ã«ã¯æ§ã ãªãã®ãååšããŸããããã§ã¯ãç¹ã«äººæ°ããããPlay FrameworkãããAkkaãããScalatraãã®äžã€ã«ã€ããŠèª¬æããŸãã
Play Framework
Play Frameworkã¯ãScalaã ãã§ãªãJavaã§ãå©çšå¯èœãªWebã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ã§ããéåæI/OããµããŒãããŠãããé«è² è·ã«åŒ·ãã¢ããªã±ãŒã·ã§ã³ãéçºããããšãå¯èœãšãªã£ãŠããŸãããŸããã·ã³ãã«ãªèšèšãç¹åŸŽã§ãMVCã¢ãã«ãæ¡çšãã«ãŒãã£ã³ã°èšå®ãªã©ãç°¡æœã§ããããã䜿ãããããšãããé åã§ããå ããŠãèªåãªããŒãæ©èœããšã©ãŒã¡ãã»ãŒãžè¡šç€ºãªã©éçºè åãã®æ©èœã«ãåªããŠããŸãã
Akka
次ã«ãAkkaã¯ã䞊ååŠçãåæ£åŠçãå¿ èŠãªã·ã¹ãã ãæ§ç¯ããããã®ãã¬ãŒã ã¯ãŒã¯ã§ããActorã¢ãã«ãæ¡çšããŠãããè€éãªäžŠååŠçãã¹ã ãŒãºã«æ±ãããšãåºæ¥ãŸãããŸããAkkaã¯å·šå€§ãªããŒã¿ãæ±ãBigDataé åã§ãããçšããããScalaãšJavaã®äž¡æ¹ã§äœ¿çšããããšãå¯èœã§ãã
Scalatra
æåŸã«ãScalatraã¯ã軜éãªãã€ã¯ããã¬ãŒã ã¯ãŒã¯ã®äžã€ã§ãRubyã§éçºãããŠããSinatraãåèã«èšèšãããŸãããã«ãŒãã£ã³ã°ã®èšå®ãç°¡æœãªããšããå¿ èŠæäœéã®æ©èœã ããæäŸããããšã§è»œéåãéæããå°èŠæš¡ãªWebã¢ããªã±ãŒã·ã§ã³éçºã«åœ¹ç«ã¡ãŸãããŸãRESTfulãªã¢ããªã±ãŒã·ã§ã³ã®éçºã«é©ããŠããŸãã
åãã¬ãŒã ã¯ãŒã¯ã®ç¹åŸŽãšå©ç¹
ããããã®Scalaãã¬ãŒã ã¯ãŒã¯ã«ã¯ç¬èªã®ç¹æ§ãšå©ç¹ããããŸããããããç解ããããšã§ãé©åãªãã¬ãŒã ã¯ãŒã¯ãéžã³ãããå¹æçãªéçºãå¯èœã«ãªããŸãã
Play Frameworkã®ç¹åŸŽãšå©ç¹
Play Frameworkã¯ãç°¡æœããšçç£æ§ãéèŠãããã«ã¹ã¿ãã¯ã®Webãã¬ãŒã ã¯ãŒã¯ã§ãã JavaãšScalaã®äž¡æ¹ã§äœ¿çšããããšãå¯èœã§ãéçºè ã觊ããé¢ç©ãåºãããšãç¹åŸŽã§ãã
ç¹ã«ãHot reloadãæ©èœã¯ããœãŒã¹ã³ãŒããå€æŽããéã«èªåçã«ãµãŒããŒãåèµ·åããŠåæ ããæ©èœã§ãéçºã®çç£æ§ãé£èºçã«é«ããŸãããŸãPlay Frameworkã¯ãåçš®ãã³ãã¬ãŒããšã³ãžã³ã®ãµããŒãããã¬ãŒã ã¯ãŒã¯èªäœãæã€ããªãšãŒã·ã§ã³ã®è±å¯ãããããŸããããã«ãããå€ãã®éçºããŒãºã«å¯Ÿå¿ãããããªã£ãŠããŸãã
Akkaã®ç¹åŸŽãšå©ç¹
Akkaã¯ã倧èŠæš¡ãªäžŠååŠçãšåæ£åŠçãå¯èœã«ããããŒã«ãããåã³ã©ã³ã¿ã€ã ã§ãããã®äž»ãªç¹åŸŽã¯ãã¢ã¯ã¿ãŒã¢ãã«ãããŒã¹ã«ããéåæã®ã¡ãã»ãŒãžããã·ã³ã°ã«ããã倧éã®äžŠè¡äœæ¥ãå¹ççã«è¡ãããšãå¯èœãšãªããŸãã
Akkaã®æ倧ã®å©ç¹ã¯ãã®ã¹ã±ãŒã©ããªãã£ãšèé害æ§ã«ãããŸããã·ã¹ãã ã®è¶³å ããåæ£åŠçãèããããèšèšã«ãããå°ããèŠæš¡ãã倧ããªèŠæš¡ãŸã§èªç±ã«æ¡åŒµããããšãå¯èœã§ãããŸããåã ã®ã¢ã¯ã¿ãŒãèªå·±ãç£èŠãããã¬ããã»ã€ããã»ã¯ã©ãã·ã¥ãå²åŠã«ãããã·ã¹ãã ã¯èªèº«ã®å埩åãæã€ããã«ãªããŸãã
Scalatraã®ç¹åŸŽãšå©ç¹
Scalatraã¯ã軜éããšã·ã³ãã«ããè¿œæ±ããWebãã¬ãŒã ã¯ãŒã¯ã§ããRESTfulãªAPIã®æ§ç¯ã«åããŠãããã·ã³ãã«ãªDSLãçšããŠç°¡æœã«ã«ãŒãã£ã³ã°ããªã¯ãšã¹ããåŠçããããšãã§ããŸãã
Scalatraã®å©ç¹ã¯ãã®åŠç¿ã®å®¹æããšå°å ¥ã®æ軜ãã«ãããŸããå°ããªã³ãŒãããŒã¹ãšçŽæçãªèšèšã«ãããåããŠScalatraãåŠã¶éçºè ã§ãããã«æ £ããããšãã§ããŸãããŸããäŸåé¢ä¿ãå°ãªãã軜éãªã®ã§æ¢åã®ãããžã§ã¯ãã«å®¹æã«å°å ¥ããããšãã§ããŸãã
ãã¬ãŒã ã¯ãŒã¯å士ã®æ¯èŒ
ããã§ã¯ãScalaã®äž»èŠãªãã¬ãŒã ã¯ãŒã¯ã§ããPlay FrameworkãAkkaãScalatraã®äžã€ããéçºã¹ããŒããã¹ã±ãŒã©ããªãã£ãåŠç¿æ²ç·ã®äžã€ã®èŠ³ç¹ããæ¯èŒããŸãã
éçºã¹ããŒãã®æ¯èŒ
çŸä»£ã®ãœãããŠã§ã¢éçºã«ãããŠãéçºã¹ããŒãã¯éèŠãªãã©ã¡ãŒã¿ã®äžã€ã§ããPlay Frameworkã¯èŠæš¡ã®å€§ããªWebã¢ããªã±ãŒã·ã§ã³éçºãéãé²ããããã®æ©èœãè±å¯ã«æã£ãŠããããã®ç¹ã§é«ãè©äŸ¡ãåŸãŠããŸããäžæ¹ãScalatraã¯å°èŠæš¡ãªWebãµãŒãã¹éçºã«é©ããŠããããã®è»œéãããçæéã®éçºãå¯èœãšããŠããŸããAkkaã¯ãã®ç¹æ§äžã䞊è¡åŠçãåæ£åŠçã®èŠä»¶ããããããžã§ã¯ãã«ãããŠã¯ãä»ã®ãã¬ãŒã ã¯ãŒã¯ãããæéãèŠããå ŽåããããŸãã
ã¹ã±ãŒã©ããªãã£ã®æ¯èŒ
ã¹ã±ãŒã©ããªãã£ããã¬ãŒã ã¯ãŒã¯éžæã«ãããéèŠãªèŠ³ç¹ã§ãããã®ç¹ã§ç¹ã«åªããŠããã®ãAkkaã§ããã®äžŠè¡åŠçãåæ£åŠçã®èœåã¯å€§èŠæš¡ãªã·ã¹ãã ã«å¯Ÿããã¹ã±ãŒã©ããªãã£ã確ä¿ããŸãã次ãã§Play Frameworkãé«ãã¹ã±ãŒã©ããªãã£ãæã€äžæ¹ã§ãScalatraã¯ã¹ã±ãŒã«ã¢ãããèŠãã倧èŠæš¡ãããžã§ã¯ãã«ã¯åããªãå¯èœæ§ããããŸãã
åŠç¿æ²ç·ã®æ¯èŒ
æ°ããªãã¬ãŒã ã¯ãŒã¯ãåŠã¶éã®åŠç¿æ²ç·ãéžæè¢ãçµãäžã§èæ ®ãã¹ãã§ããPlay Frameworkã¯ãã®æ©èœã®è±å¯ãããååŠè ã«ãšã£ãŠã¯åŠç¿ã«æéããããå¯èœæ§ããããŸãããäžæ¹ã§ãã®è±å¯ãªããã¥ã¡ã³ããŒã·ã§ã³ãã³ãã¥ããã£ã®æ¯æŽãåŠç¿ãæå©ãããŸããScalatraã¯ãã®ã·ã³ãã«ãããåŠç¿æ²ç·ã¯æ¯èŒçç·©ããã§ããäžæ¹ãAkkaã¯ãã®äžŠè¡åŠçãåæ£åŠçã®æŠå¿µãååŠè ã«ãšã£ãŠã¯é£è§£ã§ããå¯èœæ§ããããŸãã
2022幎ã®ææ°ã©ã³ãã³ã°
æããã®ããã°ã©ãã³ã°ããŒã ã«äŒŽããæ°å€ãã®Scalaãã¬ãŒã ã¯ãŒã¯ã䜿ãããŠããŸãããã®äžã§æãåªãããã¬ãŒã ã¯ãŒã¯ãç¥ãããã«ä»¥äžã®äžã€ã®èŠçŽ ãåºã«ã©ã³ãã³ã°ãäœæããŸããããããããŠãŒã¶ãŒã³ãã¥ããã£ã®èŠæš¡ãäž»èŠãããžã§ã¯ãã§ã®å©çšç¶æ³ãéçºå ãä¿å®äœå¶ã§ãã
ãŠãŒã¶ãŒã³ãã¥ããã£ã®èŠæš¡
ãã¬ãŒã ã¯ãŒã¯ãéžã¶éã¯ããã®ã³ãã¥ããã£ã®èŠæš¡ãèæ ®ããã¹ãç¹ã§ãã倧ããªã³ãã¥ããã£ãæã€ãã¬ãŒã ã¯ãŒã¯ã¯æ å ±ãè±å¯ã§ãå°ã£ãæã«å©ããæ±ããå Žæãå€ããšããå©ç¹ããããŸãã2022幎çŸåšãScalaãã¬ãŒã ã¯ãŒã¯ã®äžã§æãã³ãã¥ããã£ã掻çºã§ãããšèšãããŠããã®ãPlay Frameworkã§ãããã©ãŒã©ã ã質åãµã€ãã§ã¯æ¥ã ãPlay Frameworkã«é¢ããæ§ã ãªãããã¯ãèªãããŠããŸãã
äž»èŠãããžã§ã¯ãã§ã®å©çšç¶æ³
äž»èŠãããžã§ã¯ãã§ã®å©çšç¶æ³ãScalaãã¬ãŒã ã¯ãŒã¯éžã³ã«ãããŠéèŠã§ããããã¯ãçŸå Žã§ã©ã®ãã¬ãŒã ã¯ãŒã¯ãé »ç¹ã«æŽ»çšãããŠãããã瀺ããŠãããŸããäŸãã°ãçŸåšæãScalaãã¬ãŒã ã¯ãŒã¯ãçšããããŠããäž»èŠãããžã§ã¯ããšããŠããã瀟ãéçºããããã®ã·ã¹ãã ããããŸãããã®ã·ã¹ãã ã§ã¯ããããšããçç±ããAkkaã掻çšãããŠããŸãã
éçºå ãä¿å®äœå¶
ãŸãããã¬ãŒã ã¯ãŒã¯ã®éçºå ãä¿å®äœå¶ãæŽã£ãŠãããã®ãéžã³ããã§ããããé·æã«ããã£ãŠå®å®ããä¿å®äœå¶ã確ç«ãããŠãããã¬ãŒã ã¯ãŒã¯ãªãããã°ä¿®æ£ãæ©èœè¿œå ãå®æçã«è¡ããããã¬ãŒã ã¯ãŒã¯èªäœã®å質ãä¿ãããŸããScalaãã¬ãŒã ã¯ãŒã¯ã§ä¿å®äœå¶ãæŽã£ãŠãããšè©äŸ¡ãããŠããã®ãScalatraã§ããéçºå ã®äžè²«ãããµããŒããšäžçäžã®ã³ãã¥ããã£ããã®ãã£ãŒãããã¯ã«ãããScalatraã¯åžžã«é²åãç¶ããŠããŸãã
Scalaãã¬ãŒã ã¯ãŒã¯ã®ä»åŸã®å±æ
次ã«ãScalaãã¬ãŒã ã¯ãŒã¯ã®æªæ¥ãèŠæ®ããåãã¬ãŒã ã¯ãŒã¯ãã©ã®ãããªéçºæ¹éãæã£ãŠããã®ãããŸããScalaãšãã®ãã¬ãŒã ã¯ãŒã¯ãä»åŸçŽé¢ããã§ãããåé¡ç¹ã«ã€ããŠèªããŸãã
åãã¬ãŒã ã¯ãŒã¯ã®éçºããŒãããã
ãŸãã¯ãPlay Frameworkã«ã€ããŠèŠãŠãããŸããããçŸç¶ã§ã¯ãJavaãšScalaã®äž¡æ¹ãç解ããŠããããšãåæã«ããã©ã€ããŠã§ã€ããªãã¬ãŒã ã¯ãŒã¯ãšããŠãå®å®ããéçºãè¡ãªã£ãŠããŸããæªæ¥ã®ããŒãããããšããŠã¯ãããå ç¢ãªã¢ããªã±ãŒã·ã§ã³ã®èšèšãå¯èœã«ããããã®æ°æ©èœã®è¿œå ãæ¢åã®æ©èœã®æ¹åãè¡ã£ãŠãããŸãã
次ã«ãAkkaã«ã€ããŠèŠ³å¯ããŸããAkkaã¯ãäžè²«ããããã¯ãã¬ãã·ã£ãŒãéåæã®ããŒã¿ã¹ããªãŒã ãæäŸãããªã¢ã¯ãã£ãã¹ããªãŒã å®è£ ãæäŸããŠããŸãããã®éçºããŒããããã®äžéšãšããŠãããé«åºŠãªããŒã¿åææ©èœããªã¢ã«ã¿ã€ã ã®ããŒã¿ã¹ããªãŒãã³ã°åŠçæ©èœãæäŸããããã®ããŒã«ã®éçºãšæ¹è¯ãäºå®ãããŠããŸãã
æåŸã«ãScalatraã«ã€ããŠèªããŸããScalatraã¯ã·ã³ãã«ããšè»œéæ§ãéèŠããŠèšèšãããŠããŸãããå°æ¥çã«ã¯ããå€æ©èœåãå³ããè€éãªéçºããŒãºã«å¯Ÿå¿ã§ããããéçºãé²ããŠè¡ãããšãäºå®ããŠããŸãã
Scalaãšãã®ãã¬ãŒã ã¯ãŒã¯ãè¿ãã課é¡
ããããã®ãã¬ãŒã ã¯ãŒã¯ãæã£ãŠããæ確ãªããžã§ã³ãšãšãã«ãScalaãšãã®ãã¬ãŒã ã¯ãŒã¯ãçŽé¢ããã§ããã課é¡ãèŠéã«å ¥ããŠããå¿ èŠããããŸãã
äžã€ç®ã®èª²é¡ã¯ãScalaèªäœã®è€éãã§ããScalaã¯æ©èœãè±å¯ã§åŒ·åãªäžæ¹ã§ããã®è€éãã«ãããååŠè ãåŠã³ãããèšèªãšã¯èšããªãããšãå€ãææãããŠããŸãã
äºã€ç®ã®èª²é¡ã¯ãScalaãã¬ãŒã ã¯ãŒã¯ã®éçºã»éçšã«å¿ èŠãšãªãç¥èãšã¹ãã«ã«ã€ããŠã§ãããããã®ãã¬ãŒã ã¯ãŒã¯ãæ倧éã«æŽ»çšããããã«ã¯ãåãã¬ãŒã ã¯ãŒã¯ã®ã¢ãã«ãèšèšææ³ãç解ããããã«åºã¥ãã¢ããªã±ãŒã·ã§ã³èšèšãèŠæ±ãããŸãã
äžã€ç®ã®èª²é¡ãšããŠã¯ããããã®Scalaãã¬ãŒã ã¯ãŒã¯ãä»ã®äžè¬çãªãã¬ãŒã ã¯ãŒã¯ãšæ¯èŒããŠåžå Žã·ã§ã¢ãå°ããããšãæããããŸãããã®ãããã³ãã¥ããã£ãµããŒããããã¥ã¡ã³ããŒã·ã§ã³ã®è³ªã«èª²é¡ãæ®ã£ãŠããŸãã
以äžã®èª²é¡ãå æããã°ãScalaãšãã®ãã¬ãŒã ã¯ãŒã¯ã¯ä»åŸãåçš®ãããžã§ã¯ãã§æåãªéžæè¢ãšãªã£ãŠããã§ãããã
Scalaãã¬ãŒã ã¯ãŒã¯ãéžã¶ãã€ã³ã
Scalaãã¬ãŒã ã¯ãŒã¯ã®éžæã¯ã決ããŠã©ã³ãã ãªãã®ã§ã¯ãããŸãããããã¯éåžžã«ç¹çŽ°ãªæ±ºå®ã§ãããŸããŸãªèŠå ãèæ ®ãããŸãããã¬ãŒã ã¯ãŒã¯ã®éžæã¯ãããžã§ã¯ãã®æåã«å€§ãã圱é¿ãããããæ éã«èããå¿ èŠããããŸãã
ãããžã§ã¯ãã®ç®çãèŠæš¡ã«ããéžæ
ãã¬ãŒã ã¯ãŒã¯ã®éžæã¯ããããžã§ã¯ãã®ç®çãšèŠæš¡ã«å€§ããå·Šå³ãããŸããäŸãã°ãå°èŠæš¡ãªWebã¢ããªã±ãŒã·ã§ã³ãéçºããå Žåãã·ã³ãã«ãªæ§æãç¹é·ã®Scalatraãé©ããŠããŸããäžæ¹ã倧èŠæš¡ãªãšã³ã¿ãŒãã©ã€ãºã¬ãã«ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã¬ãã·ãã«ãªèšå®ãšåŒ·åãªäžŠè¡åŠçãå¯èœãªPlay FrameworkãAkkaã®ãããªãã¬ãŒã ã¯ãŒã¯ãé©ããŠããŸãã
éçºããŒã ã®ã¹ãã«ã»ããã«ããéžæ
ããäžã€ã®éèŠãªãã€ã³ãã¯éçºããŒã ã®ã¹ãã«ã»ããã§ããããŒã ã¡ã³ããŒãScalaãšãã®ãã¬ãŒã ã¯ãŒã¯ã«ç²ŸéããŠããã°ãéçºã¯ã¹ã ãŒãºã«é²ãã§ããããããããããŒã ãScalaã®çµéšãå°ãªãå ŽåãåŠç¿æ²ç·ãæ¥ãªãã¬ãŒã ã¯ãŒã¯ãéžæãããšãéçºãé£èªããå¯èœæ§ããããŸãããã®ãããªå Žåã¯ãåŠç¿æ²ç·ã®ç·©ãããªãã¬ãŒã ã¯ãŒã¯ãéžæããããå¿ èŠãªã¹ãã«ã»ãããæã£ãæ°ã¡ã³ããŒãåéããããæ€èšããã¹ãã§ãã
ãŸãšã
ãã®èšäºã§ã¯ããŸããŸãªScalaãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠè©³ãã説æããŸãããããããã«ã¯ãç¹åŸŽãšå©ç¹ããããŠåãã¬ãŒã ã¯ãŒã¯ãã©ã®ãããªéçºç¶æ³ã䜿çšã·ãŒã³ã«é©ããŠããã®ããæ確ã«ãªã£ãŠããããšã§ãããã
Play Frameworkã¯ãã®éçºã¹ããŒããšæè»æ§ããããã ãã¶ãã«ã¹ã±ãŒã«ãã倧èŠæš¡ãªWebãµãŒãã¹ã®éçºã«é©ããŠããŸããäžæ¹ã§Akkaã¯ãã®äžŠè¡åŠçãžã®åŒ·åãªå¯Ÿå¿æ©èœãããéåæåŠçãåæ£ã·ã¹ãã ã®éçºã«éåžžã«åªããŠããŸãã
ãŸããã·ã³ãã«ã§ç°¡æœãªScalatraã¯APIéçºãå°èŠæš¡ãªWebãµãŒãã¹ã®éçºã«åããŠããŸããã©ã®ãã¬ãŒã ã¯ãŒã¯ãéžæãããã¯ãäœãéèŠãããããŸããããžã§ã¯ãã®èŠä»¶ãéçºããŒã ã®ã¹ãã«ã»ããã倧ãã圱é¿ãäžããã§ãããã
2010幎代ãããã®äººæ°ãäžåã®ãã®ãšããŠããScalaã§ãããåŒãç¶ããã®éçºãšã³ã·ã¹ãã ã¯æŽ»çºã«é²åãç¶ããŠããŸãããããããScalaãã¬ãŒã ã¯ãŒã¯ã®ååã«æ³šæãæãç¶ããŠãããŸãããã