Perl「言語」初心者がモダンなPerlを高速に学ぶ方法
Perlを仕事でまともに使い始めてから大体1年が経過しました。少しずつではありますがPerlも書けるようになってきました。自分の経験を踏まえ、他の言語は使えるけれどもPerlは良くわからないという人が、Perlを学ぶ際に、どのように学んでいけばよいかをまとめてみました。
ライブラリ、言語、ミドルウェアの学習
一番最初にしたのは、Plaggerを使い、Plaggerのコードを読むことでした。
Perlを使い始めて、まず分からなかったのが、何のライブラリを使えばいいのかといいうことでした。CPANには数多くのライブラリがあるのですが、玉石混交で何を使えばいいのかが最初全くわかりません。
Plaggerは、Mooseを使わない最もモダンなPerlのアプリケーションの一つで、かつ実用的に使えるライブラリが動く形で提供されています。
それを読んで、どのライブラリを選択すべきで、どのようにライブラリを使うのかを勉強します。Plaggerを読む過程で文法的に分からない点は、Programming Perlとperldocで調べるということを繰り返します。
Plaggerはライブラリの使い方だけでなく、Perlらしいコードの書き方、クラスデザインなどについても勉強になります。さすがに世界のmiyagawaさんです。Plaggerのコードは、ackを使いながら未だに良く読んでいますが、とても勉強になります。
後は必要に応じて、そのライブラリで使っているライブラリの使い方などを勉強すると、色々なコードが読めるようになってきます。例えば、Path::Classの内部では、File::*などが使われていて、さらに、File::*をどのように使えばいいのかがわかります。さらに、File::*がどのようなことをしているかを見るという具合に、下へと辿っていきます。
yusukebeさんが、PlaggerからPerlを始めた人の世代のことを、Plagger世代といっていましたが、言い得て妙だなと思いました。Plagger前後では、Perlの学習コストが全然違ってくるからです。
言語のマッピングやライブラリの使い方は上記の方法で学べます。ですが、ミドルウェア部分のノウハウはさほど公開されていません。ミドルウェア周りのノウハウは、さほど多くのノウハウが公開されていないので、これは自分で試してみるのと、IRCで聞いてみるほかないかなという感じです。
Perl関連の本について
http://perl-users.jp/books.html に書かれているPerlに関しても有名な本は一通り全部読みました。注意が必要なのは、モダンなPerlコードで書かれた本が殆どないということです。
perl-usersで紹介されている本は基本的に全て読んだのですが、モダンなコードがかかれているかというと、そういうわけではないというのがあります。一部はとても古いものなのだということを意識しながら読む必要があります。Plaggerのコードを読む際の参考程度で読むというのがよいように感じました。
モダンなコードの勉強
一番良いのは、Catalyst、Moose系のコードを読むことです。
どのようなライブラリが今のトレンドで、Perlコミュニティでどんな人が先端を走っているのかが、良くわかります。
現状、Catalyst、Moose系の人が現在では一番アクティブで、これらのコミッタの活動に注目していくのがいいのではないかと思いました。
例えば、海外だとmst, jrockway, stevan, groditti, nothingmuch, rjbs, jesse, clkaoあたりの人(またはそれらの人が参加するIRCのチャンネル)をwatchしておけば、大体の流れがわかります。日本ではsubtech, codereposの人を見ておくとかなり勉強になります。
コミュニティについて
Perlではコミュニティ活動が他の言語に比べてかなり活発に行われています。Shibuya.pm, Yokohama.pmなどなど各種コミュニティがあるので、積極的に参加してみるのはよいです。また、IRCなどについても、積極的に参加してみるのがいいです。
トレンドを知れるだけでなく、モチベーションが高まります。これが一番大事かもしれません。