åºæ¬çã«ã¯ãClojureã¯JVMã§ãããšããçãã§ãã åæ§ã«ããã®ããããã¯ãšãŠãéãã§ããããã¯ãæ°é±éåã«Slackã°ã«ãŒãã®
ZA Techãã£ã³ãã«ã«ç»å ŽããŸããã Clojureã§ã®ããã€ãã®ã¹ããŒãã®éã«ãã¹ããŒã«ãŒã¯äœåºŠãäœåºŠããã®ãããªçºèšãããã
ãã®æ©äŒã«ãç§
ã¯Slackã§è©±ãã
ãŸãã ã ä»ãç§ã¯ããåºãèªæžãšè°è«ã®ããã«æžããŸãã
ãŸããã
ãŸããJVMã¯éããšæã£ãŠããŸããã ããã¯ãPHPã«æ¯ã¹ãŠ2000幎代åæã®ããšã§ãã .NETãColdFusionã®ãããªä»ã®ãããŒãŠã§ã€ãããããŸããã PerlãPythonã®ãããªè»œã代æ¿åããããŸãããããã®ãšãã¯Windowsã«åº§ã£ãŠããã®ã§ãActivePerlãšActivePythonãå°ãéããã®ã§ããã
Herokuã«å°ããªJRubyå®çšŒåã¢ããªã±ãŒã·ã§ã³ããããã€ãããšãã«ãæåã«JVMã®ãææããå
æããŸããã ãã®å°ããªæªç©ã¯1æ¥ã«1ã€ã®ã¿ã¹ã¯ãå®è¡ããã ãã§ããã 圌ã¯å€æ°ã®PDFãçæããããããiSignã«ã¢ããããŒãããŠïŒçŸåšã¯æ©èœããŸããïŒãä¿ç®¡ãšé
åžãè¡ã£ãŠããŸãã ISignèªäœã¯ã3ã€ã®AMIããã¹ãããåŸæ¥ã®Railsã¢ããªã±ãŒã·ã§ã³ã§ããã ã¹ããã¯JVMäžã®ãã®å°ããªæç«ïŒ
-server -Xmx=512M
é€ãïŒã¯éåžžã«é«éã«PDFãçæãããããèµ·åãããã³ã«æåéã3ã¢ãŒãã®ã¯ã©ã¹ã¿ãŒã殺ããŸããã
ç§ã¯ãŸã 圌ãä»äºã§å°ãéããšæã£ãŠãããããã®ugãã¢ãã«ã®åã«æãããã
ç§ã¯å€ããå°ãªããJRubyã®éçºãšãµã¯ã»ã¹ã¹ããŒãªãŒã«åŸãã
Rubyfuza 2015ã§
Charles NutterãšçŽ æŽãããæéã
éãããŸãã ã ç§ã¯ãšãŠãåºæ¿ãåããŠãJRubyã§ãã¹ããå®è¡ããã ãã®Rubyãããžã§ã¯ãã§
ãã«ãªã¯ãšã¹ããéãå§ããŸã
ã ã ç§ã¯æ¥ããããããšã«ããããçµããŸããã
ãããŠ2016幎ãŸã§ã«
2016幎11æã«ãRailsã¢ããªã±ãŒã·ã§ã³ããŒãããäœæããããšããŸããã æ°ã¶æã¶ãã«ãç§ã¯èªåã®ãã·ã³ã§Rubyã§ããã°ã©ãã³ã°ããŸããã
brew upgrade
ã¢ããããŒãã¯rbenvã«ã¯ã©ãã·ã¥ãããããã€ã³ã¹ããŒã«ãããŠãããã¹ãŠã®ããŒãžã§ã³ã®Rubyãç Žæ£ããŸããããæ°ä»ãããšãããããŸããã§ããã
Jozi.rbã§WebSocketã«é¢ãããã¬ãŒã³ããŒã·ã§ã³ãè¡ããŸãã
ãç§ã®è¬æŒã®åé ã§ãReactãšRailsãå
±æãããšããäžè¬çãªæèŠã®ããã«ã
React on Railsãªããžããªã
ããããããšæããŸããã ç§ã¯æ°ãæé
ãªãã¬ãŒã ã䜿çšããŠããããã¢Reactã§
ãªãã¬ãŒã ã§ããããšã確信ããŠããŸããã
åè»ã¯ã¬ãŒã«ããå€ããéåžžã«å£®èŠ³ã§ããã
1ã€ã®ãã³ãã¬ãŒãã¢ããªã±ãŒã·ã§ã³ã®ã¯ããŒã³ãäœæããŠå®è¡ããã«ã¯ãXcodeãæŽæ°ããXcodeã®ã³ãã³ãã©ã€ã³ããŒã«ïŒåèš6 GB以äžïŒãæŽæ°ããRubyãšBundlerã®æ°ããããŒãžã§ã³ãã€ã³ã¹ããŒã«ãããã³ãã¬ãŒãã¢ããªã±ãŒã·ã§ã³ã«ã€ã³ã¹ããŒã«ããªã³ã¯ããå¿
èŠããããŸãã...ç°¡åã§ãããïŒ ã»ãšãã©ã®Railsã¢ããªã±ãŒã·ã§ã³ãšåæ§ã«ããã®ãã³ãã¬ãŒãã¢ããªã±ãŒã·ã§ã³ã¯äŸåé¢ä¿ã°ã©ãã®ã©ããã«libv8ã«äŸåããŠãããããã ãã§1 GBãè¶
ãããµã€ãºãè¿œå ãããŸãã
å
šäœã®éåã«ã¯æ°æéããããŸããã
ãã®ãããªå°è±¡çãªãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã§éãã åŸãç§ã¯ãã®äœåãã³ã€ã³ãã¹ã«å€ããããšã«æ°ä»ããŸããã ãããã£ãŠãç§ã¯åœŒãç¥ã£ãŠããã®ã§ãEmberã®ããã³ããšã³ããããè¯ãããããšã«ããŸããããååãªæéããããŸããã§ããã
ç¹°ãè¿ããŸãããnvmãæŽæ°ããããŒãã®èš±å®¹ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããember-cliãã€ã³ã¹ããŒã«ããnpm
ãš bowerãä»ããŠã¢ããªã±ãŒã·ã§ã³ãçæããäŸåé¢ä¿ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã
ç§ã¯å°ããã¬ãŒããŠæåãèªããŸãããã代ããã«ååãšç§ã®çµéšãå
±æããŸããã ããã¯å±èŸ±çã§ãæ¬åœã«å±èŸ±çã§ããã ç§ã¯é·ãéåå ããŠããäžçã§èŠç¥ãã¬äººã®ããã«æããŸããã
JVMã
éããšããã¹ããŒãã¡ã³ãã«æ»ããŸãã
ã©ã®ããã«èšéããŸããïŒ
- ããŠã³ããŒãæã«JDKãµã€ãºã倧ããããŸããïŒ
- 圌ã¯è·å Žã§å€ãã®ãªãœãŒã¹ã䜿çšããŠããŸããïŒ
- ã©ã€ãã©ãªã¯å€ãã®ãã£ã¹ã¯å®¹éãå æããŠããŸããïŒ
- å±éãéãããŸããïŒ
- ããã¯äžæ¥ã«ããªããé
ãããŸããïŒ
JVMã«é¢ããææ
çãªéå£ãå
æããã®ã«åœ¹ç«ã€ããã€ãã®è³ªåã次ã«ç€ºããŸãã
ããã§ããããã®äžè©±ãããŠãå®éã«äœãèµ·ãããèŠãŠã¿ãŸãããã
åæããªã¥ãŒã ã¯æ¬åœã«ãããªã«å€§ããã®ã§ããïŒ
JVMã®ãã®
ãéãã㯠ããããã倧éã®åæã€ã³ã¹ããŒã«ããå§ãŸãçŽç²ãªFUDã§ãã çŽ200 MBã®JDKããŠã³ããŒããšçŽ15 MBã®ããŒããŸãã¯RubyããŠã³ããŒããæ¯èŒããŠããŸãã ããããããã¯ã»ãã®å§ãŸãã«éããŸããã NodeãšRubyã®äž¡æ¹ã§ãã·ã¹ãã äžã«Cã³ã³ãã€ã©ãå¿
èŠã§ãããããæ°çŸã¡ã¬ãã€ãã§ãã ããã«æªãããšã«ãããããå®çšŒåç°å¢ã§ã³ã³ãã€ã©ãå¿
èŠã§ãïŒ
NodeãšRubyã®äž¡æ¹ã«å¯Ÿãã倧éã®è² è·ããã®ãããªå°ããªé£ç¶ããã¹ãããã§é ããŠããŸãã è²»ãããæéã¯èšããŸã§ããªããåæ¢ããŠããªã¥ãŒã ãèšç®ããå Žåã¯ã200 MBãããæé©ãªãªãã·ã§ã³ã«ãªããŸãã
ç¬èªã®ãŠã§ãããããäœæããããã®æé ã®ã³ã³ãã€ã«ãéå§ãããã¯ãããŸãããæ°ããããŒã«ããªãªãŒã¹ãããçŽåŸã«æžãæããã®ã§ã¯ãããŸããã

