
Scalaããã°ã©ãã³ã°èšèªã¯ãJavaãšCïŒã®ãå ±çãã§ãã ããã¯ãOOPãšæ©èœçã¢ãããŒããçµã¿åãããæåã®èšèªã§ã¯ãããŸããããJavaã®é床ãäœäžãããšãã«å¢ããå¢ãå§ããŸããã ããã«ãScalaã®äœæè ã¯ãèšèªãJVMä»®æ³ãã·ã³ã§åäœãããJavaã©ã€ãã©ãªãžã®ã¢ã¯ã»ã¹ãæäŸããããšã決å®ããŸããã
Martin Oderskyã¯ãããã°ã©ãã³ã°æè¡ã®EPFLç 究æã§2000幎代åé ã«Scalaã®éçºãéå§ããŸããã 圌ã¯ä»¥åãGeneric Javaããã³Sunã®Javaã³ã³ãã€ã©ã®éçºã«åŸäºããŠããŸããã
Scalaã®å éšãªãªãŒã¹ã¯2003幎ã«ç»å ŽããŸããã æåã®ãããªãã¯ãªãªãŒã¹ã¯ãJavaãã©ãããã©ãŒã ã§2004幎åãã«ãªãªãŒã¹ãããå幎6æã«.NET Frameworkã§ãªãªãŒã¹ãããŸããïŒ2012幎以éããã®ãã©ãããã©ãŒã ã¯ãµããŒããããŠããŸããïŒã Scala 2.0ã¯2006幎ã«ãªãªãŒã¹ãããŸããã ãã®ã³ã³ãã€ã©ãšã©ã€ãã©ãªã¯ãBSDã©ã€ã»ã³ã¹ã®äžã§é åžãããŠããŸãã
BSDïŒBerkeley Software Distributionã©ã€ã»ã³ã¹ïŒã¯ãUNIXã©ã€ã¯ãªBSDãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®é åžã«æåã«äœ¿çšãããã©ã€ã»ã³ã¹å¥çŽã§ãã2011幎1æ17æ¥ã«ãèšèªéçºããŒã ã¯5幎éã®ç 究å©æéãç²åŸããŸããã 欧å·ç 究è©è°äŒã¯çŽ230äžãŠãŒããå²ãåœãŠãŸããã 2011幎5æãOderskyçããScalaã³ãã¥ããã£ã®ã¡ã³ããŒãTypesafe Inc.ãèšç«ããŸããã ïŒ2016幎2æã«Lightbend Inc.ã«æ¹åïŒã äœæãããäŒç€Ÿã¯ãéçºè ã«è²¡æ¿æ¯æŽãæäŸããScalaã®ãµãŒãã¹ãäœæããããšã«ãªã£ãŠããã ã¿ã€ãã»ãŒãã¯ãScalaã©ã€ãã©ãªã§ç²åŸããããšã«ãªã£ãŠããŸãã 2011幎ãå瀟ã¯Greylock Partnersãã300äžãã«ã®æè³ãåããŸããã

