PHPについて

最近、はてな界隈でPHPやら初心者向け言語やらの話題が流行っている様子。
特に言語にはこだわらないんだけど、昔やったPHPはひどかったなぁ。

なにがひどいって、PHP4の時代なんだけど、あの言語である程度構造化されたアーキテクチャでアプリケーションを作ろうとすると、エラーハンドリングがひどく大変。Exceptionが投げられないのがあんなにイタイとは…。

例えば、JavaでWEB+DBのアプリを作ろうとしたとき、SQLで例外が発生したら、共通エラーページに飛ばすなんて、エラーハンドリングの部分をテンプレートパターンにしといたりとかTeedaとかのフレームワークを使うなりすれば、SQLExceptionキャッチしてごにょごにょやればいいじゃない。

それが、PHPだとクエリーを発行したメソッドの戻り値がfalseだから、DBアクセスを抽象化してるクラスのメソッドも戻り値falseで、さらにそのメソッドを呼び出しているメソッドの戻り値もfalseにして……って呼び出し階層の分だけreturn false;をバケツリレーしなきゃいけない。もううんざりするよね;;boolean返したいときとかどうすりゃいいんだよ!

ってな具合でPHPにはいい思い出ないなぁ。PHP5になってExceptionを投げられるようになったから、PHP5使えばいいじゃんって話もあると思うけどレンタルサーバーだとまだまだPHP4だったりするんだよね。どうせ自前のサーバーにインストールするんだったら、PHPを使うメリットは少ないしさ。

総じて、俺の中でPHPは構造化すればするほどつらくなりメリットを失っていく「初心者にしか使えない」言語だなぁ。