RubyKaigi 2025 ã«ç»å£ãã¾ãããåå è
ã¨ãã¦ã®ææ³ããRubyKaigi 伿ã«é¢ãããã¨ã¯ãã¾ã¨ãã¦ãã®è¨äºã«è¨ãã¦ããã¾ãã
rubykaigi.org
彿¥ã®çºè¡¨ã¹ã©ã¤ãã¯ä»¥ä¸ã§ãã
èªåã®çºè¡¨ã«ã¤ãã¦
æºå¡å¾¡ç¤¼ã ã£ãããã§ããããã¨ããããã¾ãããèªåã®ç»å£ãæ®ããã¨ã¯ã§ããªãã®ã§ @kenchan ã®ãã¤ã¼ãããæåã
ä»åã¯å»å¹´è©±ãããRuboCop: LSP and Prismãã®ç¶ç·¨çãªä½ç½®ä»ãã§ãããRuboCop ã LSP ã Prism ãåãããã¨ãèæ¯ã«ãRuboCop èªä½ã«ã©ã®ãããªãã¨ãè¡ãªã£ããç®çã®3ã¤ãåãä¸ãã¦ãã¾ãã
LSP 㨠Prism ã®ç¶ç·¨ã¨ããæå³ã§ã¯ãPlugin ã®è©±ã¯å°ãé¸ãã¦ããããªï¼ã¨æãã¤ã¤ãç¾æç¹ã§ããããã¦ã¼ã¶ã¼å½±é¿ãããã®ã¯ Plugin ãä¸çªã ããã¨æããã¼ãã«å«ãã¾ãããçµæã¨ãã¦è©±ã¯å¤§ãããªããæ¾å±±å°çã® Day 0 ã§è³å
ãªããããéã«ã¯ 1 æéè¿ãæãã£ã¦ããã®ã§ãããã¯å·»ãã§è©±ããã°ã¨è©±ãã¾ãããä»åã® Plugin 対å¿ã«é¢ããè¨è¨ã®ä¸å¿ã¯ãã®å³ã«åããã¤ããã§ããèå³ãããã°ã³ã¼ãã¨ç
§ããåããã¦ã¿ãã¨ãä½ãçºè¦ãããããããã¾ããã

ãããã端æãå½¢ã«ãªã£ãé¨åããã£ãããããã¼ã¯ã§çåãããã° X ã§ã®ã¡ã³ã·ã§ã³ã Rails/OSS ãããä¼ãªã©ã§ã質åãã ããã
ããã§ã¯ãæ¬ç·¨ã®ç¬¬3é¨ã¨ãã¦è©±ãã¦ãã AST ã®æ´å¯ã«é¢ãããã¼ã¯ã®ã¾ã¨ãã¨ãã¦è©±ãæãããã¨ãæ¸ãæ®ãã¦ããã¾ããå°ãªãã¨ãç¾ç¶ã«ããã RuboCop ãä¾åãã AST ã®ã¤ã³ã¿ãã§ã¼ã¹ã¯ãããã¾ã§ Parser gem ã® AST ã§ãããParser gem ãäºå®ä¸ã®æ©è½æ¡å¼µãªãã®ã¡ã³ããã³ã¹ãã§ã¼ãºã«å
¥ã£ãç¾å¨ã«ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã¨ãã¦ã® AST ã¯çãã¦ãã¾ããã¤ã¾ããParser gem ãã Prism ã«å®è£
ãå¤ãã£ã¦ãã¤ã³ã¿ãã§ã¼ã¹ã¯ç¶æãããã®ã§ããå®è£
ã«å¯¾ãã¦ã§ã¯ãªãã¤ã³ã¿ãã§ã¼ã¹ã«å¯¾ãã¦ããã°ã©ãã³ã°ããããã¨ãã GoF (Gang of Four) ããã¶ã¤ã³ãã¿ã¼ã³ã§ä¼ãã¦ãããã¨ã¯ãç¾ä»£ã«ããã¦ãéè¦ã¨ãããã®ã§ãããå®è£
ãããã¤ã³ã¿ãã§ã¼ã¹ã¯é·çãããã®ã§ API è¨è¨ãé¸å®éè¦ã
ãã®ããã§ãå¦çç³»éã¨ãã¼ã«ãã§ã¤ã³ãåä¸ã®ãã¼ãµã¼ã使ããã¨ã Universal Parser ã¨å®ç¾©ãããªãã°ãç¾ç¶ã® RuboCop 㯠Prism ã«ãã£ã¦ãããå®ç¾ãã¦ããç¶æ
ã䏿¹ã§ãAST 㯠Universal ã§ããã¹ããï¼ã¨ããã®ã¯ AST å©ç¨è
ã¨ãã¦ãé¢å¿ã®ããå½é¡ãæ¬ç·¨ã§ã¯ AST ã¯å©ç¨è
ãã¨ã«æ±ããæ½è±¡åº¦ãç°ãªãã®ã§ã¯ï¼ã¨ããã®ã以ä¸ã®å³ã

