Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Perlの生きのこり - YAPC::Fukuoka 2025
Search
Kenta Kobayashi
November 15, 2025
Technology
0
95
Perlの生きのこり - YAPC::Fukuoka 2025
Kenta Kobayashi
November 15, 2025
Tweet
Share
More Decks by Kenta Kobayashi
See All by Kenta Kobayashi
プロジェクトの空気を読んで開発してくれるPerlのAIツールがほしい
kfly8
2
100
Perlの生きのこり - エンジニアがこの先生きのこるためのカンファレンス2025
kfly8
4
2.7k
Tシャツに書かれたコードを読む
kfly8
0
1.4k
Introduce Sub::Meta
kfly8
0
78
研修はイベントでなくコミュニティ作り
kfly8
0
2.1k
明日からできる新人のオンボーディングガイド
kfly8
0
850
メンター成長のためのふりかえり会
kfly8
0
1.3k
Interfaces in Perl5 at The Perl Conference 2019 in Pittsburgh
kfly8
0
3.1k
経験から効率よく学習する
kfly8
0
450
Other Decks in Technology
See All in Technology
グローバルなコンパウンド戦略を支えるモジュラーモノリスとドメイン駆動設計
kawauso
1
860
仕様駆動 x Codex で 超効率開発
ismk
2
1.5k
生成AIではじめるテスト駆動開発
puku0x
0
120
セマンティックHTMLによる アクセシビリティ品質向上の基礎
zozotech
PRO
0
110
バフェットコード株式会社 開発チームカルチャーデック
shoe116
1
110
Kubernetesと共にふりかえる! エンタープライズシステムのインフラ設計・テストの進め方大全
daitak
0
330
Devoxx Morocco 2025 - Like Spring but faster: The new Java Jedi
edeandrea
PRO
0
100
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
4
1.4k
ある編集者のこれまでとこれから —— 開発者コミュニティと歩んだ四半世紀
inao
5
3.3k
技術広報のOKRで生み出す 開発組織への価値 〜 カンファレンス協賛を通して育む学びの文化 〜 / Creating Value for Development Organisations Through Technical Communications OKRs — Nurturing a Culture of Learning Through Conference Sponsorship —
pauli
5
390
Dart and Flutter MCP serverで実現する AI駆動E2Eテスト整備と自動操作
yukisakai1225
0
560
"おまじない"はもう卒業! デバッガで探るSpring Bootの裏側と「学び方」の学び方
takeuchi_132917
0
180
Featured
See All Featured
Music & Morning Musume
bryan
46
6.9k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Pragmatic Product Professional
lauravandoore
36
7k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Site-Speed That Sticks
csswizardry
13
960
Transcript
Perlの⽣きのこり YAPC::Fukuoka 2025 1
本発表の楽しみ⽅ 「懐かしい〜」「そんなことがあったのか〜」とコメント。 各時代で変化した事よりも、そのキッカケや背景に注⽬ 2
キリ番Get お題は BBS 3
令和最新Perl製BBSはコチラ👇 https://yapc-fukuoka-bbs.kobaken.co 記念カキコ! 4
⾃⼰紹介 • わいとん - @ytnobody • 最近のようす ◦ YAPC::Hakodate 2024
実⾏委員⻑ ◦ YAYAPC::Hiroshima 2024 司会 ◦ NT函館にて某仮装⼤賞の審査員⽤ボタンや 某⽶国横断クイズ番組のオマージュ品を展⽰ • 普段のようす ◦ 合同会社Y.pmの代表。4期⽬、やってます。 ◦ バックエンドエンジニアもやってます。 5
⾃⼰紹介 • kobaken a.k.a @kfly8 • 経歴 ◦ YAPC::Hiroshima 2024
実⾏委員⻑ ◦ YAYAPC::Hiroshima スポンサー ◦ 元Japan Perl Association理事 ◦ 元エンジニア組織開発責任者 • 現在 ◦ 個⼈事業主 ◦ 9歳と1歳の娘の⽗ 6
1990年頃 CGI 7
1990年頃 ‒ CGI • リクエスト受け、プロセス起動 ◦ 必要な時だけリソースを利⽤ ◦ ある種、今どき ◦
AWS Lambda, Cloudflare Workers • デプロイ簡単 ◦ ftpでファイルを置く ◦ 実⾏権限つける • すごく⼿軽 8
書籍もたくさん。⼤流⾏。 9
2000年初期 mod_perl 10
CGI リクエスト時にプロセス起動 複雑な要件🙅 mod_perl プロセスを常駐化しリクエストを待つ 複雑な要件🙆 11
Webアプリケーションフレームワークが続々と 課題 • 複雑なルーティング • データベース処理 • テンプレート • 認証認可
• Catalyst • Jifty • Ruby on Rails (2005) 12
Webサーバーも続々と‧‧ • Apache • lighttpd • nginx • … 13
乱⽴するフレームワークとサーバー Catalyst CGI::Application フレームワーク Jifty Mojo Apache lighttpd nginx HTTP::Server::Simple
サーバー 14
2009年ころ PSGI/Plack 15
PSGI/Plack • PSGI=Perl Web Server Gateway Interface • Plack =
PSGIの実装 • WSGI (Python )/Rack (Ruby) の後発 • フレームワーク、サーバーが PSGIを満たせば、⼊れ替え可 • →秩序を保ち、多様性を持てる Catalyst CGI::Application フレームワーク Jifty Mojo Apache lighttpd nginx HTTP::Server::Simple サーバー PSGI 16
現代っぽくなった 17
時は遡り、2005年 18
プロダクトはより複雑に。⾔葉にならない問題。 「⾃分の環境だと再現しない…」 「デプロイしたら、壊れた…」 「この処理どうなってるの?」 「この機能使いにくいらしい…」 19
問題の発⾒。⾔語化。 • 環境構築 → 依存モジュール管理、コンテナ化 • 未然の問題検知 → ⾃動テスト、CI、静的解析 •
プロダクトの複雑化 →コードの責務分割、宣⾔的に ◦ ⇒SOLID原則、OOP、関数型ドメインモデリング • ユーザー体験、インタフェース設計、アクセシビリティ • ⇒プログラミング⾔語限らず今も私達が向き合ってる問題 20
「あの時に戻ったら何を開発するか?」 21
2011年初頭 Carton 22
Carton • 依存モジュールの管理 ◦ 同⼀環境作りやすく ◦ バージョンが不意に変わって壊れない • 多⾔語なら ◦
Bundler(Ruby), Go Modules(Go), Cargo (Rust) ◦ 今は⾔語標準でつく時代 • 今でこそ、当たり前 23
@miyagawa • ロックスター • 今の当たり前を作ってる • カッコイイ 24
感想‧質問どうぞ👇 https://yapc-fukuoka-bbs.kobaken.co キリ番Get 前半パートおしまい 25
複雑化するプロダクトに Perlはどう⽴ち向かってる? 26
• プログラミング⾔語⾃⾝も変化する ◦ 例:ES5の”use strict” ◦ 例:ES6のclass構⽂導⼊。プロトタイプが隠蔽 • プラクティスも変化する ◦
var → let, const ◦ 例:可変な変数より不変な変数 • 「変化のための痛みは⽌む得ないのか?」 27
複雑化するプロダクトにPerlはどう⽴ち向かってる? ⾼い後⽅互換性を保ちつつ、変化できる柔軟性 “Historically, we've held ourselves to a far higher
standard than backward-compatibility -- bugward-compatibility.” 28
Perlの変化例: オブジェクト指向プログラミング Perlは、OOPをあとづけ。 ⼤昔:リファレンスとパッケージを紐づける bless→素朴だが、多重継承, 中⾝を触れる 昔:MooseなどのMeta Object Programmingに対応したOOPライブラリを 活⽤
今:builtin class。単⼀継承, 中⾝を触れら れないなど現代のOOPに 29
令和最新Perlの変化の背景 • builtin class、try/catch、isaなど続々拡張。 • その背景は、keyword plugin ◦ コンパイルフェーズでキーワードにフック。OPツリーを書き換える術 ◦
PEVANS⽒らによる v5.12 (2010年)での仕込み ◦ Corinnaでデザイン ⇒ Object::Pad でPoC。⇒ builtin class • →互換性を保ちつつ現代的なプラクティスを検証、実装 30
杜甫々 “実はフレームワークに頼るのはあまり好きじゃなくて。なにか を使っていてもすぐに陳腐化したり、依存パッケージが多過ぎて サポートが切れるものが出てきたり。あとは、バージョンアップ の追従にコストがかかったりとか、なかなかちょっと⼤変なの で、シンプルなものだったら、あまり使わなくてもいいんじゃな いのかなというところもあります。 そもそもOSSのサポート期間が短いと思うんですよね。これは 「endoflife.date」というサイトで、いろいろなOSSのサポート 状況が⾒ることができるんですが、短いといっても若いみなさん
からの2、3年は⻑いんですが、私らから⾒た2、3年はメチャク チャ短いので。” YAPC::Hiroshima 2024 キーノートより 31
2007 iPhone 32
市場きっかけの変化 • 2007年 iPhone 販売開始(国内は2008年) • 2010年 国内4G開始 • →
UXUI要求が⼤きく変化 ◦ サーバープログラミングでは、インタラクション困難 ◦ モバイルクライアントが⼤規模化。クライアント、サーバの境界定義 33
2022年11⽉30⽇ ChatGPT 34
今後はどうなるだろうか? • 2022年11⽉ ChatGPT • ⽣成AIで、⽣活は様変わり • 今、⾔葉にできていない問題は? ◦ ⇒
話しましょう!技術コミュニティの価値のひとつ • Perlであれば ◦ 新旧様々な書き⽅をLLMsは学習 ⇒良し悪しは? 35
⾃分たちができることは? PEVANS “Perlをもっとよくしていくには、公開されている機能をギ リギリまで使い倒して、できる⼈たちに『そんな無茶なやり ⽅よりもっといい⽅法がある』と⾔わせるといい” London Perl Workshop 2016 /
Charsbar::Note より 36
まとめ‧感想 • Perlを軸としつつ、1990年代からの変化を辿りました ◦ CGI → すごく⼿軽 ◦ PSGI/Plack →
秩序を保ちつつ、多様性を持てる ◦ Perlの⽂法拡張 →互換性を保ったまま⾔語拡張する仕組み • 要求レベル、重⼼の変化はあれど、変更を容易に、スケー ル、UXUI、チーム開発など引き続きやっていき! 37
感想‧質問‧ベストトークの投票待ってます。 https://yapc-fukuoka-bbs.kobaken.co このスレッドは1000を超えました。 38