Martin Odersky-Scalaã®äœæè
ããã³ãããã®äžããšã¯
Scalaèšèªã¯ãéçåä»ãããªããžã§ã¯ãæåã®æ©èœçã¢ãããŒããšãã3ã€ã®ããšãçµã¿åãããŠããŸãã ãã§ã«è¿°ã¹ãããã«ãScalaã¯Javaä»®æ³ãã·ã³ã§å®è¡ãããŸãã ãã®èšèªãšJavaã®äºææ§ïŒãèªç±æ··åãïŒã«ãããScalaã§Androidã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã ããã«ãJavaScriptã§ã³ã³ãã€ã«ã§ãããããScalaã§Webã¢ããªã±ãŒã·ã§ã³ãéçºã§ããŸãã
ãã®èšèªãšJavaã®é¡äŒŒç¹ã芪æé¢ä¿ã«ãããããããScalaã®ç»å Žãã10幎éã圌ã®ãå ãã¯ãªããžã§ã¯ãæåã®ãã©ãã€ã ã«å¿ å®ã§ããã ãããŠã2014幎ã«ãªã£ãŠåããŠãJava 8ã«ã¯æ©èœçãªã¢ãããŒãã®èŠçŽ ã§ããã©ã ãåŒãå«ãŸããŸããã
äžèšã®JavaãšCïŒã«å ããŠãScalaã¯ä»ã®èšèªãšãã¯ãããžãŒã®åœ±é¿ãåããŸããã ããããã£ã®è¡šçŸæ¹æ³ã¯ãäž»ã«SatherããåçšãããŠããŸãã çµ±åãªããžã§ã¯ãã¢ãã«ã®æŠå¿µã¯ãSmalltalkãã移è¡ãããŸããã ããŒã¿ã¯ãã¯ã©ã¹ãå«ããã¹ãŠãäžåã«ãã¹ããããšããã¢ã€ãã¢ãå ±æããŸããã Scalaã®æœè±¡åã¯ãSMLããã³OCamlã®æœè±¡çœ²ååã«äŒŒãŠãããæ¬æ Œçãªã³ã³ããŒãã³ãã®ã³ã³ããã¹ãã§äžè¬åãããŠããŸãã
ããã«ãScalaã¯SchemeãStandard MLãHaskellãªã©ã®é¢æ°åèšèªã®æ©èœãæ¡çšããŸããã
察象èªè
Scalaã®å©ç¹ã¯ãTwitterãLinkedInãFoursquareãNovellãSiemensãGridGainãªã©ã®å€ãã®å€§äŒæ¥ã«é«ãè©äŸ¡ãããŸããã ãã ããåŠçã§ã¯ããã®èšèªã¯ãŸã äžè¬çã§ãã
èšäºã®ãŠãŒã¶ãŒ@platoffã¯ãèšèªã®å¯Ÿè±¡èªè ã«ã€ããŠååã«è©³çŽ°ã«æèŠãè¿°ã¹ãŸããã
Scalaãæªçµéšã®è¥è ãåŒãä»ããçç±ãå®å šã«ç解ããŠããŸãïŒãããŠåœŒå¥³ã¯åºæ¬çã«Scalaãæãã§ããŸãïŒïŒ
â¢ãšãªãŒã䞻矩ã®ãããŒïŒå®éãæãè ã¯Scalaã§æžããªããªã©ãæãè³¢ã人ã¯Scalaã§é²æ©ãéããŸããScalaã§æžãã°ãããªãã¯è³¢ããªããŸãã ãããããã°ã©ãã³ã°ã¯å€§åŠã§ã®å匷ã§ã¯ãããŸãããããªãã¯ããããè³¢ããããã°ã©ããŒã§ã¯ãªããããªãã決ããã®ã¯é£ãããªããŸãã
â¢è€éãïŒããããScalaã®ãã¡ã³ãã¢ããã¥ã¢ã®å€ãã¯ãè€éããæ¹ãã€ããŠãããã®ãèªèããŠããããæ確ã«ããããšãã§ããŸããã ç¡æèã®ãã¡ã«ã誰ããè€éã==ãã¯ãŒãèããã ããé£ããããã匷åã«å ¥åããŠãã ããã
éåžžã«é£ããã¿ã¹ã¯ã¯ãè€éãªãœãªã¥ãŒã·ã§ã³ãåå©çšããããšã§ç°¡åã«è§£æ±ºã§ããŸãã ç§ãã¡ã®å Žåãã³ã³ãã€ã©ã¯å¯èœãªéãè€éã«ãããœãªã¥ãŒã·ã§ã³ãç°¡çŽ åããå¿ èŠããããŸãã Scalaã³ã³ãã€ã©ãŒã¯ç¢ºãã«è€éã§ãããåé¡ããããŸã-ãã®è€éããè¡šçŸããèšèªã§ãã ãã®ãããªèšèªã䜿çšããããšã¯ãã¡ããã¡ãé£ããã§ãã
Xitrum Scala Webãã¬ãŒã ã¯ãŒã¯ã®äœæè ã§ããNgoc Daoã¯ãæ©èœçã¢ãããŒãã®èŠ³ç¹ããç¶æ³ãæ€èšããŠããŸãã
åºæ¬çã«æ©èœçãªã¢ãããŒããšããã°ãScalaãäœã§ãããHaskellã¯éåžžæãæµ®ãã³ãŸãã ãã ããå®çšçãªèŠ³ç¹ããæšè«ãããšãErlangãåŠç¿ããæ¹ãé©åã§ãã FacebookãWhatsAppã®è³Œå ¥ã«190åãã«ãè²»ãããã®ã¯åœç¶ã®ããšã§ãã
Erlangã¯ãScalaããã匷åãªæ©èœçã¢ãããŒãã«ããªãã®èããã·ããããŸãã ããã«ãErlangã¯ã¯ããã«ç°¡åãã€è¿ éã«åŠç¿ã§ããŸãã 1é±éã§ç¿åŸã§ããæéãç¯çŽã§ããŸãã
ãããã£ãŠãScalaã®æ±çšæ§ã«é¢ããæèŠã¯æççã§ãã2ã€ã1.5ããããŸãããæ©èœçãªãã©ãã€ã ã¯å®è£ ã容æã§ã¯ãªããããªããžã§ã¯ãæåãã®èŠ³ç¹ãããè€éãããŸãã
ãã ããJavaéçºè ã®ããã¯ã°ã©ãŠã³ãã§ãã®èšèªã«ãåãæ¿ãããã°ãé£æ床ã¯äœããªããŸãã
æ Œä»ããšææ°
2016幎10æã®TIOBEã€ã³ããã¯ã¹ã¯ ãJavaãæãäžè¬çãªããã°ã©ãã³ã°èšèªã§ããããšã瀺ããŠããŸãã 圌ã¯15幎é£ç¶ã§èªä¿¡ã®ãããªãŒããŒã§ããã2001幎ã«ã®ã¿2äœã«ãªããŸããã

