VSCodeの拡張機能のphp-intellisenseはインストールはしたものの上手く動かないケースがあります。よくある確認箇所について紹介します。 そもそも動作してる? php-intellise…
なぜPHPの言語仕様が酷いのか、PHPの生みの親のラスマス・ラードフ氏がインタビューで語った思想から見てみたいと思います。
PHPはハンマーのような単純な道具
インタビューによると、そもそも生みの親はPHPに整合性を取ることを重要と考えていないようです。
私たちがPHPの整合性のなさを直さないと言ってよく非難する人がいますが,PHPはそもそもそれが問題になるようなものではないのです。
PHPは結局,ライブラリやその他基盤となっているテクノロジーへのショートカットにすぎません。
それなのに,どうして誰もがPHPレベルでの整合性を求めるのか,私には分かりません。整合性をとるのはフレームワークの役割です。
フレームワークは問題を解決するための全体的なアプローチを定める場所ですから。PHPはその下のレベルにあって,ただ低レベルにあるライブラリとか関数とかへのアクセスを提供するだけの存在です。
こう言っても多くの人は同意してくれないんですが,PHPはそういうふうに開発されたものですから。
PHPの役目
思いついたアイデアを最短で形にするためのツールと語っています。
まずは大した知識も必要なく、とりあえず動くものを作ることが役目。
優れたアイデアを思いついた人は,それを実現するツールを探し,世界に送り出そうとします。
たいていの場合,そのためにはPHPが最も近道です。こういうものが作りたい。
なんにもないけど,どうしたらいいだろう。よし,とりあえずPHPで作ろう,となるわけです。PHPはほとんどどんな人でも,そこそこ賢いサルでも,何かを動かせる程度までは理解できます。
セキュリティが完璧でないかもしれないし,スケールできないかもしれないし,処理量が一日5リクエストを超えたとたんに落ちるかもしれない。
それでも,とりあえず動くことが分かればイテレートしていけます。
理想と現実
PHPのプロジェクトはカオスな事になっているケースが非常に多いです。
理想は最短で動くものを作って繰り返しコードを改善していくことですが、現実は酷いコードがそのまま輪をかけ、より酷くなりがちです。
また、ビジネスにおいて酷いコードだからとリファクタリングするための時間を割かれることは、まずありません。
優秀なマネージャーやリーダーであれば、酷いコードが長期的に与える品質や生産性の悪化に気付くかもしれません。
そしてPHPは,ひどいコードを動かすのが驚くほど得意です。非常に寛容なのです。世界最悪のコードを書いたとしても,PHPならまだ動くし,実際速度も出るし,スケーリングも可能です。
今後のPHPの将来性
Typed Properties 2.0のRFCが賛成70反対1で受理されました。
これは、PHP7.4で実装予定でプロパティに型を強制することができるようになります。
class User { public int $id; public string $name; public function __construct(int $id, string $name) { $this->id = $id; $this->name = $name; } }
動的型付け言語で酷いコードでも実行できるPHPが特徴でしたが、その良い面でも悪い面でもあった点が変わります。
ただ、PHPらしいですがプロパティに型を強制した定義も出来るだけで今まで通り型を宣言しなくても出来てしまいます。
PHPらしさを捨て、個人的には好きなように書けてしまうカオスな道へ迷走し始めたように感じましたが、結果はどう出るでしょうか。
コメントを書く