何故Perlなのか。

なんで僕はこうもPerlが好きなんだろう。

そして何故PHPが好きになれないんだろう。

前に「PHPがどうにも好きになれない理由 - Unknown::Programming」というエントリを書いたけど、なんていうかもしあの不満点が全部解決したとしてもおそらくPerl程好きになることは無いと思う。

やっぱり良くも悪くも初めて真面目に取り組んだのがPerlという言語だったからなのかなぁ。

専門学校時代にはC,C++,VBをやった。会社入ってからはJava(iアプリ)をちょっとやった後にWEBアプリケーション開発にまわされた。

そこで初めてPerlを触った。

初めて触った時には「なんだこのクソ言語」と思ったものだ。

Perlでやった初めての仕事は地獄だった。本当に辛かった。

水も何も持たずに砂漠のど真ん中にいきなり放置されたような感じだった。

まず誰も何も教えてくれなかった。先輩は皆忙しそうで声もかけれなかった。

だからとにかく先輩達が書いたソースをひたすら読んだ。だが、理解できない。ソースが汚すぎた。

当時うちの会社ではstrictを使っていなかった。オブジェクト指向でプログラムを組んでいなかった。パッケージ宣言もなかった。当然コーディング規約も何も無かった。
useじゃなくrequireオンリー。パッケージ宣言もないからどこにどんな変数や関数があるのかもわからない。
Perl5が出てからもう数年たってるはずなのに完全にPerl4スタイルだった。

CGIじゃなくcgi-lib.plを使っていた。DBIじゃなくPg.pmを使っていた。Jcodeじゃなくjcode.plを使っていた。
HTML::Templateじゃなくタグを展開するだけの自作の関数を使っていた。
標準モジュールだって使ってないし、ましてやCPANの存在なんて完全に蚊帳の外状態。

cgi-lib.plなんか最悪だ。当時僕は、%in変数にクエリが格納されるのがPerlの仕様だと勘違いしてしまってた。
ソース上にいきなり出てくる大量の変数や関数。どこで定義されているかを調べるのに何時間もかかる。
で次の日には忘れる。また調べ直す。延々繰り返し。

そんな状態の中、僕に任された仕事はDoCoMoJ-PHONE、Ez3キャリア対応の携帯公式サイトだった。もちろんメインプログラマ
というかプログラマは僕一人だけだった。

毎日半泣きで仕事してたなぁ、とにかく動かすのに必死でコピペコピペの嵐。
似たような関数が量産。バグだらけ。殆どテストもできずにとにかくアクセスしてみて動けばOKみたいな状態だった。

結局納期に20日間も遅れて何とかリリースできた。
けどその後もバグだらけで色々苦労した。作ったら終わりじゃないのね。保守の大変さが身に染みてわかった。
似たような関数を量産してたので、ある関数でバグが出たらそれをコピペして改変した関数にもバグがあるわけでバグ改修が大変だった。
しかもコピペした関数は処理の流れが少し違ったり関数名が違ったりしてるせいでバグを見落としてしまうわけだ。

で当然ドキュメントなんて書いてないし書いてあったとしても保守されてないからウソドキュメント化してるんでまったく信用できない。

ソースの管理もcvsとかなかったんで各自のPCに保存されてるだけだからみんながみんなで何度も同じ過ちを犯し続けるし、同じようなライブラリが量産される。
だから先祖帰りがおきまくりで折角バグ直したのに古いソースをアップしてしまうこともしばしばあった。

そういう状態でいくつか仕事をこなした。ハッキリいってPerlが大嫌いだった。
(まぁここでPerlが嫌いとかいうのはお門違いなんだけどね。Perlというより僕のプログラミング思想がダメダメだっただけの話)

んである時、次の仕事までに少し余裕があったので必死こいてPerlの勉強をした。
もっとPerlのことをよく知っておかないと死んでしまう、当時はマジで必死だった。
とにかく僕にとって始めての仕事が辛すぎた。現在までにやってきた仕事の中で最初の仕事が一番辛かった。

ラクダ本を隅から隅まで読み漁ったし、ネットで調べまくった。
strictに出会い狂喜し、CGIやHTML::Templateに感動し、Effective Perlでニヤニヤし、オブジェクト指向Perlマスターコースに涙を流した(うそ)

それ以来プログラミングスタイルががらりと変わった。しかもそれはPerlだけの話じゃなくて、プログラムそのものに対する僕の考え方も変わった。
だからPerlだけに囚われずにリファクタリング本も読んだしデザパタ本も読んだし達人プログラマーも読んだ。
プログラマとして成長するために色々勉強した。

なんていうか何でもいいから一つの言語を真剣に勉強するとそれ以降の自分の人生にかなり影響を及ぼすと思う。

もしPerlに出会っていなかったら今の僕はいないだろう。

というわけで僕の中にはPerlに対して大きな因果があるわけですね。だから好きなのか。納得。

でも人生とは不思議だなー。もし最初にやった言語がPHPだったらPerl好きになれねーとか言ってたのかな?
いや、もしPHPだったらむしろPerl程苦労せずにそつなく仕事をこなしててそれなりになんとかなってたんじゃないかなと思う。
だってPHPってPerl程ぐちゃぐちゃなソースになりにくいしね。
だからそれ程必死に勉強することもなく流されるままにプログラムしてそう。

やっぱ自分で必死こいて勉強しないと身につかないよなー。
今の新人は初めから色々教えるからぬるま湯すぎて自分から勉強しようという奴が出てこないから凹む。
でも教育しなかったらしなかったで仕事で使えないから困る。どーすりゃいいんだこりゃ。

あぁ、なんかかなり感情的な愚痴&苦労自慢みたいな話になっちゃってほんとすみません。

あまり内容の無い駄文にお付き合いいただきどうもありがとうございました。