MPがありません。

$liiu->mp == 0

Japan.pm 2021 に参加 & トークしてきました

2/18, 19 に行われていたJapan.pm 2021に参加し、「Perl でも関数の型をチェックしたい」というタイトルでトークをしてきました。

トークの資料はこちらです。

speakerdeck.com

内容を簡単にまとめると、Perlで無名関数に型をつける手段がなかったので自分で型ライブラリを作り型をつけれるようにした、といった感じです。

トークの中でも紹介した無名関数の型チェックができるライブラリはこちらです。
コーロバックとかを渡すときに有用だと思うのでぜひ使っていただけると嬉しいです。

metacpan.org

発表自体は最初Youtubeの配信をつけっぱなしにしてしまっていてハウリングさせてしまったり、画面共有がうまく行かなかったりと散々でしたが、運営の皆様のフォローのおかげで無事ちゃんとやりきることができました。
本当にありがとうございます。

Twitter や Japan.pm の Discord をあとから見た感じだと発表はだいぶ盛り上がっていた感じがしていてよかったです。

このような感想もいただき、ありがとうございますとなりました。

Japan.pm には発表中のトークの内容などについてMCの方を中心に発表者、参加者が Dicord で語ったりしている様子を配信する裏トークというシステムがあって、これも非常に良かったです。
通常のオンラインカンファレンスなどだと発表による反応をすぐに得られなくてあまり達成感や手応えがなかったりするのですが、裏トークチャンネルがあると発表終了後に参加すればすぐにトークのフィードバックを得られるので、達成感や手応えといったものもオフラインのとき並に感じることができました。
他のオンラインカンファレンスなどにもこのような仕組みが広まってほしいですね。

さて、今回もとても素晴らしいトークやLTがたくさん行われていましたが、個人的に特に印象深かったのはLTの一瞬でテストを Test2::V0 対応させていたものと perl の処理系を読んでいくものでした。
前者については PPI で Test::More などで書かれたコードを書き換えていくというのも凄いのですが、それ以上に Test2 のプラグインで動的に解析し書き換えていくという非常にパワーを感じる方法で Test2::V0 に対応させているのがおもしろかったです。
後者に関してはひたすら驚異的な gdb 捌きに圧倒されていました。やっていることの2, 3割しか理解できませんでしたが、これで僕もちょっとは perl の処理系を読めるようになるのではという気持ちになれました。

すべての発表が終了した後は交流会というものがあり、様々なトピックのチャンネルが作られて、話しやすいくらいの人数でトピックについて語り合えるような場が用意されていました。
これも素晴らしくて、オフラインのカンファレンスでよくやっていた懇親会のように機能していました。
僕はだいたい型チャンネルというところにいて、Perlの実行時型チェックや静的解析などについていろいろしゃべったり意見を交換したりしていました。
macopy さんが実行時型チェックは便利だけど実行時型チェックするようなサブルーチンを再帰的に呼んでしまうととてもパフォーマンスが悪化するといったことを話していて、本番環境では型チェックをoffにできるようにしたいよねということを話されていて、そのあたりにPerlの実行時型チェックの課題がありそうだなと感じました。
現状型制約ライブラリや引数バリデーター、クラスビルダーにはそのような機能が提供されていないことが多く、さらにそれらのライブラリはインライン化されていたりしていて mock することも難しいので、解決するのが難しそうな課題ですが、なんとかしたいですね。

最後に、今回の Japan.pm はとても楽しかったです。
オンラインカンファレンスに最適化した新しい体験を提供するカンファレンスになっていたと感じていて、すごい運営の方々が頑張ってらっしゃったんだなと思いました。
ありがとうございました。