プロジェクトの空気を読んで開発してくれるPerlのAIツールがほしい
by
Kenta Kobayashi
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
動くと思う⼈!✋
Slide 2
Slide 2 text
動きません! ※ 間接オブジェクト記法のせいです。解説しません!
Slide 3
Slide 3 text
AIも間違えてました!
Slide 4
Slide 4 text
+をつけたら動きます✌
Slide 5
Slide 5 text
最悪😡
Slide 6
Slide 6 text
use v5.42 しましょう!
Slide 7
Slide 7 text
Perlは初学者泣かせ ● AIも泣かせる ● 最近のPerlはこういったところを改善
Slide 8
Slide 8 text
オブジェクトの判定
Slide 9
Slide 9 text
例外処理
Slide 10
Slide 10 text
インデックス付きの反復処理
Slide 11
Slide 11 text
複数の値を同時に使う反復処理
Slide 12
Slide 12 text
関数の引数
Slide 13
Slide 13 text
名前付き引数
Slide 14
Slide 14 text
テストフレームワーク
Slide 15
Slide 15 text
おまじない
Slide 16
Slide 16 text
1; いらない!!
Slide 17
Slide 17 text
けれど、AIが空気読んでくれない!
Slide 18
Slide 18 text
しょうがない? ● 旧時代のコンテンツをたくさん学習しているから ● perldocに新旧の情報が両⽅書かれている
Slide 19
Slide 19 text
AI⽤にドキュメントを書く
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
ノウハウを書くのも⾯倒 ● 悪い意味で怠惰? ● AIに書かせればいいじゃん ● → うーん🧐 ● 新旧混ざると、Perlを理解していないとドキュメントの 良し悪し判断できない ● → Perlのエキスパートでないとダメ
Slide 22
Slide 22 text
本書いた!(無料) ● これで⼈間もAIも学べる! ● AIが利⽤しやすいように 切り刻み放題!
Slide 23
Slide 23 text
もうひとりの⾃分からのお便りが
Slide 24
Slide 24 text
「動くなら別に良いのでは?」 ● 「機能要件は満たしているんでしょ?」 ● 「新しい書き⽅にしてデグレしそう。古いままでも良 い?」 ● 「Perlの後⽅互換性なら動き続けそう」 ● 「AIが更新をするなら書き⽅はどうでも良いのでは?」
Slide 25
Slide 25 text
そうかもだけど、そうじゃない! ● 未来を運に任せたくない ● 統⼀されるに越したことない ○ TMTOWTDI BSCINABTE ● デグレが怖いなら、どうすれば良いか考えよう
Slide 26
Slide 26 text
TMTOWTDI BSCINABTE “There’s more than one way to do it (TMTOWTDI / Tim Toady). But sometimes consistency is not a bad thing either (BSCINABTE / Bicarbonate)” やり⽅は⼀つだけじゃない。けれど、⼀貫性を保つことは悪 くないこともある。 「 Perl 重曹」で検索!
Slide 27
Slide 27 text
Q. Try::Tiny と feature tryは共存できるの?
Slide 28
Slide 28 text
A. no feature を使おう スコープ単位で挙動を切り替えられて最⾼!
Slide 29
Slide 29 text
Q. Use of non-ASCII character って何?
Slide 30
Slide 30 text
A. 理想は use utf8
Slide 31
Slide 31 text
そもそも基本utf8していれば困らないのでは? ● それはそう ● → Perl::CriticにPR送った。マージされてほしい! ○ https://github.com/Perl-Critic/Perl-Critic/pull/1098
Slide 32
Slide 32 text
ここまでまとめ ● Perlには多様な書き⽅があり、AIも惑う ● 初学者泣かせな書き⽅の改善を取り⼊れるには? ● 情報が新旧混ぜこぜで混乱するなら... ● 参照先になる最近のPerlの本を書いた(無料) ● → これをAIに使ってもらいたい
Slide 33
Slide 33 text
AIは本をそのまま飲み込のは苦⼿? ● コンテキストウインドウを圧迫する ○ 未来はわからないけど ● 必要なタイミングで必要な情報だけ取得してほしい ● 確実に適⽤したい ○ この後のnikkieさんのLTで!
Slide 34
Slide 34 text
Hono CLIアプローチ ● 探す、 詳細、 テスト機能をCLIで提供 ○ CLIだと ■ どのAIツールにも組み込み易い👍 ■ token消費も少ない👍 ○ 中⾝は、Algoliaでの全⽂検索と、AI向けの公式ドキュメ ントの参照→参照先が必要
Slide 35
Slide 35 text
AIが参照しやすいように 情報をまとめるぞ!
Slide 36
Slide 36 text
perldoc-ai ● AI向けにperldocをまとめ直す ● 新旧の事情を混ぜない ● 開発中🚧
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
No content
Slide 39
Slide 39 text
No content
Slide 40
Slide 40 text
CPANモジュール to Claude Skill ● AI向けにCPANモジュールの使い⽅の要点をまとめ直す ● マイナーモジュールでも👍 ○ https://github.com/kfly8/claude-cpan-plugins
Slide 41
Slide 41 text
汎⽤知識の参照先ができて 👍
Slide 42
Slide 42 text
もっと空気を読んで開発したい ● cpanfileに宣⾔された依存モジュールを優先参照? ● 反例 「依存してても利⽤したくないモジュール」 ● cpanfileに優先度の⽬印をつけて、ドキュメント⽣成?
Slide 43
Slide 43 text
cpanfile CPANモジュール claude skill perldoc perldoc-ai summary 汎⽤知識 CLAUDE.md ⽣成 モジュールに利⽤優先度設定 ⾃分で書いた perlの本 LLMs.txt? プロジェクト固有知識
Slide 44
Slide 44 text
No content
Slide 45
Slide 45 text
もっともっと空気を読んで開発したい ● AIは既存のコードを真似する ○ 古いコードも真似する←勘弁してほしい ○ 最近の事情とかも加味したい ● etc ○ 仕様書、QAデータ、ユーザーインタビューなどなど⾷ わせたいとか⾊々あるけど
Slide 46
Slide 46 text
ここまでまとめ ● コーディングエージェントの精度を⾼めるために ● AIフレンドリーなドキュメントを整えたい ○ 公式ドキュメント、モジュール各種のサマリー ○ 検索、サマリー、詳細
Slide 47
Slide 47 text
1.5年後の未来は?
Slide 48
Slide 48 text
何もせずとも解決しかねない
Slide 49
Slide 49 text
けど!
Slide 50
Slide 50 text
こうだったろうどうだろう? あーなったら良いな!って ガチャガチャするのが楽しい!
Slide 51
Slide 51 text
やっていき!
Slide 52
Slide 52 text
プロジェクトの空気を読んで 開発してくれるPerlのAIツールがほしい YAPC::Fukuoka 2025
Slide 53
Slide 53 text
⾃⼰紹介 ● kobaken a.k.a @kfly8 ● 経歴 ○ YAPC::Hiroshima 2024 実⾏委員⻑ ○ YAYAPC::Hiroshima スポンサー ○ 元Japan Perl Association理事 ○ 元エンジニア組織開発責任者 ● 現在 ○ 個⼈事業主 ○ 9歳と1歳の娘の⽗