ã¢ãŒã©ã³ã¯ç©è°ãããããŠãã-é åºãªæ¯æè ãšå³ããæ¹è©å®¶ã®äž¡æ¹ãããã ãã ããéçºã§äœ¿çšãã人ã¯ã»ãšãã©ããŸããã ãã®ãããèªåã®äœ¿çšçµéšã«åºã¥ããŠãã®èšèªã称è³ãããscã£ããããå°é家ã¯ã»ãšãã©ããŸããã
Wargaming Erlangã¯3幎以äžäœ¿çšãããŠããŸãã çŽ12人ã®éçºè ãšãéãè² è·ã®äžã§åäœããããã€ãã®ãããžã§ã¯ãããããŸãã ãã®èšäºã§ã¯ãErlangã®çµéšãšããžã§ã³ãå ±æããŸãã
ããããã¹ãŠå§ãŸã£ãæ¹æ³
Wargamingã¯ãããŸããŸãªãµãŒãã¹ãHTTPãããã³ã«ãšAMQPã®äž¡æ¹ã§çžäºäœçšãããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã䜿çšããŸãã ãã®ããã RabbitMQãµãŒããŒãç©æ¥µçã«äœ¿çšãããŠããŸãã RabbitMQã§ãã¹ãŠãå§ãŸã£ããšèšããŸãã ããã°ã©ããŒã¯ãŸã Erlangã«ã€ããŠç¥ããŸããã§ããããã¢ãŒããã¯ããšDevOpsã¯ãã§ã«çµéšãç©ãã§ãããRabbitMQãã©ããã«èœã¡ãã®ãããã®ãã°ãšã¯ã©ãã·ã¥ãã³ãããäœãæœåºã§ããã®ããçªãæ¢ããŸããã ãããŠããããèœã¡ãªãããã«äœãããå¿ èŠãããã:)
åœæã®ã¢ãŒããã¯ãã¯é·ãéErlangã«åæ ããŠããããããã«ã¯ååãªçç±ããããŸã§éçºèšèªãšããŠå®è£ ããªãã£ããšèšããããåŸãªãã
ã²ãŒã ããžãã¯ãPythonã§èšè¿°ãããŠããBig Worldãšã³ãžã³ã§ã²ãŒã ãµãŒããŒãå®è¡ããããšã¯ç§å¯ã§ã¯ãããŸããïŒPythonã¯çŸåšãäŒç€Ÿã®äž»èŠãªéçºèšèªã§ãïŒã åœåãã²ãŒã å ãã£ããã¯ãããã®ãµãŒããŒãä»ããŠæ©èœããŠããŸããã ããããããæç¹ã§ãµãŒããŒãªãœãŒã¹ïŒæ¢ã«äžè¶³ããŠããïŒããã£ããã«è²»ããããšã¯äžå¯èœã§ããã
Chat World of Tanksã¯ã²ãŒã ãšå¯æ¥ã«é¢é£ããŠãããå€ãã®ç¹å®ã®æ©èœããµããŒãããŠããŸãã ãããã£ãŠã圌ã¯åœŒèªèº«ã®æ±ºå®ãå¿ èŠãšããŠããŸããã ãã¡ããã1ã€ã®ãµãŒããŒãæ¢åã®è² è·ããã³èšç»ãããŠããå°æ¥ã®è² è·ã«åãããŠã¹ã±ãŒãªã³ã°ã§ããªããããã¯ã©ã¹ã¿åããå¿ èŠããããŸããã Erlangããã®ãããªãããžã§ã¯ãã«éžã°ããã®ã¯è«ççã§ãã ãã®åŸãæåã®Erlangéçºè ãäŒç€Ÿã«æ¥ãŸããã
ã©ãã ã£ã
ã²ãŒã ãµãŒããŒã«å ããŠãå€ãã®WebãµãŒãã¹ïŒãã¬ãŒã€ãŒã®ç»é²ãšæ¿èªãæ¯æããªã©ïŒããããŸãã åœåã¯ããã¹ãŠPython / Djangoã§èšè¿°ãããŠããŸããããWebäžã®ãã¬ã€ã€ãŒã®æ°ãæ¥éã«å¢å ããçµæãåé¡ãçºçããŸããã
ããããTwistedã䜿ãå§ããŸããã ããããéçºè ãšã¢ãŒããã¯ãã®äž¡æ¹ãè€éããããšèããŠããããã®éçºã¯é«ãããŸããã ã¢ãŒããã¯ãã¯ä»£ããã«Erlangã䜿çšããããšãææ¡ããŸãããã管çè ã¯ååãªErlangéçºè ãã©ãã«çœ®ãã¹ããã«ã€ããŠåççãªç念ãæ±ããŠããŸããã
äžæ¹ãErlangã§æžããããããã¿ã€ãã¯ãã³ãããŒã¯ã§è¯å¥œã«æ©èœããŸããããTwistedã¯å·ã€ãç¶ããŸããã ãããŠãã¢ãŒããã¯ãã¯ãããã¿ã€ããè¶ ããŠãErlangã§1ã€ã®å°ããªWebãµãŒãã¹ãäœæããŠéå§ããŸããã ãã建ç¯å®¶ã®åªåã«ãã£ãŠæ°é±éã§æžãããæåããããšãå€æããŸããã 次ã«ã2çªç®ã®ãããžã§ã¯ãã3çªç®ã®ãããžã§ã¯ãããããŸããã å瀟ã¯Erlangéçºè ã®æ€çŽ¢ãéå§ããPythonéçºè ã¯æ°ããèšèªãç°¡åã«ç¿åŸããŸããïŒTwistedãæŽçãããããç°¡åãªèšèªããããŸããïŒã
ä»æ¥ãå瀟ã«ã¯Erlangéçºè ãšåŒã°ããããšãã§ãã12人ã®éçºè ãããŸãã圌ãã¯Erlangã§ã»ãšãã©ã®ã³ãŒãïŒãŸãã¯ãã¹ãŠïŒãæžããŸãã ãããã®ããã€ãã¯ãæ°å¹ŽåããErlangã§æžããŠããŸãããä»ã®ãã®ã¯Pythonããåãæ¿ããã°ããã§ãã
ç§ãã¡ã¯ãŠã§ãäžã§å€ãã®ä»äºãããŠããŸãã WargamingããªãªãŒã¹ããã²ãŒã ã®æ°ã¯å¢ãç¶ããŠããŸãã ç¹æ®ãªïŒç¹å®ã®ã²ãŒã çšã®ïŒãµãŒãã¹ãããŠãããŒãµã«ãµãŒãã¹ã«ç§»è¡ããŠããŸãã æ°ãããããžã§ã¯ããéå§ãããŠããããã®å€ãã¯Erlangã§æžãããŠããŸãã æ¬ å¡ã§ã¯ãPythonéçºè ïŒåœç€Ÿã®äž»èŠãªããã°ã©ãã³ã°èšèªïŒãé »ç¹ã«æ¢ããŸãããErlangã®ç¥èãããã°ãã©ã¹ã«ãªãããšãè¿°ã¹ãŠããŸã:)
ãã®çµæã匷åãªErlangéçºè ã®ããŒã ãç·šæããããšãã§ããŸããã ãã®äžã«ã¯ãããšãã°ãã»ã«ã²ã€ããããããããããã®ãããã¯ã¢ãŒã©ã³/ OTPããŒã ã«åãå ¥ããããŸããã ãããã£ãŠãErlangä»®æ³ãã·ã³ã«ã¯Sergeyã³ãŒããããã€ããããŸãã
éçºè ã®æèŠ
瀟å ã§ããŸããŸãªçµéšãæã€å€ãã®Erlangéçºè ããããããErlangã«ã€ããŠå¹ åºãæèŠãéããããšãã§ããŸããã çµéšè±å¯ãªéçºè ãšåå¿è ã®éçºè ãšã®éã®èšèªèªèã®éãã«æ³šç®ããããšã¯èå³æ·±ãã§ãã
çµéšè ã¯äžè¬çã«ã¢ãŒã©ã³ãååãã«èããŠããŸãã ãããŠãããã¯é©ãã¹ãããšã§ã¯ãããŸããããããªããã°ã圌ãã¯ããã«ã€ããŠäœå¹Žãæžããªãã£ãã§ãããããçµéšããããšããªãã£ãã ãã:) 圌ãã¯ããå€ãã®æ¹å€ãšäžæºãæã£ãŠããŸãã Pythonãšæ¯èŒããŠãErlangã¯ã©ã€ãã©ãªã®è¡šçŸåãã€ã³ãã©ã¹ãã©ã¯ãã£ãããã³è±å¯ãã®ç¹ã§èããå£ã£ãŠããããããããé©ãããšã§ã¯ãããŸããã
ãã¹ãŠã®éçºè ãåæããäžè¬çãªãã€ã³ãããå§ããŸãããã
- Erlangã¯ã1ç§ãããã®ãªã¯ãšã¹ãæ°ã§æž¬å®ãããšãåªããWebããã©ãŒãã³ã¹ã瀺ããŠããŸãã Pythonã§åæ§ã®ããã©ãŒãã³ã¹ãéæããã«ã¯ãããé·ããããé£ãããããé«äŸ¡ã§ãã
- Erlangã¯é«åºŠã«å°éåãããèšèªã§ãã åé¡ã解決ããããšããªãã§ãã ããã
é·æErlangãäžè¬çãªæèŠïŒ
- 䜿ããããåªãããã«ãã¹ã¬ããã¢ãã«ã ã¢ã¯ã¿ãŒã¢ãã«ãšéåææ§ã«ãããå¹ççãªãã«ãã¹ã¬ããã³ãŒããç°¡åã«èšè¿°ã§ããŸãã
- ããŒãããããããžã§ã¯ããæšæºããã³ãã³ãã¬ãŒãã§20幎以äžäœ¿çšãããOTPãã¬ãŒã ã¯ãŒã¯ã«çµã¿èŸŒãŸããŠããŸãã ãããã䜿çšãããšãè€éã§ã¯ãããå®å®ããä¿¡é Œæ§ã®é«ãã·ã¹ãã ãç°¡åã«æ§ç¯ã§ããŸãã
- Erlangã¯å©çšå¯èœãªãã¹ãŠã®ã«ãŒãã«ã䜿çšã§ããŸãã ã³ã¢ããšã«åå¥ã®ãµãŒãã¹ã€ã³ã¹ã¿ã³ã¹ãå®è¡ããå¿ èŠã¯ãããŸããã
- äœãšã³ããªãŒãããå€ã ãã®èšèªã¯ç°¡åã§ãããã«ç¿åŸã§ããŸãïŒãã ãã以äžã«èª¬æããèœãšãç©Žãããã€ããããŸãïŒã
åå¿è éçºè ã«èŠãããé·æïŒ
- éãããšã³ã·ã¹ãã ã§ãããã®ãããžã§ã¯ãã«ã¯ãå€ã®äžçããã®äœãã¯å¿ èŠãããŸããã
- å€éšã®ã¡ã¢ãªå ã¹ãã¬ãŒãžïŒRedisãmemcachedïŒã¯å¿ èŠãããŸããããµãŒãã¹ã®RAMã«ãã£ãã·ã¥ãçŽæ¥ä¿æã§ããŸãã
- å€éšã¹ãŒããŒãã€ã¶ãŒã®äžã§ãç¬èªã®æ§æã§åã³ã¢ã®è€æ°ã®ãµãŒãã¹ã€ã³ã¹ã¿ã³ã¹ãå®è¡ããå¿ èŠã¯ãããŸããã 1ã€ã®ãµãŒãã¹ã§ãã¹ãŠã®ã³ã¢ã䜿çšã§ããç¬èªã®æè»ãªã¹ãŒããŒãã€ã¶ãŒã·ã¹ãã ããããŸãã
- å°ãªããµãŒãã¹ã€ã³ã¹ã¿ã³ã¹â HTTPãŸãã¯AMQPãä»ããã€ã³ã¹ã¿ã³ã¹éã®éä¿¡ãå°ãªããªããŸãã åãããŒãå ã®ããã»ã¹éã§éä¿¡ããæ¹ãã¯ããã«äŸ¿å©ã§ãã
- åæ£ã·ã¹ãã ãããç°¡åã«éçºã§ããŸãã Erlangã«ã¯ãã¯ã©ã¹ã¿ãŒãæ§ç¯ããããŒãéã®éä¿¡ãè¡ãããã®ç¬èªã®ããŒã«ããããŸãã
çµéšè±å¯ãªéçºè ã«èŠãããé·æ
- æ©èœçãã©ãã€ã ãäžå€ã®ããŒã¿æ§é ã
- ãµãŒãã¹ããªã¢ã«ã¿ã€ã ã§ç£èŠããäœæ¥ããŒãã§çŽæ¥åé¡ãæ€çŽ¢ããŠä¿®æ£ãããšäŸ¿å©ã§ãã
- ãµãŒãã¹ãåèµ·åããã«æ§æãå€æŽã§ããŸãã
çæãäžè¬çãªæèŠ
- ã©ã€ãã©ãªã¯ã»ãšãã©ãªããåªããã©ã€ãã©ãªã¯ããã«å°ãªãã å€ãã®ããšãèªåã§æžããä¿®æ£ããå¿ èŠããããŸãã
- éãããèšèªæ§æã æã ããã䟿å©ãªæ§ææ§é ãæ¬ ããŠããŸãã ããšãã°ãletæ§é ã¯ã¹ã³ãŒããå°å ¥ããã®ã«é©ããŠããŸãã æ°å€ã®æ¥å°ŸèŸãæã€å€æ°ãäœæããå¿ èŠãããããšã瀺ããŸãïŒVar1ãVar2ãVar3ã
- èšèªã¯ä¿å®çã§ãéåžžã«ãã£ãããšçºå±ããŸãã ããšãã°ããããã¿ã€ãã¯æ°å¹Žéå®è£ ãããŠããŸãïŒå®å šã«ã¯å®æããŠããŸããïŒã
- Webã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãã£ãããšéçºãããŠãããWebãã¬ãŒã ã¯ãŒã¯ã¯ãããŸããã
- ãã®èšèªã¯ãPython / DjangoãRuby / Railséçºè ã䜿ãæ £ããŠãããã®ãããäœãã¬ãã«ã®ã¢ããªã±ãŒã·ã§ã³ã察象ãšããŠããŸãã
åå¿è éçºè ã«èŠãããçæ
- æååã¯æãããå®è£ ãããŠããŸã;æååãæäœããããã®ããŒã«ã¯ã»ãšãã©ãããŸããã çµéšè±å¯ãªéçºè ã¯äžè¬ã«æååã䜿çšããªãããããã®ãããªåé¡ãå¿ããŠããŸã:)
- 匱ãæšæºã©ã€ãã©ãªãããã€ãã®æ©èœã ããã¯ãPythonã®èæ¯ã«å¯ŸããŠç¹ã«é¡èã§ãã æšæºã¢ãžã¥ãŒã«ã®äžæŽåïŒé¢æ°åãåŒæ°ã®é åºãæ»ãå€ïŒã
- æ©èœçãã©ãã€ã ãäžå€ã®ããŒã¿æ§é ã çµéšè±å¯ãªéçºè ã«ãšã£ãŠã¯ãã©ã¹ããã©ãã€ã ã«æ £ããŠããªãåå¿è ã«ãšã£ãŠã¯ãã€ãã¹ã§ãã ããã«ã¯å¥ã®èª¿æ»ãå¿ èŠã§ãã
- ãšã©ãŒã¡ãã»ãŒãžãèªãã®ã¯é£ããã§ãã
çµéšè±å¯ãªéçºè ãèŠãçæ
- äŸåé¢ä¿ã管çããããã±ãŒãžãæ§ç¯ããããã®åªããããŒã«ã¯ãããŸããã Rebar3ãšhex-æ£ããæ¹åã«ç§»åããŸããããŸã æªå å·¥ã§ãããåºãåãå ¥ããããŠããŸããã
- ãªãªãŒã¹ã¯è€éã§ãééã£ãã¿ã¹ã¯ã解決ããŸãã ããšãã°ããããã¢ããããŒãã®åé¡ã解決ããŸãããããã¯Webéçºè ã«ã¯å¿ èŠãããŸããã 1ã€ã®ããŒããåæ¢ããããšãç°¡åã«å¿é ã§ããããã«ããµãŒãã¹ãæ§ç¯ããæ¹ãé©åã§ãã
- æ§ææ§æã¯ãDevOpsã«ã¯äŸ¿å©ã§ã¯ãããŸããã æ£çŽãªãšãããéçºè èªèº«ã«ãšã£ãŠã¯äŸ¿å©ã§ã¯ãããŸããã èšå®ã¯ãiniãªã©ã®åçŽãªåœ¢åŒã§èšè¿°ããæ¹ãé©åã§ãã
ãã£ãšå人çãªæèŠ
- Pythonéçºè ã¯ããŸã£ããç°ãªãèšèªã§ããã«ãããããããTwistedãããErlangãåŠã¶æ¹ãç°¡åã§ãã Erlangãããžã§ã¯ãã¯ãTwistedãããžã§ã¯ããããåçŽã§ãéçºãéããä¿¡é Œæ§ãé«ããªããŸãã
- Erlangéçºè ã³ãã¥ããã£ã¯å°ãããããŸã掻çºã§ã¯ãããŸããã åããŒã ã¯ç¬èªã®ãããžã§ã¯ãã«äœãã§ããŸãã ä»ã®äŒæ¥ã®ååãšçµéšãç¥èãå ±æããŠãã人ã¯ã»ãšãã©ããŸããã åéçºè ãããââãžã§ã¯ãã§ã®ã¿äœ¿çšãããç¬èªã®ã©ã€ãã©ãªã»ãããäœæããäžè¬çãªç¶æ³ã
- CowboyãRiakã®ãããªå€§èŠæš¡ãªãªãŒãã³ãœãŒã¹ãããžã§ã¯ãããããŸããã掻çºãªã³ãã¥ããã£ãéçºãããããžã§ã¯ãã¯ãããŸããã
- Erlangä»®æ³ãã·ã³ã¯åªããŠããŸãããèšèªèªäœã¯ä¿å®çãããŠãéçºãæ±ããŠããŸããã ãã®ãããElixirãªã©ããã®ä»®æ³ãã·ã³çšã®æ°ããèšèªã®ãã¬ãŒã ã¯ãŒã¯ã§æŽ»çºãªéçºãè¡ãããŠããŸãã
- ErlangãšPythonã¯äºãã«è£å®ãåãã匱ç¹ãè£ããŸãã ãããã1ã€ã®ãããžã§ã¯ãã«æ£ããçµåããŸãã ããŒã¿ããŒã¹ã§ã®ããžãã¹ããžãã¯ïŒORMïŒã®äœæ¥ã¯Pythonã§ããã«ãã¹ã¬ããããŒã¿åŠçããµãŒãã¹éã®éä¿¡ãããã¯ã°ã©ãŠã³ãããã»ã¹-Erlangã§è¡ãã®ãæé©ã§ãã
- Erlangã«ã¯ã²ã©ãæ§æããããèŠããã§ããŸã:)
äžçªäžã®è¡ã¯äœã§ããïŒ
äžè¬çã«ãéçºè ã¯Erlangãéé£ããŠåãã§ããããã©ã¹ããããã€ãã¹ãèŠã€ããŸããã ããã¯é©ãããšã§ã¯ãããŸããããªããªãããã¯ãããžãŒã®å©ç¹ã«ããã«æ £ãããããåœããåã®ããšãšèããæ¬ ç¹ãããããããŠæ³šç®ãéãç¶ããããã§ãã ãã ããåœç€Ÿã§ã¯ãéçºè èªèº«ããããžã§ã¯ãã®èšèªãéžæããŸãïŒãã¡ãããèšèšè ãæ¿èªãããªã¹ããã:)ïŒããã®ãœãªã¥ãŒã·ã§ã³ã¯äžã«èª²ãããŸããã ãããŠã圌ãã¯Erlangã§æžããŠããã®ã§ãããã»ã©æªãã¯ãããŸããã ä»æ¥ãç§ãã¡ã®ãŠã§ãã¯Python 2.7ãPython 3.5ãErlangã䜿çšããŠããŸãã ã¢ãŒããã¯ãã¯ãGoèšèªãJVMèšèªã®1ã€ãä»ã®ãã®ãªã©ãä»ã®ãªãã·ã§ã³ãè©ŠããŠãæ§ããŸãããããããŸã§ã®ãšãããåžæãã人ã¯Elixirã§ã®ã¿èŠã€ãããŸããã
æœå ¥ãšã³ããªã®ãããå€
確ãã«ãå€ãã®äººã¯Erlangã®ãšã³ããªãããå€ãäœããšèããŠãããèšèªã2é±éç¥ã£ãåŸãéçºè ã¯æ¬çªçšã®ã³ãŒããæžãããšãã§ããŸãã ããã¯æ¬åœã§ããããã¹ãŠã§ã¯ãããŸããã èšèªã¯æ¬åœã«ã·ã³ãã«ã§ç¿åŸããããã§ãããèœãšãç©ŽããããŸãã
ãŸããæªçµéšã®éçºè ã®å€ããã€ãŸãããåäŸã®åé¡ããçµéšè±å¯ãªéçºè ã¯ãããã解決ããæ¹æ³ãåŠãã ããå¿ããã å žåçãªäŸã¯ãgen_serverã§ãããããã¯ãååŸããããšã§ãã ããã¯ã»ãšãã©ãã¹ãŠã®äººã«èµ·ãããŸãã ã¯ã©ãã«å ¥ãããã®äžçš®ã®ååŒ:)åããµã³ãããã¯ã¹ãããæååã䜿çšããå¿ èŠã¯ãªãããã€ããªã®ã¿ã䜿çšããããšãç解ããåé¡ã ãããžã§ã¯ãã§ãã®ã«ãŒã«ãéµå®ããã®ã¯ç°¡åã§ãããæ®å¿µãªããããµãŒãããŒãã£ã®ã©ã€ãã©ãªã§ã¯äœã§ãããŸããŸããããã®ããã«æºåããå¿ èŠããããŸãã
第äºã«ã幌çšãªåé¡ã¯ãŸã£ãããããŸããã ãããŠæåã®åé¡ã¯æ å ±äžè¶³ã§ãã Erlangã¯ã»ãã®æ°åã®è¯ãæ¬ãæžããŠããŸãã ãããã®ã»ãšãã©ã¯ãèšèªããã®ãããªãã®ãšããŠèšè¿°ããé©çšãããåé¡ã解決ããããã®äœ¿çšæ³ã§ã¯ãããŸããã å€ãã®éèŠãªåé¡ã¯ãæžç±ã§ãææžã§ããŸã£ãã説æãããŠããŸããã ãããžã§ã¯ãã®ãã«ãã«äœ¿çšããããŒã«ã¯äœã§ããïŒ åäœäžã®ããŒããç£èŠããæ¹æ³ã¯ïŒ ã¡ãŒã«ããã¯ã¹ã®ãªãŒããŒãããŒãæ€åºããæ¹æ³ã¯ïŒ ä»ã®ã¡ã¢ãªãªãŒã¯ãªãã·ã§ã³ã¯ã©ãã§ããïŒ ã·ã¹ãã ã®ã¹ã±ãŒãªã³ã°ã劚ããããã«ããã¯ãèŠã€ããæ¹æ³ 䜿çšããã©ã€ãã©ãª äžæ¹ã§ããããã¯å°æ°ã§ãã äžæ¹ã人æ°ã®ããã©ã€ãã©ãªã«ã¯å€ãã®åå²ç¹ããããŸãã ãããŠãããããã©ã®ãããªãã©ãŒã¯ã§ããããã©ã®ããã«ç°ãªãã®ããã©ã®ããã«ãµããŒããããã®ãã¯æ確ã§ã¯ãããŸããã MySQLã§åäœãããã©ã€ããŒãæ¢ããŠãã人ã¯ããã®åé¡ãããç解ããŠããŸã:)ãããŠãåæ£ã·ã¹ãã ã¯ãŸã åãäžããŠããŸããã ãã®ãã¹ãŠã«ã€ããŠåŠã¶ããšãã§ããã®ã¯ãå¥ã®çµéšè±å¯ãªéçºè ã ãã§ãã ãããã£ãŠãåžžã«ããŒã ã«æå±ããŠããããšãéèŠã§ãã
ãšãªã¯ãµãŒã«ã€ããŠ
Erlangãã€ãã³ãŒãã«ã³ã³ãã€ã«ãããErlangä»®æ³ãã·ã³ã§å®è¡ãããããã€ãã®èšèªããããŸãã æã人æ°ã®ããã®ã¯ãšãªã¯ãµãŒã§ãã
æ°å¹ŽåãRuby / Railsã®éçºè ã¯Erlangã«æ³šç®ããŸããã 圌ãã¯Railsåºæã®ããã©ãŒãã³ã¹ã®åé¡ã«å¯Ÿãã解決çãæ¢ããŸããã ããã©ãŒãã³ã¹ã®åé¡ã¯è§£æ±ºãããŸããããErlangã®ä»ã®ãã¹ãŠã奜ãã§ã¯ãããŸããã§ããã ãããŠãåœç¶ã®ããšãªãããè±å¯ãªã€ã³ãã©ã¹ãã©ã¯ãã£ãåãã匷åãªé«ã¬ãã«èšèªããã圌ãã¯å³ããäœã¬ãã«ã®äžçã«ããããšã«æ°ä»ããŸããã
Ruby / Railséçºè ã¯ããã®ãããªç掻ãããããªãããšãããã«èªèããããå¿«é©ãªç°å¢ãèªåãã¡ã§æ§ç¯ãå§ããŸããã 圌ãã®åªåã®çµæãElixirèšèªãšPhoenix Webãã¬ãŒã ã¯ãŒã¯ãã§ããŸãããããããã«æŽ»çºãªã³ãã¥ããã£ããããŸãã 3幎ã§ã圌ãã¯Erlangã10幎ã§ãããããå€ãã®WebéçºãããŸããã
Elixirã«ã€ããŠã®æèŠãšErlangã«ã€ããŠã®æèŠã¯ççŸããŠããŸãã èªã¿ããããç°¡æœã§åŒ·åã ãšèãã人ãããŸãã ä»ã®äººã¯èªã¿ã«ãããæ³ååã«æ¬ ããŸãã ä¿å®çãªErlangéçºè ã¯Elixirããã£ãããããŠããŸãã ãããŠãRubyãPythonããErlangã«æ¥ã人ãã¡ã¯å¥œå¥å¿ã§Elixirãåãå ¥ããŸãã
èšèªã®é·æïŒ
- è±å¯ãªæšæºã©ã€ãã©ãªã
- é«ã¬ãã«Webãã¬ãŒã ã¯ãŒã¯Phoenix ;
- åªããã€ã³ãã©ã¹ãã©ã¯ãã£ïŒãã«ãããŒã«ãããã±ãŒãžãããŒãžã£ãŒãã©ã€ãã©ãªã
- è¯ãããã¥ã¡ã³ã
- ã¢ã¯ãã£ããªã³ãã¥ããã£ã
çæïŒ
- èšèªã¯è¥ããæ¥çã§ã®çµéšã¯ãããŸããã
- Erlangã®ç¥èã¯äŸç¶ãšããŠå¿ èŠã§ããããããã®èšèªéã®é¢ä¿ã¯è¿ãããŸãã
- äœãã¹ä¿æ°ã
ã³ãã¥ããã£ã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ãã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã§å¿ãããèšèªã®äžæ žã¯å°ããªããŒã ã«ãã£ãŠéçºãããŠããŸãã ãã®ããŒã ãè³éã倱ãã誰ãããã«ä»£ãããªãå Žåãèšèªã®éçºãšç¶æãåæ¢ãããªã¹ã¯ããããŸãã
Wargaming Webã§ã¯ãå°æ¥ã®ãµãŒãã¹ã®1ã€ã®ãããã¿ã€ããElixirã§äœæãããŠããŸãã 圌ãã©ã®ããã«èªåãèŠããŠãããèŠãŠã¿ãŸãããã
ããã¯ãErlangéçºè ã®æèŠã§ãã ã©ãæããŸããïŒ äœãããªããèšèªã«æ£ç¢ºã«æ¹ãã€ããäœãããªãã®ä»äºã劚ããåã«è¡ãã ãã«ããã®ã§ããïŒ ã³ã¡ã³ãã§å ±æããŠãã ããïŒ Erlangãšå®äºãããããžã§ã¯ãã§ã®çµéšã«ã€ããŠæããŠãã ããã
ãæž èŽããããšãããããŸãã
ãŠãŒãªã»ãºãã
Wargamingã®Webéçºè