YAPC::Asia 2013でビール飲んだりperlについて考えた

 YAPC::Asia 2013が日吉であって、ヤップシーはyet another perl conferenceの略。慶應大学は駅から近くて敷地のなかにハブがあって、こんな大学に通っていたら毎日ハブに行ってしまうから絶対に卒業できないと思った。2日間ずっとperlすきな人たちの話聞いたりしてあとはビール飲む感じですごい楽しかった、インターネットの人ばっかりだった。

 トーク、普段使っているサービスがどうやって運用されているのかとか、どうやってスケールさせるかとか、なんちゃらブログみたいな息の長いサービスが抱える大量のレガシーなコードから如何にして近代化を果たしたのかとか、そういう話が面白かった。あとはperl v.5.20に乗るかもしれないoperatorとかpostfix dereferenceとかそういう言語仕様の追加や変更の話、perl6の処理系の話とかも聞いてて楽しかった。コードの中で$0を好きな文字に置き換えればps | grepした時にどれがどのプロセスかわかって便利ですよってのがYAPCで得られた一番のtipsだと思う。

 YAPCのトークのほとんどが、Web application frameworkとか、webサーバーの監視とか、testとかの話で、webアプリ作ったりすることにぜんぜん興味ないから、ちょっとつらい感じでもあったのが正直なところで、これがperlのコミュニティの感じで、だからこそインターネットでよく目立つのかもしれないなと思う。perlらしさが全面に出ている、これがperlらしさなのだなと思った。でも、話を聞いていて、ほんとに発表している人、LTの人も含めて、ほしいもモジュールがなければ自分ですぐに作るアンドCPANに上げる、というサイクルが異常に早くて、車輪の再発明にたとえなってもいとわないところとか、perlコミュニティに貢献しているんだなあと思ってすごいと思った。

 YAPC、もうちょっとアカデミックな話があってもいいかなと思うけど、そもそもperlがまともにアカデミックで使われているのかといえば微妙な感じだから難しい。みんなmojoliciousでwebアプリ書いてしまう。

 例えば、文字列処理が正規表現を簡単にかけて楽ですよって言われたり、上の人がperl書いてたから自然とperl勉強したけど別にperlが好きなわけじゃなくて、あくまで研究の手段ですよ、っていうスタンスの人が多いのではないかと勝手に思っている。perlそのものに興味があるわけではないから、そういう人にベストプラクティス読みましょうとか、use warnings; use strict絶対、openは安全のために3引数の使ってください、破壊的置換しない方がよくて最近はr///スイッチ入ったからねとか、defined-or operator便利でさ、とかそういうのperl好きな人すぐ言いたがるけど、お節介おじさんになってしまう、つらい。。

 同じLight-weight languageだとpythonとかもあるけど、pythonは科学計算やってる人が使っているアカデミックな雰囲気があって、perlコミュニティの人みたいなゆるふわな感じとはすこし違うと思う。numpy/scipyといった高速な行列演算をサポートするいいライブラリがあったり、お硬い感じで、思想が真逆。perlは"there is more than one way to do it"っていうスローガンがあって、やり方はひとつじゃないことを許容してくれて、コードにめちゃくちゃ個性がでるアンド誰も読めないクールなコードが書けてしまう。pythonはある書き方にそってお硬く書く感じ。これは良し悪しの問題ではなくて、完全に言語設計、思想の問題で、僕はperlも好きだけどpythonも最近はすきで書いたりしている。

 言語の進化もぜんぜん違う。perl後方互換をけっこう大事にするから、perlのバージョンがあがってもそんなに大幅な変更は無い。だから大昔のperlが今でも現役で動いていたりするけど、rubyはどんどんバージョンアップして古いコードがぶっ壊れるリスクよりも、よりいいプログラミング体験を求めている感じだと思う。

 当たり前だけど、コードは機械が実行するけど、プログラミング言語は人間が作っているから個性とかすごい出てしまうから面白い。perlみたいな言語だとperlみたいな人がワイワイ集まってトークの途中にビール飲んだりする。

 感想は以上です。ありがとうございました。