PHPはなぜ嫌われる

  • URLをコピーしました!

PHP自体は可もなく不可もない平凡な言語ですが、オブジェクト指向設計もできますし関数型プログラミングもどきもできますから、それなりに実用性は高いと思います。

とは言え特筆すべき特徴は特にありません。

しかし、言語としては平凡ですが、mod_phpは非常に素晴らしい仕組みです。私はPHPは言語としては評価していませんが、mod_phpは非常に高く評価しています。(ちなみにお気に入りの言語はC++とErlangです)

PHPが良い理由は「運用しやすいから」です。

受託開発専門のエンジニアの方々にはあまり興味のない話でしょうが、サービスを運用する側からしてみれば、メモリリークする可能性がなく、たった一つのバグでサーバプロセスが落ちることもないため、mod_phpを使うとトラブルが減るんですよね。

もちろんPHPはプログラミング初心者が扱うことが多く型チェック機能も弱いため質の低い言語だと思われがちですが、私のようなベテランプログラマが扱う分にはJavaあたりと比べても大きな違いは感じません。普通に厳密にコーディングできます。
それにJavaなんかはGCで重たくなったりしますし自分が悪くなくてもプロダクトのバグでメモリリークが起きたりすることもあるので、運用しているとイマイチ安眠できなかったりします。Node.jsもちょっと油断するとメモリリークを引き起こしやすいため、数十万行の規模でコーディングしたいとはあまり思わないですね。安眠したい場合はmod_phpが個人的にはお勧めです。(PHP以外の言語もmod_php上で使えるようになると良いんですけどね)

パフォーマンスについても、最近はメモリを潤沢に積めますしCPUも高速ですから、特に遅さは感じません。それよりもHTML内に画像データをData URLで埋め込んだりJavaScriptファイルの読み込み回数を減らしたりしてネットワークのコネクション数を大幅に削減するとか、あるいはDBのチューニングを行ったりする方が圧倒的に速度改善に貢献します。

特に一般向けのサイトの場合、最近はページの表示速度が1秒を超えるとコンバージョンが下がっていきますから、プログラミング言語なんかよりもそっちの方がはるかに重要です。業務系の場合はそこまでシビアじゃないですけどね。

それに最近はサーバサイドMVCモデルではなくサーバ側はほぼREST APIのみというのがトレンドであり、HTML組み立ての大半はブラウザ上で行うのが普通ですから、サーバ側のプログラミング言語に処理性能はほとんど求められません。

かなり低次元の例ではありますが、私が過去に速度チューニングを依頼された外部のWebサイトはいずれもPHPを使っていましたが、速度が遅い原因はいずれもSQLの問題であり、ほんの数分程度のチューニング作業(インデックスを張ったりSQLのサブクエリーを組み替えたり)で数千倍〜数万倍ほど速度向上した、という類の話が多いです。
プログラミング言語に何を使うか悩む前に、DBの内部構造とSQLをちゃんと勉強する方がはるかに役に立ちます。プログラミング言語なんて別に何でも良いです。もちろん「受注しやすい」とかの仕事上の都合はまた別の話ですけどね。

Webサービスではなく処理性能やメモリフットプリントの小ささやシビアな並行プログラミングが要求されるようなプログラムの場合は言語の違いは本質的に重要となりますが、Webサービスで使う場合はどの言語が優れていてどれがダメかなどの話はあんまり重要な話ではないので(どういう設計にするかの方が圧倒的に重要です)、そういう比較論というのは実際のところはプログラマー同士のマウンティングの要素が大きいんでしょうけど、そんなものは1円にもなりませんから「勝手にやってれば?」くらいな感じですね()

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
目次