ãã®ãããã¯ãµã¤ãã«å¤æãé£ããé¨åãªã®ã§ãå¼ãç¶ãè¦æ¤è¨ã¨ãã£ãã¨ããã§ããå°ãªãã¨ã RuboCop ã® Parser gem AST ããã¾ã£ããæ§é ã®ç°ãªãæ§ææ¨ã§ãã Prism AST ã«ç½®ãæãã使¥ã¯ãããããããªã使¥ã ã¨æã£ã¦ãã¾ããAI ã¨ã¼ã¸ã§ã³ãã¨ããããã£ãçºå±ã®å
ãããªãã¨ã人éãç¡éã«è¡ã使¥ã¨ãã¦ã¯ã¤ããå²ã«å¯¾ä¾¡ãèãããããªãããªãã©ãã ããã
ã¾ããRubyKaigi 忥ã«ã¹ãããå£ãã¦ãã¾ã£ãããããã¾ã X ã Discord ãè¦ãã¦ããªãã£ãã®ã§ãããä»å¾ã® Parser gem ã«ã¤ãã¦ã®ç¶æ³ã¨ãã¦ã¯ãPrism translation layer 㯠Parser gem ã®å
é¨ã¯ã©ã¹ã¸ã®ä¾åããããããããã« RuboCop ã®ä¾åå
ãããããããããã¨ãããã¨ã¯ãªãã¨ãããåé¤ã§ãã¾ãããããããParser gem ãè§£ä½ãã¦å¿
è¦ãªã¢ã¸ã¥ã¼ã«ã驿驿ã«å¼ã£è¶ãããã¨ãããã¨ã¯ããããããã¾ããããç¹ã«è°è«ãé²ãã§ããããã§ã¯ãªãã®ã¨å«ç·ã®èª²é¡ã§ã¯ãªãããã追ã
å¿
è¦ãããã°æ¤è¨ãããã¦ããã¨æãã¾ã (ä½è«ã§ãã Prism translation layer ãã parse.y ã¸ã®ä¾åã¯ç¾æç¹ã§ãããã¾ãã) ã
ã²ã¨ã¾ããRuboCop ã®ããã¯ã¨ã³ãã®ããã©ã«ããã¼ãµã¼ã§ã¦ã¼ã¶ã¼ã®è£ã§åãã¦ããã®ã¯ãRuby 3.3 ã¾ã§ã¯ Parser gem ã§ãããRuby 3.4 ã§ã¯ RuboCop 1.74 以åã®ããã©ã«ã㯠Parser gem ã§ãRuboCop 1.75 以éã®ããã©ã«ã㯠Prism translation layer ã¨ãªã£ã¦ãã¾ããå°ãªãã¨ã Parser gem ã¯å®è³ªéçºãæ¢ã¾ã£ããããä»å¾ã¯ Prism translation layer ã§è§£æããã¦ããã§ãããã

çºè¡¨å¾ã«ã¯ãRuboCop ã³ã¢ãã¼ã ã¡ã³ãã¼ã§ RuboCop RSpec ã®ãããã¡ã³ããã¼ããã¦ãã Benjamin Quorning ã¨ãä¼ããã¨ããã®ãä»åã