JVMã®æäœã¯ãšãŠãé£ããã§ããïŒ
JVMã¯é«éã§ããããã
æéã®ç°å¢ã® 1ã€ã§ãã æéãçµã€ã«ã€ããŠãããéãç°¡åã«ãªããŸãã äœå人ãã®åªç§ãªãšã³ãžãã¢ãæ¹åã«åãçµãã§ãããéå»21幎éã§ããã«å€ãã®æè¡è
ãè²¢ç®ããŠããŸããã
å®è¡ã®å®éã®ã¹ã¬ããããã«ãã³ã¢ã®ãµããŒãããããå°çã®ããã«æ§æããããšãããã®ãŸãŸã«ããŠããããšãã§ããŸãã ããããç¥ã£ãŠããã¹ãå¯äžã®æçšãªããšã¯ãJVMã®ã¡ã¢ãªå¶éãèšå®ããããšã§ããããããã°ããã®ç°å¢ã®å¶éãæäœããéã«äžæè°ã瀺ããŸãã
Herokuã«ãããã€ããŸããïŒ
java -server -Xmx512m beast.jar
ã ããã§ååã§ãªãå Žåã¯ã誰ãã«ã¢ããã€ã¹ãæ±ãããéãããã§ããã...ããããŸãããŸãã¯åã«StackOverflowãèŠãŠãã ããã
ãã£ãŒã«ãºãšä»ã®JRubyã®é£äžãæšé²ãç¶ããŠããéèŠãªãã€ã³ãã¯æ¬¡ã®ãšããã§ãã ãžã§ã¹ãã£ããªããã°ãã¢ããªã±ãŒã·ã§ã³ã¯ãJVMã®ãªãªãŒã¹ããšã«ïŒJRubyã®é²è¡ã«é¢ä¿ãªãïŒããããããéãå®è¡ãããŸãã
ãã£ã¹ã¯äœ¿çšéã¯éåžžã«å€§ããã§ããïŒ
èå³ããããClojure
1010 MBã®äŸåé¢ä¿ã§9ãæ以äžã®éçºãèç©ããã
~/.m2
ãæ¢ããŸããã ãŸã ã®ã¬ãã€ãã§ããããŸããã
$ du -sh /usr/local/opt/rbenv/versions/2.3.3 ~/.nvm/versions/node/v6.9.1 ~/.m2
690M /usr/local/opt/rbenv/versions/2.3.3
232M /Users/kenneth/.nvm/versions/node/v6.9.1
1010M /Users/kenneth/.m2
Rubyã®ã€ã³ã¹ããŒã«ã¯åã³æ°ãããªãããã®ããã°ãšMiddlemanãç¶æããããã®åºæ¬çãªèŠä»¶ãæºãããŠããŸãïŒããã§ä¿®æ£ã«åãçµãã§ããŸãïŒã ã¯ãããã®éçããã°ãå®è¡ããå®è¡ããããŒã«ã®éçºã«åå ããã«ã¯ãçŽ700 MBã®ã¹ããŒã¹ãå¿
èŠã§ãã
ããŒãã«ã¯emberãdocpadãbowerã®ã¿ãã€ã³ã¹ããŒã«ãããŠããã200 MBãè¶
ããŠããŸãã
å±éã¯ãšãŠã倪ãããã§ããïŒ
ããªãã¯ããããç§ã話ãããšãäºæž¬ããããšãã§ããŸã...
ãã«ãæã«ã¯ãåäžã®JARãã¡ã€ã«ãäœæããŸãã ã¢ããªã±ãŒã·ã§ã³ããããããã©ãããã©ãŒã ã§åäœããããã®ãã¹ãŠãåããŠããŸãã å¿
èŠãªå Žæã«JARã眮ããJVMã§åŠçããã ãã§ãã
ã¢ããªã±ãŒã·ã§ã³ãäœããã®å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã§å®è¡ããããšããèŠä»¶ã¯ãããŸãããJARãã¡ã€ã«ã§çŽæ¥ãçç£çãªHTTPãµãŒããŒã«ç°¡åã«ãªã³ã¯ã§ããŸãã Nodeã®äººãã¡ããRubyã®äººãã¡ãããããŠããŸãããã©ãããããããJARãã¡ã€ã«ã¯ç¬ãã§ããããšã¯ã§ããŸãããïŒ ç§ãããæããŸãã...
ããšãã°ãå®çšŒå
apt-get install build-essentials
ãå®è¡ããå¿
èŠããªããªããŸããã
JVMã§æ¯æ¥
8 GBã®ã¡ã¢ãªãæèŒãã2012 MacBook Proã§å°ãªããšã
5ã€ã® JVMããã»ã¹ãå®è¡ããŠããŸãã 圌ãã¯çµ¶ããæ¯æ¥åããŠããŸãã 5ã€ã®Railsã¢ããªã±ãŒã·ã§ã³ãåæã«å®è¡ããããšããããšã¯ãããŸããã
ãªã5ã€ïŒ 2ã€ã¯
Datomic ïŒããŒã¿åéãšã³ã³ãœãŒã«ïŒçšã1ã€ã¯ããã¯ãšã³ãAPIçšããã1ã€ã¯äœæ¥äžã®ããã³ããšã³ãçšã§ãã ããã¯ã°ã©ãŠã³ãã§èªåãã¹ããè¡ââãããããšããããŸãã ãããã®ããã»ã¹JVMã®ããªãã®éšåãåããã€ããã¡ã¢ãªã«ããŒãããå¿
èŠããããããmacOSã®ã¡ã¢ãªå§çž®ããããã圹ç«ã€ãšç¢ºä¿¡ããŠããŸãã