ãã®ã©ã³ãã³ã°ã§ã¯ãJavaãšScalaã®éã«å€§ããªã®ã£ããããããŸãã ãã ããåŸè ã¯ã33ã®å Žæã«ããèšèªLuaãFortranãLispãTransact-SQLãAdaãããã³FïŒãããå£ã£ãŠããŸãã ãã ãã50äœã®ã©ã³ãã³ã°ã§ãããScalaã¯æ©èœè«çèšèªHaskellããã³Prologueããã€ãã¹ããããšãã§ããŸããã

å¥ã®è©äŸ¡ã§ã¯ãScalaã¯ããã»ã©æªããããŸããã 2016幎㮠IEEE Spectrumã«ãããšã 15äœã§ãã JavaããªãŒããŒã§ãããä»åã¯åèªãã2äœã«ãªããŸããã è©äŸ¡ã®èµ·èè ã¯ã圌ããæã£ãŠããScalaã®ç¯å²ã¯Webããã³ã¢ãã€ã«éçºã®ã¿ã«éå®ãããŠããããšã瀺ããŠããŸãã PCéçºã¯èæ ®ãããŸããã 圌ãã¯Javaã3ã€ã®ãã©ãããã©ãŒã ãã¹ãŠã®éçºèšèªãšããŠèªèããŠããŸãã

2016幎ã®åãã«è¡ãããGithubã®èª¿æ»ã«ãããš ãScalaã®ããã©ãŒãã³ã¹ã¯ããã«åäžããŠãããã©ã³ãã³ã°ã¯11äœã§ãã Javaãåã³ã©ã³ãã³ã°ã®ãããã«ãªããŸãã ããã«ãããã§ã¯CïŒãã倧ããªããŒãžã³ããããŸãã

ç 究è ã¯ãããã°ã©ãã³ã°èšèªã«å¯Ÿããæºè¶³åºŠã®ææšãèšç®ããŸããã ç¹å®ã®èšèªã䜿çšããããã°ã©ããŒãåãèšèªã§æ¬¡ã®ãããžã§ã¯ããäœæããããã©ããã瀺ããŸãã