ã³ã¢ãã¼ã ã ã¨ãRubyKaigi 2018 ã§ Bozhidar Batsov ã¨ä¼ã£ã¦ãæè¿ã 㨠RubyConf Taiwan 2023 ããã®ä»ä½åº¦ã Ted Johansson ã¨ä¼ã£ãããã¾ãããããããã£ãã«ã³ãã¡ã¬ã³ã¹ã¯ GitHub ã§ã®ã¿ç¥ã£ã¦ããã¨ããéçºè
ããªã¢ã«ã§ç¥ããã®ã¯é¢ç½ãã¨ãããBenjamin 㯠pocke ããã¨ä¼ãããã£ãã¿ããã§ç¹ãããã£ãã®ã§ããã1,500 人ã®ã«ã³ãã¡ã¬ã³ã¹ã ã¨ãªããªãé£ããã1,500 人æ¬å½ã«ãããã
RuboCop Plugin, RuboCop åã Ruby LSP Add-on, ããã¯ã¨ã³ããã¼ãµã¼ã¸ã®ä»å¾ã®å±æ
Plugin ã«ã¤ãã¦ãShopify ã® ufuk ãã rubocop-sorbet ã§ãã©ã°ã¤ã³åã«ãã lint_roller ä¾åã§ã¡ãã£ã¨å°ã£ã¦ãããã¨ããããããªç¸è«ããã£ãããã©ãæ®å¿µãªããç§ã®è±èªåã§ã¯åé¡èªèã¯æ¦ãããã£ããã®ã®ãããã¯æ¬å½ã«åé¡ã ãããï¼ã¨ãã£ãã¨ããã§ããã¾ãçãããã¨ãã§ããªãã£ããªãã¨ããã¨ããããã ãrubocop-sorbet ã¨ãã¦ã®åé¡ã ã¨æãã®ã§ãRuboCop ã¨ãã¦ãããæ©ã«ãã©ã¹ãã£ãã¯ãªä½ãã¨ããã®ã¯ä»ã®æ®µéã ã¨ãªãããã
Ruby LSP Add-on ã«ã¤ãã¦ã¯ãä½ãè¡ãªã£ã¦ããã¨ããã¨ãã¾ãã¯çµã¿è¾¼ã¿ LSP ã®ã¯ã©ã¤ã¢ã³ãã¨ãªã vscode-rubocop ã®æ¹ã§ textDocument/codeAction
対å¿ãããå¾ã«ãçµã¿è¾¼ã¿è¨èªãµã¼ãã¼å´ã®æ¹ã§ Ruby LSP ã«ãããªãä¸è¶³æ©è½ãè¶³ãã¨ãããã¨ãè¡ãããªã¨ãã£ãã¨ããã以ä¸ã®å³ã§è¡¨ãããã«ãRuby LSP Add-on ã¸ã®ã¨ã³ã¸ã³å
±éåã«åããåºç¤ã¯ã§ããã®ã§ãè¯ãæãã«æ©è½é¢ãçµ±åã§ããã¨è¯ãããã

