ログ日記

作業ログと日記とメモ

PHPを使う理由

PHPがどうにも好きになれない理由 - Unknown::Programming

こちらを見ながら。

  • 変数のtypeミス(strict 'vars')

これが一番痛い。
まさしくPerlでstrictを使わずに実装してるような、そう、まるで先祖帰りしてるような感覚になってしまうので本当につらい。

これは自分としては便利な方が多いかな。
Cを書いてるといちいち変数宣言するのが面倒だって思う。err = setHoge(); とかの一時的な変数を使う場合は特に。

  • 変数のスコープ

変数のスコープが関数単位でしか発生しないのが痛い。
これによりif条件の場合のみとかループ中でしか使わない変数とかを定義できない。
つまり、変数の存在範囲を細かく設定できないのだ。

ifとかループ中のみで使いたい変数が欲しいって思ったことは無いなぁ。
もしそう思ったら、きっと関数が長い所為だと考えて関数を短くするかも。

  • 配列とハッシュの区別

僕はPerlで実装する時は配列とハッシュを良く使い分けてます。

使い分けが必要な場面って思い付かないな・・たぶんPerlじゃなくPHPから入ったからだろう。
配列のインデックスが数値であるか文字列であるかはプログラマは知っているわけだし、混在するなら構造を見直す。

  • 例外処理

これもPHPが好きになれない大きな理由のひとつ。

これは同感。
というか今まで例外処理を使ったことが無いので便利さも分からないんだけどね・・。
例外の可能性のある関数を使ったあとに

$data = getDbData();
if (!$data)
    myError(...);

とかいちいちやっているわけですね。。

  • 関数のリファレンス

関数のリファレンスが使えない。
一応、Perlのシンボリックリファレンスみたいな感じで文字列から関数を呼ぶことはできるのでそれで代用は可能。

これは最近非常に思う。
特にCのカーネルモジュールを読みながらPHPフレームワークを作っていると。

  • 無名関数

これもcreate_function()の戻り値がリファレンスだったらいいのになぁ・・と。

個人的によくクロージャを使うのでこれができないのは悲しいですね。

クロージャ使ってみたい・・。
これを使うためにRubyとかHaskellとかやってみたくなる。。

これは逆に、そういうものが存在しなくても困らないという背景があるんじゃないかなーとか思ったり思わなかったり。
もうPDOがあればPEAR_DBも要らないだろうし。
こういうライブラリが欲しい!って思ったこと無いなぁ。。
ぁ、はてな記法のライブラリは欲しいな。


あと

このほかにも細かいことを言うとメソッドチェーンができなかったり

これも全く同感だけどPHP5なら出来るんじゃないかな。




なんかあんまりPHPが好きな文章っぽくなくなってしまった。


良いところは何だろう・・・。
エラーが見やすいとか初歩的なこともあるけど・・うーん。
やっぱりフォームの操作とかDBの接続とか、簡単なことが簡単にできるって所かなぁ。
真面目に管理するのは実は難しいという話は置いといて、セッションやメール送信、ファイルの扱いも楽にできる。



うーん。
書いてたら何だか他の言語でWebプログラミングをやりたくなってきた。