YAPC::Asia 2015 è¯ãã£ãâ¦
YAPC::Asia 2015 ã«è¡ã£ã¦ããï¼ä»ã¾ã§åå ããä¸ã§ IT é¢ä¿ã§éå»ä¸çªåå è ãå¤ãã¤ãã³ããªæ°ãããï¼Perl ã¯ã»ã¨ãã©æ¸ãã¦ãªããã®ã®ï¼ã©ãªã¼ã»ã¦ã©ã¼ã«ã Matz ã®è¬æ¼ããã£ã¦æ¥½ãããã ã£ãã®ã§ãã±ãããè¿·ããè³¼å ¥ãã¦æ給åã£ãï¼
ãã¼ã¯è¯ãã£ã
æ10æããå¤æ¹ã¾ã§ã³ã£ããã»ãã·ã§ã³ãçµã¾ãã¦ãã¦ï¼ãã¡ããã¡ãå¯åº¦ãæ¿ãã£ãï¼ ããã§ã¯ç¹ã«è¯ãã£ããã¼ã¯ã«ã¤ãã¦ææ³æ¸ãã¦ããã¾ãï¼
ã¡ãªã¼ã¯ãªã¹ãã¹
Perl ã®ä½è ã®ã©ãªã¼ã»ã¦ã©ã¼ã«ã®çºè¡¨ã ã£ãï¼ï¼è¯ãç¥ããã¦ããåçãããã§ãã姿ãè¦ããã¨ããªãã£ãã®ã§æã£ã¦ãããããããã¡ããã ã£ãï¼ï¼
ãã¼ã«ãã³ã大好ããããï¼Perl5 = ããããã®åéºï¼Perl6 = æ輪ç©èª ã«ä¾ã㦠Perl6 ã«ã¤ãã¦èªã£ã¦ããï¼æ輪ç©èªã¯ããããã®åéºããï¼èå°è¨å®ãªã©ï¼æ¹åããã¨ããããããããããããï¼Perl6 ãããã«ãªãããã¦ããï¼Perl6 ã§ã¯æ¼ç®åãèªç±ã«å®ç¾©ã§ããã£ã½ãï¼ãããå©ç¨ãã¦æ§æãæ¡å¼µãããããªãã¨ãã§ãããããï¼æ¼ç®åã®å®£è¨ã®æç¹ã§ Perl6 ã®å¦çç³»ã¯ãã®æ¼ç®åãç¥ã£ã¦ããã®ã§ï¼æ¼ç®åã®å®ç¾©ãèªèº«ã使ã£ã¦å帰çã«æ¸ããã¨ãã§ããï¼æ£è¦è¡¨ç¾ã¯ãã¿ã¼ã³ã¨å¼ã°ããæ©è½ã«é²åï¼ï¼ï¼ãã¦ãããããããã©ï¼ããã¯èª¬æãèããã ãã§ã¯ããåãããªãã£ãï¼ãã¨åå¨ããããããªã£ã¦ããããï¼
Perl6ï¼ã©ããã15å¹´éçºãã¦ãããããï¼çºè¡¨ã®ä¸ã«ãã£ãããã¾ã失æãããã¨ãã§ãããã¨ããè¨èã«ãããéãããªãå±±ããè°·ãããªéçºã ã£ãã¨æããï¼ããã§ãããã¾ã§éçºç¶ãã¦ãªãªã¼ã¹ãè¦ããã¨ããã¾ã§ããã¤ããããã¨ããã®ã¯ãããã³ãã¥ããã£ã®åã ã¨æãï¼ãã¯ãªã¹ãã¹ã«ãªãªã¼ã¹ãã¨è¨ããç¶ãã¦ãã¦ï¼ã¤ãã«ä»å¹´ã®ã¯ãªã¹ãã¹ã«ãªãªã¼ã¹ãããã®ã§æ¥½ãã¿ï¼
TBD
Ruby ã®ä½è ã® Matz ã®çºè¡¨ã ã£ãï¼çªç¶ãã¿ãåããã¨è¨ã£ã¦ Ruby ããã£ã¹ãå§ãããããããã£ã¡ãé¢ç½ãã£ãï¼æ°ãï¼å¤§ãã3ç¹ãã£ã¦
- Perl ã®å½±é¿ : ç¹æ®å¤æ°
- Lisp ã®å½±é¿ :
Fixnum
ã¨Bignum
ã®åºå¥ãããã¨ããã¨ãString
ã¨Symbol
ã®åºå¥ãããã¨ãã - ãã«ãã³ã¢å¯¾å¿ : ã試ãã« GIL ãå¤ãã¦ã©ãã ãããã°ã©ã ãå£ãããè¦ãã¦ããããï¼ã
ãããï¼Perl ã®ã«ã³ãã¡ã¬ã³ã¹ãªã®ã«ãããï¼ãã ï¼Symbol
ã¯ããã°ã©ã ä¸ã§ Enum çãªæè¦ã§ä½¿ã£ã¦ããã®ã§ï¼String
㨠Symbol
ã¯éãããããªãããªãã¨ãæã£ãï¼
ã¾ãï¼ã¢ã¼ããã¯ãã£ã®æµè¡ãå»ããæ¯ãåå¼ã«ãªã£ã¦ãããã¨ã¨ã2次è¨æ¶ãã©ãã©ãéããªãããããªããã¿ãããªè©±ããã£ã¦ï¼æºãæã㦠Streem ã®è©±ã«ãªã£ãï¼
Streem ã«ã¤ãã¦è¦ãæ¸ãï¼
- Ruby ã®åçãçããã¤ã¤ï¼ãã«ãã³ã¢ã使ã£ã¦ãã¤ãã©ã¤ã³ã§ã¤ãªãã å¦çã並åã«è¡ã
- ã·ã§ã«ã¹ã¯ãªããã«çæ³ãå¾ã¦è¨è¨ï¼æåå以å¤ããã¤ãã§æ¸¡ãããï¼ããã»ã¹ç«ã¦ãã®ã¯éãï¼
- ãã¤ãã©ã¤ã³ã®å段éã¯å¥ CPU ã§å®è¡ãããã£ã½ã
- echo server ã®å®ç¾©ãé¢ç½ãï¼ã¹ããªã¼ã ã¯åæ¹åãªã®ã§ãµã¼ãã®ã¹ããªã¼ã ãéãã¦ã¹ããªã¼ã ããåãã¹ããªã¼ã ã«ç¹ããã ãï¼
- ãã¼ã¿ãå¤æ´ã§ããªãããã«ãªã£ã¦ããï¼ï¼ãã¤ãã®éä¸ã§ãã¼ã¿ãå¤æ´ã§ããããã«ãªãã¨å°ãï¼
- ã¨ã©ã¼ã«ãªã£ããç¡è¦ããï¼ã¤ãããï¼
- æ°å¤ã¯å°æ°ç¹æ°ã»æ´æ°åºå¥ãªãï¼ãããã«æ´æ°ã¨å°æ°ã¯åºå¥ãããï¼
- ãã¼ã¿æ§é ã¯ãã¹ã¦é åã§ããã·ã¥ã®ããã«ä½¿ãããå ´åã¯è¦ç´ ã«ã©ãã«ãä»ããããããã«ããï¼å é¨æ§é ã©ããªããã ããï¼
ã¹ããªã¼ã ã®æ¯ãåãããã¾ã表ç¾ã§ããæ§æãããã®ãªãï¼ã¨ã©ã¼å¦çã¯æåããå ´åã®ã¹ããªã¼ã ã¨å¤±æããå ´åã®ã¹ããªã¼ã ã«åãããããã«ããã®ãè¯ãã®ããªã¨æã£ãããã©ï¼ã¹ããªã¼ã ãåå²ãããããªãã¾ãæ§æã¯ç¹ã«æãã¤ããªãã£ãï¼
ããã¼ããªãããåã俺è¨èªã³ã³ãã¤ã©ãã¤ãã£ã¦ãã¦ï¼å°é£ãããã¨ã¯ããããªãããã©ããã°ã©ãã³ã°ã®è²ã ãªãã¨ï¼æ°æã¡ã¨ãï¼ãèããªããæ©è½ãæ§æã決ãã¦ããã®ã¯é¢ç½ãã¦ï¼ãè¨èªãã¶ã¤ã³ã¯æ¥½ãããã¨ããã®ã«ãã£ã¡ãå ±æã§ããï¼ãã¨ï¼åã㦠Hello World ãåºããæã«æåããã¨ããã®ããããåããï¼
ãã£ãããªã®ã§è³ªåãã¦ã¿ãï¼Ruby ã®æ§æã¯ç«¯ã ã«ç´°ããç´æçã§ãªãã¨æããã¨ãã¸ã±ã¼ã¹ããã£ãããã¦ï¼ä¸»ã«ã¡ã½ããå¼ã³åºãã§æ¬å¼§ãçç¥ã§ãã辺ãã§çããï¼ï¼æ§æãã©ãããæãã«è¨è¨ãã¦ãã®ããªã¨æã£ãã®ã§èãã¦ã¿ãï¼æ§æçã«æ°æã¡æªãã¦ãï¼ã¦ã¼ã¶ï¼ããã°ã©ãï¼ãç´æçã¨æããããç¯å²ãªã OK ã¿ãããªæããããï¼Ruby ã£ã½ããªã¨ããæããããï¼
esa.io (\( â°ââ°)/)
åã ããã¿ã¤ã ã©ã¤ã³ã§ã¯ã¡ããã¡ããè¦ããã¦ãã esa.io ãã¤ãã£ã¦ãã人ã®ãã¼ã¯ã ã£ãï¼ä»ã¾ã§ãã´ããããããããã®èªèãããªãã£ãããã©ï¼ãããæ å ±ãæ´çã»å ±æãããµã¼ãã¹ãããï¼
趣å³ã§ã¤ããã¯ããããã®ã使ã£ã¦ããããããã«ãªã£ã¦ãµã¼ãã¹ã¨ãã¦å£²ãåºããã¬ãã«ã¾ã§æã£ã¦ãããã®ã¯ããããªã¨æãï¼åã®å ´åã¯è¶£å³ã¯ãã¸ãã¹çãªãã¨ã¯å ¨ç¶èããããªãã¦æ¥½ãããã°è¯ãã®ã§ãéã«ãªããªããããªãã¨ã°ãããã£ã¦ã⦠ããã好ããªãã®ãã¤ãã£ã¦ããã ããã£ã¦ã¹ã«ã¼ãããããããï¼
Tã·ã£ãã»ãããªã£ãï¼è²·ã£ãï¼8/24 0:18 追è¨ï¼
ã¯ã¦ãªã® Mackerel éçºã«ãããè¨èªé¸æã®è©±ï¼Scalaï¼Goï¼Perl ãªã©ï¼
Mackerel éçºã§ã®è¨èªã®ä½¿ãåãã¯
- ãµã¼ããµã¤ã Scala ï¼Playï¼
- ã¯ã©ã¤ã¢ã³ããµã¤ãããã¯ã¨ã³ãï¼Goï¼
- ã¯ã©ã¤ã¢ã³ããµã¤ãããã³ãã¨ã³ãï¼TypeScript + Angularï¼
- ãã¼ã«ã¨ã Perl
ãããï¼ Scala ã¯è¨èªæ©è½ãå¼·åã§å¤§ããç©ãã¤ããã®ã«åãã¦ãããã®ã®ï¼ãã¯ãã³ã³ãã¤ã«ã«æéããããã®ããã£ã¦ãã¹ãåãã¾ããã®ãããã¥ããï¼Go ã¯ãã«ããéãã¦ã¹ã¯ãªããã§æ¸ãã¦ããæã®ãããªã¹ãã¼ãæã§ã³ã¼ãããã¹ããåããããã¤ããªã®é å¸ã楽ãããã®ã§æ¡ç¨ãã¦ãããããï¼å®è£ ã®é½åä¸ï¼ã¯ãã¹ãã«ãèªä½ã¯ããã¾ã§ç°¡åã§ã¯ãªãã£ããããï¼ï¼å¦¥å½ãªæãã ãªãã¨ããå°è±¡ã ã£ãããã©ï¼è¨èªããã£ãã使ãåãã¦å¦¥å½ãªéçºã§ããã®ã¯ãã¯ãã¡ã³ãã¼ã®è½åãå¹³åãã¦é«ããããªã®ããªã¨ããæãã ã£ãï¼
åé·åã失æãã話
å¼å¹´é·å®®ï¼è¯ãï¼
Adventures in Refactoring
GitHub ã®ä¸ã®äººã«ãããªãã¡ã¯ã¿ãªã³ã°ã®è©±ï¼
ãªãã¡ã¯ã¿ãªã³ã°ã¯æåãããã©ãããè¨æ¸¬ã§ããªãã¨ãããªãï¼ä¾ãã°è¡æ°ã大ããæ¸ã£ãï¼ã«ãã¬ãã¸ãä¸ãã£ãï¼ããã©ã¼ãã³ã¹ãä¸ãã£ããªã©ï¼ã¨ããã®ããã¾ãæ®æ®µèãããã¦ãªããªãã¨çæããï¼æ®æ®µã¯ã¨ããããåããã®ãæ¸ãã¦ï¼ãªãã¨ãªãã¤ã±ã¦ãªãã¨ãããç´ãã¦ããã ãã ã£ãããã©ï¼ããããã¯ã¡ããã¨ç®çæã£ã¦ãããã¨æãï¼
å
·ä½çãªä¾ãçµæ§ç´¹ä»ããã¦ãã¦ï¼åããããªãã¬ãã£ãã¯ã¹ãã¤ãé¢æ°ãããããããå ´åã¯ãã¬ãã£ãã¯ã¹é¨åãã¯ã©ã¹ã«ããã¨ããã®ãè¯ãã£ãï¼ä¾ï¼pull.branch_exists?
ã®ãããªé¢æ°ããã£ã¦ï¼ä»ã«ã branch_
ãã¬ãã£ãã¯ã¹ãªé¢æ°ãããæ㯠branch
ã¯ã©ã¹ãã¤ãã£ã¦ pull.branch.exists?
ã«ããï¼ï¼
大ããªå¤æ´ãè¡ãå ´åã¯ï¼å¤æ´ã«åãã¦å é¨ããªãã¡ã¯ã¿ãªã³ã°ãã¦ããå¤æ´ãè¡ãï¼å¤§ããªå¤æ´ããªãã¡ã¯ã¿ãªã³ã°ã¨ãã®å¾ã®å®è£ ã«åããï¼ã¨ããã®ãåèã«ãªã£ãï¼ï¼ä¾ï¼ã¢ã¤ãã 1ã¤ãè¿ãé¢æ°ããã¢ã¤ãã ã®ãªã¹ããè¿ãé¢æ°ã«å¤æ´ããå ´åï¼ã¾ãã¯ã¢ã¤ãã ã®ãªã¹ããåå¾ãã¦ãã®æ«å°¾ãè¿ãé¢æ°ã«ãªãã¡ã¯ã¿ãªã³ã°ããï¼
ãã¨ï¼ãªãã¡ã¯ã¿ãªã³ã°ä¸ã«ãã°ãè¦ã¤ãã¦ããããã°ãã¦ã¯ãããªãï¼ã¨ã³ãã°ããå ´åï¼ãªãã¡ã¯ã¿ãªã³ã°ã¨ãããã°ã®ã©ã£ã¡ã§ã¨ã³ãã°ããã®ãåãããªããªãï¼ã¨ããã®ãããªããããã¡ãªã®ã§æ°ãã¤ãããï¼ãªãã¡ã¯ã¿ãªã³ã°å¯¾è±¡ã¨é¢ä¿ãªãç®æãªãå¥ãã©ã³ãç«ã¦ã¦ãã£ã¡ã§ãããã°ãã¦å¾ã§ãªãã¡ã¯ã¿ãªã³ã°ãããã©ã³ãã«ãã¼ã¸ããã°è¯ãããã ããã©ï¼ãªãã¡ã¯ã¿ãªã³ã°å¯¾è±¡ã«ãã°ããã£ãæã¯å¾ã§ã¡ããã¨ãããã°ããã®ãå¿ããªãããã«ããªãã¨ãããªãã®ã§ï¼ãã®è¾ºããã¾ãããæ¹æ³ãèãããï¼
è³æè¦ç´ããããªãæ å ±éã®å¤ãçºè¡¨ã ã£ãï¼
姿å¢ã®è©±
1æ¥ã®åå以ä¸åº§ã£ã¦ä½æ¥ãã¦ããã®ã«ï¼ãã®è¾ºãã®ãã¨æ®æ®µèãã¦ãªããªãã¨æã£ã¦åçããï¼ä¸å®æéãã¨ã«å§¿å¢ãå¤ãã¦ä½æ¥ããã®ãè¯ããããªã®ã§ä½ãèãããï¼ä»ã¯å®¶ã§ã¯æ¤ åã§ä½æ¥ï¼iMacï¼ã¨ãã¡ã½ãã¡ã§ä½æ¥ï¼MBAï¼ãããããé¸æè¢ããªãã®ã§ãã£ã¨è²ã 試ãã¦ã¿ããï¼
Go ã®ãããã¡ã¤ãªã³ã°ã¨æé©åã®è©±
Go éçºè ã®1人 Brad ã®çºè¡¨ã ã£ãï¼
ã»ã¨ãã©è³æã§ãªãã©ã¤ãã³ã¼ãã£ã³ã°ã§é²ããçºè¡¨ã§ï¼å°ããã¦ã§ãã¢ããªããããã¡ã¤ãªã³ã°åã£ã¦æé©åãã¦ãã話ã ã£ãï¼ã¨ã¦ããã³ããè¯ã㦠Go ã®ãã¼ã«ç¾¤ã®é åãããã説å¾åã§ä¼ãã£ã¦ããï¼ãã£ãããï¼
æé©åã¯è¨æ¸¬ããã¾ã§è¡ã£ã¦ã¯ãããªãã¨ããã®ã¯éåã¨ãã¦ããããã©ï¼ä»ã¾ã§ã©ã®è¨èªããããã¡ã¤ãªã³ã°ãåãã®ã¯ãã¼ãã«1æ¬ããæãã ã£ãã¨æãï¼Go ã®ãã¼ã«ã¯æ¨æºã§ãããè¯ãã§ãã¦ãã¦ï¼ããããã¾ãã¯ãªã¢ãã¦ãããã ã£ãï¼Go ã§å°ããã©ã¤ãã©ãªã1ã¤ã¤ããããã¨æã£ã¦ããã®ã§ï¼ããã§è©¦ãï¼
è¦ã¦ãªããã©æ°ã«ãªã£ããªã¹ãï¼ãã¨ã§è³æããï¼
- Effective ES6
- http2.0 æ代㮠web
- Perl6 ã®ä¸¦åã»å¹³è¡ããã°ã©ãã³ã°
çºè¡¨ä»¥å¤
åæé訳ããã£ã¡ãè¯ãã£ãï¼æè¡çãªåèªã¯ã¡ããã¨è¨³ãããã®ã¾ã¾ä¼ãã¦ããã¦ãã¦ï¼æ®æ®µè±èªã®ã»ãã·ã§ã³ã¯è´ãã®ã«ç²¾ä¸æ¯ã«ãªã£ã¦ãã¾ã£ã¦ãªããªãé ã«å ¥ã£ã¦ããªãã£ãã®ã§ï¼ããã¯ã¨ã¦ãå©ãã£ãï¼
ãã¨ç¡éã³ã¼ãã¼ãããã¼ãã³ã¼ãã¼ãµã¼ãã¿ãããªã®ãããªãã¡ããã¨æ·¹ãã¦ããã¦ãã¦ããããã£ãï¼ã³ã¼ãã¼ã¾ã¼ã³ã¨ã¦ãè¯ãåãããã¡ããã¦ãã¦ãããã§ã»ãã·ã§ã³èãããã£ãï¼ãã¼ã«Aã«é£²ã¿ç©ãæã¡è¾¼ããªãã£ãã®ãï¼ä»æ¹ãªãããã©ï¼ã¡ãã£ã¨æ®å¿µã ã£ãï¼
ã¢ã¤ã³ã³ããç¥ããªãã£ã人ã¨æ¨æ¶ã§ããã®ãè¯ãã£ãï¼
ã¾ã¨ã
ååå ã ã£ãããã©ãã£ã¡ã楽ãããï¼ããªãæ´å²ã®ããã¤ãã³ããããï¼ä»åã§çµãã£ã¦ãã¾ãã®ããã£ãããªãæ°ãããï¼YAPC::Asia 2015 è¯ãã£ãâ¦