ããã¯ã¨ã³ããã¼ãµã¼ã®æ¹ã¯ãPrism ãªãã³ã« Prism translation layer ã¸ã®ãã°å ±åããããã¨ãããã®ã§ããã®å¯¾å¿ãããªã¢ã¼ã¸ãªããã¯å¹³å¸¸é転ã®ç¯å²å
ã§è¦ãã¤ããã§ãã
ãã ããããã¯åºæ¬ç·ã¯ã²ã¨æ®µè½ãã¦ãããã®ã¨æãã¦ãããç¾æç¹ã§ã®å人çãªé¢å¿äºã¯ LLM å¨è¾ºã®é å㨠Ruby ã®ããã ã«ããã®ã§ãæ°ãåããæã«ã¨ããæãã§è¡ãã¨æãã¾ãããããã£ã OSS æ´»åã¯è¶£å³ãªã®ã§ã軸ãæã¡ã¤ã¤æ°ã®èµ´ãã¾ã¾ã
å°è±¡ã«æ®ã£ãç»å£ãããã¤ã
èããã»ãã·ã§ã³ããã¶ã¯æ¸ããªãã®ã§ãããã²ã¨ã¾ãçãåãé¨åã«ã¤ãã¦æ¸ãã¾ãã
ima1zumi ããã®ãã¼ãã¼ã
ima1zumi ããã®ãã¼ãã¼ãã¯ã¨ã¦ãè¯ãã¦ãThe Tap ãããã§ããæ¬äººã«è©±ããããã«ãããããã¯ãã㦠ima1zumi ãããèªèããã®ã¯å®¶æã®çµµæåã®ä¸å®¶é¢æ£ã®ãã¤ã¼ãã§ãããããããã¨ãã人ããããªãã¨ããã®ãå§ã¾ãããã®å¾ãååã®é ã«ã¯æåã³ã¼ããæåã¨ã³ã³ã¼ãã£ã³ã°å¥½ãã¨ã㦠Ruby ã«ã©ããªãã¨ãã§ãããã¨ããã®ãèãã¦ããã®ãè¦ã¦ãã¦ãããããããã£ã Rubyist ã¨ãã¦ã® ima1zumi ããã®é大æã¨ãã£ã話ã§å¿ã«é¿ãè¯ããã¼ãã¼ãã§ããã
ç§èªèº«ãè·æ¥ããã°ã©ãã¼ã¨ãã¦ãã£ãªã¢ã®ã¯ãã¾ãã« EBCDIC ã«è§¦ãããã¨ã«ãªã£ã¦ãã¾ã£ã¦ããçµæ´ãããã®ã§ãããããã§ã¨ã³ã³ã¼ãã£ã³ã°ã«å¯¾ãã¦ããæ·±ãé¢å¿ã楽ãããæã¦ããã©ããã§äººé¡ã¯å¥ãéããããã ãªã (彿ã ã¨ãªãã§ ASCII ãããªãã ã¨ããä»äºã®ç¯å²ã§æ¢ã¾ã£ã¦ããã®ãæãåºã) ãæ¬¡åä½ã«ãæå¾
ãã¦ãã¾ãï¼
TRICK ã¯ã©ãããããã£ãããã©ãå人çã«ä¸çªæåããã®ã¯ mame ããã®ãgit log --oneline
ã使ã£ã TRICK è¸ãgit
㯠365 æ¥ä½¿ãããã§ããããªæ¯æ¥ä½¿ã£ã¦ãã馴æã¿ã®ãã¼ã«ã¨çµã¿åãããå®è¡æ¹æ³ã¨ãããèãã°ãããããã©ããããã®çºæ³ããããã¦ãããã天æããããã¨ãããã®ãæ¬å½ã«ãããã£ãã
人é¡ã«ã¯2種é¡ããã人é¡ã¨äººé¡ã§ãªããã®ãã¨ãããã¨ãæ¹ãã¦èªèãã¾ããããTRICK ã®äººãã¡ã¯æ¬å½ã«å¾è
ã§ããã
Lightning Talks
LT ã¯å¤åå
ã®å¤§å
輩ã§ãã忥çã® kkd ã LT ã¨ã¯ï¼ãªãé
é¼ï¼ã¨ãã話ããããã®ãè¯ãã£ãããã®å¾ã® LT ã¨ãã¦ã¯ãydah ããã makicamel ããã®çºè¡¨ã¯ç¹ã«è¯ãã£ããmakicamel ããã¯å人çã«ã¯ä»å¹´éå¬ãããæ±äº¬Rubyä¼è°12ã® (åå¤ç¥è¾¼ã¿ã§ã®) ãã¹ããã¼ã«ã¼ã§ããããä»åããã¼ã¯ã®ã»ã³ã¹ãç´ æ´ãããã¦ãããã§ããã
kkd ã®ãã¼ã¯ã«ã¤ãã¦ããããï¼ãã¨æã£ãã®ã¯ kkd èªèº«ããã¾ã Rubyist ã®å¤ã®äººã£ã½ãæãã§è©±ãã¦ããã®ãä»äººè¡åã ãªãã¨ããæããããç¹ã§ããããããè¨ããã®ã¯æ°å°ãªãã¨æãã®ã§ãããã®æ¥è¨ã«æ¸ãæ®ãã¦ããããã®ã§ãããç§ãç¾è·ã«å
¥ç¤¾ãã 2004å¹´11æã®ç¤¾å¡æ
è¡ã§ kkd ã¨åºä¼ã Ruby ã®è©±ã§çãä¸ããã2005å¹´4æ1æ¥ã«çºè¡ãããå¤åå
ã®ã¡ã«ãã¬ã«ããNewsãRubyãå¶ç´è¨èªã«æ£å¼æ¡ç¨ã¸ãã¨ããè¨äºãæ¸ãã¦ãããããã«ãRuby ã¨é¢ãããé·ãå¤åã® Rubyist ã§ãã
objectclub.jp
ãã®è¨äºã¯ 4æ1æ¥çºè¡ã¨ãããã¨ã§ã¨ã¤ããªã«ãã¼ã«ãªããã§ãããä»å Matz ã Ruby 4.0 ã®ãªãªã¼ã¹ã«ã¤ã㦠2025å¹´4æ1æ¥ã®ã¨ã¤ããªã«ãã¼ã«ã«ãã¤ã¼ãããã20 å¹´è¶ãã®ã¨ã¤ããªã«ãã¼ã«ç¹ããã§ LT ã®å£ä¸ã§é
é¼ãå©ãã¨ãå人çã«ã¨ã¢ãã£ããRubyKaigi ãããã
sue445 ãã
sue445 ããã®è©±ã¯ãRuby ã§ Go æ¡å¼µã§ããããã«ããããã«ãæ³åãã¦ãããããã¯ããã«å¤ãã®ãã¨ãè¡ã£ã¦ãããããã®å¯ç£ç©ãã©ã¤ãã©ãªåããããªã©ãé·ãå¹´æã§ç©ã¿éãã¦ããæãã話ã§ãããã§ãããã²ã¨ã¤ã®ç®æ¨ãç«ã¦ã¦ããã¾ããããã¨ãããã°ãªããã¨ãããã®ã¯ãããªã®ã§ããããã¡ãã¨æéã使ã£ã¦ç®æ¨ã«åãã£ã¦åãçµã¿ç¶ãã¦ããã®ããsue445 ããã®ãã£ã©ã¯ã¿ã¼ãããã¾ã£ã¦ãRubyKaigi ã¯è¶£å³ãæ¬æ°ã§çªãè©°ãã¦ãã人ãã¡ã ãªãã¨æãã¾ããã
ãºããã
ãºãããã®è©±ã¯ãPrism ãåºã¦ããã¨ããããããèªå以å¤ã§ã Prism ã®ä½¿ãåæã©ãï¼ã¿ãããªè©±ã¨ãã¦ããã¦ããç¹ã¨ãã¦è峿·±ãèãã¦ãã¾ããããã®å¾ã«ãããºãããã¨è©±ãããããã®ã§ãããLinter / Formatter ã¯ã²ã¨åºåãã¤ãããé常ã¯å¦¥å½ãªã·ã³ã¿ãã¯ã¹ã®ã³ã¼ããç¸æã«ã§ãããã®ã§ãããIRB ã®ãã㪠REPL ã ã¨å
¥åä¸ã®ä¸å®å
¨ãªã³ã¼ããç¸æåãå¿
è¦ãããããã®ãããã®é£æåº¦ã¯ä¸ã§ã¯ï¼ã¨æ¹ãã¦èãã¦ãã¦æãã¾ãããå¤è§çãªèå¯ã®ä¸ã«ã©ããã¶ã¤ã³ãããã¨è¯ããã¨ããæèãæ¹ãã¦åèã«ãªãã¾ããããºãããã¯æ¬å½ã«ãããã²ã¨ã
The Parser gangs
yahonda ããã®è¨èãåããã°ãParser gangs (éåãããydah ãããjunk0612) ã¯å»å¹´ããããLR ãã¼ãµã¼ã«ãã£ã¦ Ruby ã®ä¸çãã©ã®ããã«ãããããè¦ãã¦ãããã¼ã¯ã ã£ãã¨æãã¾ããå人çã«ã¯ ydah ããã®çºè¡¨ã§æå¾ã«åºã¦ãããPrism äºæã®é¨åã«ã¤ãã¦ãããã¤ãã«ããã«æãåãã®ããã¨ãã£ãã¨ããã
éåããã¨ã¯ä»åãã¾ã話ããªãã£ãæ°ãããã®ã§ããã®ããã㯠SmartHR ããã®äºå¾åå¼·ä¼ãããã§è©±ãããããããï¼
ä»å¾ã® 362 æ¥
æè¿ã¯ LLM ãé¢å¿äºã¨ãã¦é«ããªã£ã¦ããã¨ãããæããã㦠Matz ã®ãã¼ãã¼ãã§ã AI ãåãä¸ãããã¦ãããã¨ããããå¼ãç¶ã AI æä»£ã® Ruby ã®å¨ãæ¹ã¿ãããªãã®ã¯ã²ã¨ã¤ã®ãã¼ãã¨ãã¦è¦ã¦ããããããã¾ãããLLM ã® Fine-Turning ã¨ãªã㨠Python ã¨ãã話ã«ãªãæ°ãããã®ã§ãããèªåã®çºè¡¨ä¸ã§å°ãã ã触ãã RAG, LangChain, MCP ãããããã¼ã¯ã¼ãã¨ããã¢ããªã±ã¼ã·ã§ã³ãã©ã¤ãã©ãªã¨ LLM ã®éã¨ãããããã¯ã¾ã Ruby ã¨ãã¦ããã³ãã£ã¢ã«è¿ãé¨åãããã®ã§ã¯ï¼ã¨è¦ã¦ãã¦ç ç©¶ä¸ã次åã«åãã¦ã¯ããã®ãããããããããããªããããã以å¤ãããããªãããããã«ãã¦ããã°ãã LLM ã«ã¤ãã¦ç ç©¶ããããªã¨ããã¨ããã§ããæ¬¡åä½ã«ãæå¾
ãã ããã
å»ä¸ä¼è°ã The Tap ãã©ãã¯ãªã©ã§å¾ãããä¼è©±ãªã©
ä¼å°¾æ¨ãããæ±æ¸¡ããã¨ãã£ã10年以ä¸ã¶ãã«ãä¹
ãã¶ãã§ãã®ãæ¨æ¶ãã§ããããä»ååã㦠RubyKaigi ã«åå ããã¨ãã Rubyist ã¨è©±ãããã¨ãæ°æ§ã®æä»£ã楽ãããæãã®ã¤ãã³ãã§ããã
ä¼å ´ã®å»ä¸ãæ©ãã¦ããããyouchan ã gibier (ã¸ãã¨) ã WASM 2 対å¿ã§ gibier2 (ã¸ãã¨2) ã«ãªã£ãã¨ãå®ã¯ã¸ãã¨ã®ã´ãããã¡ã¼ã¶ã¼ (å½åè
) ã®ç§ã«æãã¦ããã¾ãããã©ãã®å±
é
å±ã ã£ããã¯å¿ãã¦ãã¾ã£ãã®ã§ãããæ¬å½ã«é
ã®è´ã§é è¤å
輩㮠Rabbit ãæåãããã¬ã¼ã³ãã¼ã·ã§ã³ãã¼ã«ãç®æãã¨ãã話é¡ããçã¾ããååããå¾å¹´ã® RubyKaigi ã«ã¸ãã¨2ã¨ãã¦ç»å ´ããããã¾ããã®å±éã§ãRubyist å士ã®ä¼è©±ã¯ã©ãã§ã©ãæªæ¥ã® RubyKaigi ã«ã¤ãªãããåãããªãã®ã§ãRuby ã®ãã¼ãã¢ããã§ã¯è²ã
ãªäººã¨è²ã
ã¨è©±ãã¦ã¿ãã¨é¢ç½ãã¨æ¹ãã¦æãã¾ããã
髿©ä¼é·ã¨ã¯ãThe Rails Doctrine ã®æ¥æ¬èªè¨³ ã upstream ã«éãã®ã¯ã©ããã¨ãã話ããããã¨ãã§ãã¾ãããé·ãã話ããã¨æã£ã¦å¤±å¿µãã¦ãããã¨ã ã£ãã®ã§ãç¶æ³ã伺ãã¦è¯ãã£ãã§ãã
ãã«ãããã¯ã®å³¶ç°ããã¨ã¯ããProgramming Ruby 3.3 (5th Edition)ãã®ç¿»è¨³ããã¸ã§ã¯ã ã¸ã®ã¹ãã³ãµã¼ã«ã¤ãã¦è©±ã伺ãã¾ããããã®ç¿»è¨³ããã¸ã§ã¯ã㯠Ruby ã³ãã¥ããã£ã¨ãã¦ã¨ã¦ãæç¾©æ·±ããã®ã ã¨æãã¾ãã®ã§ãèå³ã®ããæ¹ã¯ä¸èªã®ããããã²å³¶ç°ããã«ã³ã³ã¿ã¯ããåã£ã¦ã¿ãã¨è¯ãã¨æãã¾ãã
Day 3 ã®å人ç Extra Track ã§ãã The Tap ã§ãè¤æµªãã (makenowjust) ã¨åãã¦ã話ãã§ããã以åé ãã¦ãã RuboCop ã¸ã®åé¡ã®ããæ£è¦è¡¨ç¾ãæ¤åºãã cop ã®ææ¡ã«ã¤ãã¦ãbad ã±ã¼ã¹ãæ¤ç¥ãã¦ããgood ã±ã¼ã¹ã¸ã®ç´ãæ¹ãã¦ã¼ã¶ã¼ã¯ããããªãããã§ãRuboCop ã§æ¤ç¥ãã¦ãç¡å¹åããã¨ãããã¨ã«ãªãããã§ãå®ç¨çã«é£ãããã¨ããç¹ã話ããããã¦ãããè¤æµªããã¨ãã¦ããã®ãããã¯ããã¥ã¡ã³ãåãä½ãã§ä¼ããããã¨è¯ãã®ã ãããã¨ã課é¡ã«ã¤ãã¦å
±æã§ãã¾ããã
ãæ¨æ¶ã質åãæããç¹
æ¨æ¶ãæããã®ã¯ãã¾ã Matz ã¸ã®éæ¦ã¸ã®ããã§ã¨ããããã¾ããä¼ããããªãã£ããã¨ãå¤åå
ã§é
å¸ãã¦ãããRuby on Timelineãã«ã¯ãMatz ã®èªçãã¨ããã«ã¼ããããããã®è¨±è«¾ç¢ºèªã junk0612 ããè¡ã£ã¦ããã£ãã®ã§ãããäºã¤è¿äºã§ã快諾ããã ããã¨èãã¦ãã¾ãããã®ã礼ã諸ã
ã®æè¬ãä¼ãæãããªãã¨ãã¾ã sylph01 ãã㯠RubyConf Taiwan ãä¸çªè©±ãã¿ã¤ãã³ã°ã¨ãã䏿è°ãªä»²ã§ãããä»åã®å°å
éå¬ã«ããã£ã¦ã®æ¬æ°åº¦ã¸ã®æè¬ãä¼ãæãããªãã
kenchan ã mcp-rb ã«ããããéã£ã¦ããã®ãè¦ã¦ããã®ã§ããã®èæ¯ã«ãã LLM ã®è©±ããã¦ã¿ãããªãã¨æã£ã¦ããã®ã«ããã£ããå¿ããã¦ããã®ã ã£ããkenchan ã¨ã¯ RubyKaigi 以å¤ã§ãä¼ããã¨æãã°ä¼ããã¨æãã®ã§ãæ©ä¼ãããã°ã©ããã§è©±ãããã¨ããã
å¤åå
ã®æ°¸åã·ã¹ãã ããã¸ã¡ã³ãã¨ãã¦ã®æ´»åãããããã
å¤åå
ã®ããã«ãã£ã¨ãã¦é
å¸ãã¦ãããRuby on Timelineãã®ããã±ã¼ã¸è£ã«ãããã¼ã¸ã§ã³ v69.83.77
ã«ã¯å®ã¯æå³ãããã¾ããmame ããã¯ãã®ãã¼ã¸ã§ã³ã«ã¤ãã¦ãã¼ãã³ãã§10ç§ããããè§£ããã¾ãããmame Ruby ã¯ãã¯ãä¸ç屿ã®å¦çç³»ãåããé è³ã§ãæ
ããããªãã£ãã§ããã»ãã¨ãã«ããããèå³ã®ããæ¹ã¯ v69.83.77
ã¨ãããã¼ã¸ã§ã³ã¨ãã仿ãã«ã¤ãã¦ãèãã¦ã¿ã¦ãã ããã
ä»åå
¥æã§ããªãã£ãæ¹ã¯ãå¥ã®æ©ä¼ã«é
å¸ããäºå®ãããã¾ãã®ã§ãã¾ããã¡ãã§ãä¼ããã¾ãããã
ESM Drinkup ã§ã¯ãfukui.rb ã® taketo ãã (é訳ãããã¨ããããã¾ãï¼) ããRuboCop LTS ãä½ã£ãããã¨ãã pboling ãç´¹ä»ãã¦ããã¦è©±ãèãã¦ãã¾ãããRuboCop ã«ã¯ã©ã³ã¿ã¤ã ãã¼ã¸ã§ã³ (2.7 以ä¸ããµãã¼ã) ã¨è§£æãã¼ã¸ã§ã³ (2.0 以ä¸ããµãã¼ã) ã¨ãã2種é¡ã®ãã¼ã¸ã§ã³ã®æ¦å¿µããããPrism ã Ruby 3.3 以ä¸ãè§£æãã¼ã¸ã§ã³ã¨ãããã¨ãããå¤ãè§£æãã¼ã¸ã§ã³ããã¤ããããããããã¨ãã声ãèããã¨ãããã¾ããä»åã®ã¦ã¼ã¹ã±ã¼ã¹ãèãã¦ãç¾ç¶ã§ã¯ãããªã¡ã³ããã³ã¹ã大å¤ãªããã§ã¯ãªãã®ã§ãå¤ãè§£æãã¼ã¸ã§ã³ã®ãµãã¼ãã¯ç¶æããæ¹ãããããªãã¨æ¹ãã¦æãã¾ããã
ä½è«ã§ãããPrism ã® translation layer 㯠Parser gem ã® Builder ãªã©ã«ä¾åãã¦ãã¦ãRuby 3.2 以ä¸ããããããã¦ãç¾ç¶ã® Parser gem ä¾åã¯ãã®ã¾ã¾ã§ã¯åé¤ã§ãã¾ãããããã¯æéã®é½åã§èª¬æã岿ãã¦ããã¨æãã®ã§ãããä»åã®ç§ã®ç»å£ã§ã¯ä»¥ä¸ã®å³ã§ Prism translation layer ã Parser gem ã«ä¾åãã¦ããé¢ä¿ã示ãã¦ãã¾ããã

