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は構造化すればするほどつらくなりメリットを失っていく「初心者にしか使えない」言語だなぁ。