PHPの「えせプログラミング言語」の弊害

先日のエントリーでも少し触れたが、PHPの最大の問題点は、それが持つ「一見その言語構造がよくあるプログラミング言語の形をとりながら、プログラミング言語の最も大切なところを外している『えせプログラミング言語』である」点にある。Webアプリケーションの開発で注意すべき部分とは何かを根底の部分でちゃんと理解せずにPHPアプリケーションを作ると、後々ひどい目に会うので注意が必要である。


 その意味では「PHPプログラミング言語を学ぶ」などもっての他だし、「JavaでもPHPと同じようなプログラミング言語を作ってWebアプリの開発を効率化しよう」などという発想もとても危険である。


 PHPの発想の根底には、「HTMLテンプレート用言語とロジック記述用言語の統一により、開発コストを減らそう」という CGI 時代の安易な発明がある。PHPは、その前近代的な発想を通じて、テンプレートとロジックを同じファイルに書きましょう、という悪習を広めてしまっている。

(中略)

 私は「どんなプログラムも常に厳密に利用する言語のパラダイムに基づいて作るべきだ」と主張しているわけでも、「PHPは使い物にならない」と批判しているわけでもないので誤解しないでいただきたい。ここで私が強調したいのは「PHPは本来のプログラミング言語とはほど遠い」「PHPの上に普通にWebアプリケーションを作ると、ビジネスロジックをテンプレートに混ぜ込んで書く事になってしまい、『関心の分離』を保つことが難しくなる」という点である。

あれ? 正論になってる!?

(inspired by Ruby on Railsの「えせMVC」の弊害)