ログ日記

作業ログと日記とメモ

初心者にお勧めできない言語、PHP

twitter経由で ギークなお姉さんは好きですか これを見て、PHPギークはないだろう・・と思っていたら既に他の人が書いてた→Geekにコンパイルされたい女子がPHP勉強してるらしい - 日記を書く [・w・] はやみずさん


よく見てみると本当の目的はhttp://blog.livedoor.jp/kensuu/archives/50382448.htmlこっちらしい。
釣られついでにPHPが入門言語として勧められない理由を羅列してみる。


変な設定がある

magic_quotes_gpcとかregister_globalsとかsafe_modeとか。将来的には無くなるかもしれないが、magic_quotes_gpcなんかはデフォルトでOnになってるので今でもたまにハマる。

動的型付けの理解

PHPを始めたばかりの人は型がないと思っていることがある。PHP: Types - Manual

==での比較がややこしい

正確な比較演算子は === であり、手抜きしたいときに == を使うということが分かりにくいしあまり書いていない。if ('' == 0) とか if ('1abc' == 1) とかが有名。

HTTPの前提知識が必要

PHP始めようと思っていきなりcliでやる人は居ないと思うので。cookieとか地味にややこしい。セッション管理も楽にできそうだけどハマりどころは沢山ある。セッション管理 - より良い環境を求めて

Apacheの前提知識はあった方がいいがPHPとは別の問題

PHPでの使用メモリ上限を増やしてもうまく動かない場合、Apacheの上限で引っかかってたりとか。

データベースの前提知識はあった方が楽しいが真面目に取り組むと大変

やっぱりDB連携するためのPHP。正規化から非正規化、プリペアドステートメントの使い方、そしてデータベースサーバの動きなど知らないと楽しさ半減。

書籍のサンプルが良くない

仕方がないかもしれないが、普通は書かないコードが盛り沢山。そっくり真似ると後が大変。

楽をするための関数だということに気付かない

file_get_contentsとか。fopenで開いてforでループして・・っていうのは一度経験しとかないと、巨大ファイルでもメモリ上に溜め込んでしまったり。

文字コードの扱いがハマりどころ

PHPは頑張ってる方だと思う。でもMLとか眺めてると文字コード関連の質問が多い。まぁWeb系だと仕方ないのかも。

Webは個人だと試すのが難しい機構がある

DNSとかSSLとか。この二つはDDNSオレオレ証明書使えばできるがPHPと間接的にしか関係ないのでゼロからやるのは面倒。

色々連携した方が楽しい様々な分野がある

例えばajaxとか。xmlとか(?)。DBも使わずPHPだけで出来ることってあまり楽しくないのだ。最近はバーコードリーダーとの連携が楽しい。




思い付いたら追加するかも。
やっつけ的じゃなくプログラミングを続けていくなら、一度コンパイラおばさんと戦ってから楽な方に行くのがいいと思う。