PHPはもはやダメではない!? 『PHP doesn't suck (anymore)』動画と海外掲示板の反応
PHPはもはやダメではない!?
はじめに
PHPが過去には酷評されたことはよく知られていますが、今日ではそのイメージが変わりつつあります。この記事では、人々がなぜPHPを再評価し始めているのか、『PHP doesn't suck (anymore)』動画と海外掲示板の反応を通して探ります。
PHPの過去の評判
PHPの歴史
PHPは、1994年に初めて登場しました。初期の頃はセキュリティの問題や機能の欠如が指摘されることが多かったのです。
古いバージョンの問題
特に古いバージョンは、開発者にとって使いづらいものでした。しかし、最近のアップデートにより、多くの問題が解消されました。
『PHP doesn't suck (anymore)』動画の内容
動画の概要
この動画では、PHPの進化とその現在のポテンシャルについて解説されています。
2012年以降、PHPには大幅な改良点があって、トレイト、短い配列文法、名前付き引数、Null安全演算子等があった。更に、型システムも構造化されるようになり、Union型、交差型、Disjunctive Normal Form型等がある。そして、パフォーマンスも大幅に改善された。
PHPはもはや「sucks」ではなく、2012年以降に多くの言語変更がありました。
- 2012年以降、PHP 5.4のリリース後、トレイト、短い配列構文、配列の分割代入、可変長引数などの変更があった。
- トレイトは、同じメソッド本体を何度も書く代わりに、継承を乱用することなく、コンポジションを使用できるようになった。
- 短い配列構文は、配列を作成するために「array」という単語を書く必要がなくなった。
- 配列の分割代入を使用すると、配列の要素を直接変数に割り当てることができる。
- 可変長引数は、関数に可変数の引数を渡すことができるようになった。
PHPには、配列を展開したり、ジェネレータを使ったり、匿名クラスを作成したり、トレイリングコンマを使用したりする機能がある。
- 配列を展開して関数の引数リストに使用できる
- ジェネレータを使用してメモリを節約できる
- 匿名クラスを作成できる
- トレイリングコンマを関数呼び出しで使用できる
- アロー関数を使用できる
- 短いクロージャまたはアロー関数を使用できる
- null合体演算子を使用できる
- null合体代入演算子を使用できる
PHPはもはや「suck」ではない!
- Null chaining operatorを使うことで、nullチェックを簡単に行うことができるようになった。
- 名前付き引数を使用することで、オプション引数をスキップする必要がなくなった。
- PHPには属性があり、クラスやメソッド、引数、プロパティなどに注釈を付けることができるようになった。
- match文を使用することで、switch文よりもコンパクトに書くことができるようになった。
PHPはもはやenumsを持っているため、クラス内でケースを区別でき、値を持つことができます。
- enumsにはメソッドを追加することもできます。
- PHPは、enumをタイトなピンとして使用できるため、引数がenumであることを示唆することができます。
- PHPには、スカラータイプヒント、クラスまたはenumsのタイプヒント、Unionタイプ、Intersectionタイプなどのタイプヒントを追加する方法があります。
PHP 8で導入されたConstructor property promotionによって、コンストラクターの引数にvisibilityを指定することで、プロパティを初期化できるようになった。
- プロパティを読み取り専用にする場合は、プロパティに「readonly」キーワードを指定する。
- PHP 5.6から7までのバージョンで400%のパフォーマンス向上があり、7から8までにさらに20%向上したため、PHPは以前ほど遅くない。
- 通常の使用では十分に高速であり、特殊な使用例が必要な場合は専用のものを使用するべきである。
海外掲示板の反応
最新のPHPは確かにまともな開発者エクスペリエンスを備えていますが、多くの人が非効率的な方法でPHPを使用しています。
世の中には「適切に設計されていない」PHPコードが大量に存在します。しかし問題は、これらのPHPコードはすべて機能し、それらはそれらを委託した企業の予算の範囲内であったということです。 実際には、PHPは常に、実際のビジネスの優先事項が他の懸念事項よりも優先される人々の言語でした。Googleなどの巨大企業がそれをせずに済んだ理由は、規模が大きく安全なビジネスがもたらす潤沢な資金によってそのようなビジネス要件から保護されていたからです。。ゼロ金利経済が去り、すべてが揺るがされた今、ビッグ5ですらROIに向き合い、より学術的な実践や一部の難解なエンジニアリングよりも効率性を向上させようと努めています。彼らにとっては目新しいことですが、PHPエコシステムは常にそのような場所でした。
PHPは元々、決してひどいものではなかったよ。
PHPの問題の大部分は常に、インターネット上に大量に存在する非常に貧弱なPHPシステムでした。新しいクライアントのサイトを引き継いだ場合、それはビジネスロジックの90%がテンプレートファイルに雑に書かれている、きしむようなWordpressの怪物か、2004年ごろによく作られたひどいCRUDバックエンドのどちらかです。 そのようなシステムを選択し、最終的に誰かがクライアントを説得してサイトの書き換えを許可するまで維持しなければならない場合、PHPを好きになるのは非常に難しくなります。他の人のひどい作品を引き継ぐ場合には特にそうです。
(笑) 面白いのは、他の言語がインターネットの75%を支えていたとしたら、その言語の評判はPHPの評判と同じになるということ。
私は過去20年間、あらゆる言語で忌まわしい言葉を毎日見てきました。会社、人気、コミュニティ、テクノロジーは関係ありません。誰もが悪いコードを書くことができます。が、インターネットではそれがPHP上でのみ行われると信じたがっているようです。
結論
クソコードはプログラミング言語のせいで生まれるんじゃない、人間が生んでるんだ!!(事件は現場で起きてるんだ!の言い方で)
— TA9TO (@ta99to) August 20, 2023