æåã®ã°ã«ãŒãã«ã¯ããçæ³çãªèšèªãã®ã¿ã€ãã«ãå ±æããSwiftãšScalaããããŸãã Goã®ããªãé«ãè©äŸ¡ã«æ³šæããããšãã§ããŸãã Javaã¯ããã§ã¯4è¡ç®ã®ã¿ã䜿çšããŸãã ããã¯ãScalaããã®èŠªsã§ããCïŒãšJavaãåé¿ã§ããæåã®ææšã§ãã
èŠèŸŒã¿
Baruk Sadogursky-JFrogã®éçºè æ¯æè ã¯ãScalaã®å°æ¥ã«ã€ããŠãã§ã«æèŠãè¿°ã¹ãŠããŸãã
Scalaã§èµ·ãã£ãŠããããšã¯ãç§ã«ãšã£ãŠå°ãæãã§ããããã¯ãScalaã«é¢é£ããã©ã€ãã©ãªããåçãåŸãããšããTypeSafeãªã©ãããããé ãããåŸåãããããã§ãã å°ãåã«ãTypeSafeã¯ãJavaã®éçºã®å€§éšåãå®éã«ãéã®ããå Žæã§ãããããScalaã®Javaã®ã¯ããã«å€§ããªåŒ·èª¿ããé¢ããããšãçºè¡šãããŸããã ãããã£ãŠã圌ãã¯ä»¥åã¯æã£ãŠããªãã£ãããã€ãã®Javaã€ã³ã¿ãŒãã§ãŒã¹ããã«ã¢ããããŠããå€ãã®æ°ãã人ã ãéããŸããã
ãŸããéåžžã«Scalaæåã®ãã®ä»ã®ã©ã€ãã©ãªããããŸãã ããšãã°ãSparkã¯ãæ°ãããªãªãŒã¹ã§Java APIãScalaã¬ãã«ã«åŒãäžããããŠãããScala APIãããæªããªãã«ããŠããScala APIãããããã«æªåããªãããã§ãã ã°ããŒãã«ãªç¶æ³ã§ã¯ãJavaãžã®å転ãèŠããããšæããŸãã
ãŸããã¢ã«ãããã¯èšèªãšããŠã®Scalaã¯éåžžã«çŽ æŽãããäœæç©ã§ãããããããã«ã¯ãŸã£ããé©ããŸããã匷åã§ãããšåæã«éåžžã«è€éãªããŒã«ã§ã¯ãªããScalaã®åã·ã¹ãã ãç解ãããããéèŠãªããšããããŸãã
ã ãããããç§ã¯Scalaã®å€§ãã¡ã³ã§ã¯ãªãã®ã§ãScalaãé¢ããåŸåã¯ç§ãé©ãããŸããã 確ãã«Scalaã¯ã©ãã«ãè¡ãããéçºãç¶ããŸãããã¯ããã«ããããªåœ¢åŒã§ãã
CentralAppã®ãªãŒãããã¯ãšã³ããšã³ãžãã¢ã§ããAshesh Ambastaã¯ããã£ãšæ¥œèŠ³çã«èŠãŠããŸãã
Scalaã«ã¯ãŸã è¯ãèŠæ¹ããããšæããŸãã å€ãã®å€§äŒæ¥ããããéžãã ã®ãäžæè°ã§ã¯ãããŸããã OOPãšFIãçµã¿åããããã¹ã¯å±éºã«æãããã¥ãŒãªã¿ã³ãæ··ä¹±ãããå¯èœæ§ããããšããäºå®ã«ãããããããæ éã«äœ¿çšãããšScalaã§ã®ããã°ã©ãã³ã°ã¯æ¥œãããã®ã«ãªããŸãã
Scalaã¯ä»ã®ããã°ã©ãã³ã°èšèªãããç¿åŸããã®ãé£ããããšã«åæããŸããã ãã¡ãããç°ãªããã©ãã€ã ã§åæã«èããå¿ èŠæ§ã«é¢é£ããç¹å®ã®ãéå£ãããããŸãã ã»ãšãã©ã®ãã©ãŒã©ã ã§ã¯ããã®èšèªã¯äœããã®çç±ã§é¢æ°åããã°ã©ãã³ã°ã®æèã§è°è«ãããŠããŸãã
ãScalaã¯å€§èŠæš¡ãªã·ã¹ãã ã«é©ããŠãããTwitterãããé©ããŠããããªã©ã®ããšãããèããããšããããŸãã ãããããã®ããã ãã«äœæããããšä¿¡ããã®ã¯ééãã§ãã Scalaã§MVPïŒMinimum Viable ProductïŒãå®è£ ããããšã¯ãä»ã®èšèªãããé£ãããšã¯æããŸããã
ç§ã¯ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã«ç¹ã«ç±å¿ã§ã¯ãããŸããã§ããã ç§ã¯ã¢ãŒã©ã³ã«äŒã£ãã®ã§ã圌ã«ã¯æ»ã£ãŠããŸããã 次ã«ãæ°ããäŒç€Ÿã®ããã¯ãšã³ãéçºã«Scalaãéžæããè¯å®çãªãã£ãŒãããã¯ãåãåããŸããã ããã¯ãç§ãæ£ããéžæããããšããèªä¿¡ãäžããŸããã
ã©ãã«å匷ã«è¡ããŸããïŒ