10ãæåã«ããã«ã€ããŠè©±ããŠããããªããç§ã¯ç¬ãã ãã§ããã
5人以äžã® JVMããã»ã¹ãéå§ããã®ã¯èª°ã§ããïŒ ã¯ãªããã³ã°ã®ããã«æãå·®ãåºãããšã¯ã§ããŸãããããã¯æ±ºããŠè¡ããŸããã
ãããã¯ã©ã¹ãã¹ãšä»ã®ãã¹ãŠã®ã¯ã¬ã€ãžãŒãªãã®ã¯ã©ãã§ããïŒ Clojureã®åªããããŒã«ãããã®ãããã§ã圌ãã¯ãŸã£ãã觊ããŸããã ããã¯ãnpmãŸãã¯bundlerã䜿çšããã®ãšåãçç±ã§ããã¹ãå«ããããšãå¿é
ããªãã§ãã ããã ãããè¡ãããšã¯ã§ããŸãããããããæ°ä»ããªãå¥ã®åé¡ããããŸãã
Joys REPL
JVMã€ã³ã¹ã¿ã³ã¹ãç¶ç¶çã«åæ¢ããã³èµ·åããå¿
èŠãããå Žåãééããªã倢äžã«ãªããŸãã æã¯JRubyã«ã€ããŠæ©ãã§ããŸããã 幞ããªããšã«ãClojureãšåªããREPLã䜿çšããã°ãJVMã€ã³ã¹ã¿ã³ã¹ãåèµ·åããå¿
èŠãããã®ã¯ããŸãã«ç§ãå®éã«ã©ããã§ãã¡ããã¡ãã«ãªã£ããšãã ãã§ãã æãè
ã«å¯Ÿããããªãè¯ãé²åŸ¡çããããŸãã
Figwheelã¯äœæ¥ãåé¡ãªã
æ©èœããŠããŸãã
ãããã«
JVMããªããžã§ã¯ããšããŠè©äŸ¡ãããšãã¯æ³šæããŠãã ããã Javaãããããæå³ã§èšèªãšããŠè©äŸ¡ããŸãããJavaãä»®æ³ãã·ã³ãšæ··åšãããªãã§ãã ããã
ç§ãããªãã®ããã«èããŠããŸããã JVMã¯ãã®ã«ãã ãšæã£ãŠããŸããã 幞ããªããšã«ãç§ã¯ãããã®å¶éãåãé€ãããšãã§ããããããµããŒãããäœå人ãã®å·šäººã®ä»äºã®çµæãåŸãŸããã
ãããªãå Žåã§ãããã®æçš¿ããããŒãã®çµããããŸãã¯ãRubyã®çµãããã®å
åãšèŠãªããªãã§ãã ããã ãããæ°é®®ãªèŠç¹ãšèããŠãã ããã JVMã«ã¢ããã°ã¬ãŒãã§ããªãå Žåã¯ãå°ãªããšãèªåã®äžçã§è¥å€§åãæžããæ¹æ³ãæ€èšããŠãã ããã
ãæéãããã ãããããšãããããŸãã Clojureã
æ¢çŽ¢ã ã
Simple Made Easyãè©ŠããŠãã ããã