ã§ãé説çã« Ruby 2.0 ã¾ã§ããµãã¼ããããã¨æãã¨ãParser gem 㯠Prism ã®ãã¨ãç¥ããªã (ä¾åãã¦ããªã) ãããRuboCop ã Parser gem AST ãã Prism native AST ã«å¤ãããã¨ã¯ã§ãã¾ãããã¤ã¾ã Ruby 2.0 ã¾ã§ã®è§£æãµãã¼ããç¶æããã¨ããæ¹éã§ããã°ãæ¹ã㦠Parser gem AST ã Prism native AST ã«ç½®ãæããæå³ã¨ã¯ï¼ã«ãªãã®ã§ãããææ³è¨äºãæ¸ãã¨ãããããã¨æ´çããã¦ãã¾ããã
kkd ã hidenba ã¨ãã£ã XPJUG ã£ã½ãçµã¿åããã§ã®ä¼è©±ãã§ãã¦è¯ãã£ãã§ãã

ãããã«
Matz ã®ãã¼ãã¼ããå°è±¡çã§ãä»å¾ã®ãä»äºã«åããã話ãçã«ããçæ AI 㨠Ruby ã¨ãããããã¯å人çã«ã¡ããã©ä¸çªããããªãã¼ãã§ãããDD4D ã®å¸°ãã«ä½äººãã¨è©±ãã¦ããã®ã§ãããçæ AI æä»£ã® Ruby ã®è¨èªãã¶ã¤ã³ãã©ããªã£ã¦ããããè¨èªãã¶ã¤ãã¼ã®ã¾ã¤ãã¨ããã®åããæ¥½ãã¿ã«ãã¦ãã¾ãã
ã¾ãããã¢ãã¼ The Tap ã«ã¯æ»å¨ä¸4æ³5æ¥ã®ãã¡ã®3æ¥éããé
ãæéã¾ã§ãããã¨ããããã¾ãããéãããæéã®æ¬ç·¨ã§ã¯è©±ããªãã£ãå»ä¸ããã¯ãã¼ã¯ãããããå¤ã話ããæ©ä¼ã«ãªãã¾ããã
æ¥å¹´ã® RubyKaigi 2026 ãæ¥½ãã¿ã§ãããªã¼ã¬ãã¤ã¶ã¼ã®ã¿ãªãããã¹ã¿ããã®ã¿ãªããããããã¨ããããã¾ããï¼

æå¾ã«ä»é²ã¨ãã¦ãã¢ã¸ã¥ã¼ã«æ§ãã¤ã³ã¿ãã§ã¼ã¹ã«ã¤ãã¦ã¯ããã®ãããã®æ¸ç±ãå
ã«ããå°ã話ãå
¥ãããã£ãã¨ããä»åã®åèæ¸ç± (?) ã§ããå°ºã®é½åã§ã»ã¨ãã©å
¥ã£ã¦ããªããã®ã®ãæºæµã辿ãã¨ãã®å½±é¿ãåãã¦ããã¨ããåèã¾ã§ã«ããªãã¸ã§ã¯ãæåã¹ã¯ãªããè¨èª Ruby ã§ããããã