å°éåéãå€ããããšãèããŠãã人ããããã°ã©ããŒãšããŠã®ãã£ãªã¢ãå§ããããšããŠãã人ã®ããã«ã Toasterããããã€ãã®ã³ã¡ã³ããããŸãã
ãã«ã¢ã¿ãª ïŒ
ç§ã¯é·å¹ŽPHPã§æžããŠããŸããããããããããŠããŸãã ä»ãç§ã¯Scalaéçºè ãšããŠåèšç·ŽããŠããŸãã ãã¹ãŠãé 調ã«é²ãã§ããéãèšèªã¯çŽ æŽãããã§ãã ããã«ãJavaã©ã€ãã©ãªãŒãšã®äºææ§ã
ããããä»æ¥ã¯hh.ruã«è¡ãã奜å¥å¿ããJava / Scalaéçºè ã®ç©ºåžæ°ã調ã¹ãŸããã Scala-47ãJava-705ããã®åŸãå°ãèããŸããã ãããããã®èšèªã§ä»äºãèŠã€ããããšããã§ããŸããïŒ çŸåšãScalaãäž»èŠèšèªãšããŠåŠç¿ããèŠèŸŒã¿ã¯ãããŸããã ãã®ãããªåã®æè³ã®èŠéãã¯ãããŸããïŒ ãããšãåã«Javaã§ããïŒ
jkotkot ïŒ
Javaã®ç¥èããªããã°Scalaéçºè ã¯å¿ èŠãããŸããã ããŸããŸãªãªãŒãã³ãœãŒã¹Javaã©ã€ãã©ãªãã©ã®ããã«é 眮ããæ©èœããããç解ããŠããªããšããã®åéã§å¿ èŠãªå°é家ã«ãªãããšã¯ã§ããŸããã
ã¢ãã³ ïŒ
ãã·ã¢ã«ãšã£ãŠãä»åŸæ°å¹Žéã®Scalaã¯æ»ãã åžå Žã§ãããå€åœã®ããªãŒã©ã³ã¹ãŸãã¯æµ·å€ã®æ±äººã調ã¹ãå¿ èŠããããŸãã
ã°ãªã³ãã« ïŒ
ãªãããªãã¯ãããªã«æã£ãŠããŸããïŒ Scalaéçºè ã¯Javaã®äœåãå°ãªãã®ã§ãåæ£ã¯ãã®ãããªãã®ã§ãã æ確ã«èŠæ±ãããŸãã ããšãã°ãTinkoff Bankã¯Scalaã䜿çšããŠããŸãã
mrRontgen ïŒ
hhã«100,500ã®ç©ºåžããªãããšã¯ããããã¯ã®çç±ã§ã¯ãããŸããã èšèªã¯è¥ãã§ãããéåžžã«æ¥éã«å¢ããå¢ããŠããŸãã ç§ã®ç¥ãéããHuaweiã¯ãã·ã¢ã§ïŒOracle補åã§ã¯ãªãïŒScalaã®çµ±åãœãªã¥ãŒã·ã§ã³ãèŠå§ããŠããŸãã ãããªã«æªããªãã
OderskyãšäŒç€Ÿã«ã¯ãéåžžã«å€§ããªèŠéããšéå¿ããããŸãã ã ãããç§ã®æèŠã§ã¯ãScalaïŒãŸãã¯ãã®ãã¢ããããŒããïŒã¯äŸç¶ãšããŠããã°ã©ããŒãé©ãããã§ãããïŒ