PHP は以前は「ひどい」ものだったため、今では悪い評価を受けています。この記事は、PHP が多くの人が言うほど悪くないことを技術者以外の人に説明することを目的として、PHP に関するいくつかの一般的な主張に答えようとします。
##→この記事は次から翻訳されています: https://www.getparthenon.com/blog/php-isnt-that-like-really-bad/
#1. それは悪い習慣を助長するのでしょうか? ############もうない。以前は、多くの開発者が本から非常に貧弱な実践方法を教えられ、その結果、PHP コードの品質が非常に低かったのです。 PHP では、非常に奇妙なこともできるようになり、構築は信じられないほど簡単になりましたが、メンテナンスは悪夢のようでした。 これらは、もはや一般的な質問ではありません。学びやすく、簡単にアクセスできる高品質の学習教材の導入により、新しい開発者は PHP を正しい方法で学ぶことができます。これにより、若い開発者が正しい構築方法を知らないために保守が非常に困難なコードを作成することがなくなります。 フレームワークの導入により、多くの悪い経験につながる一般的なコードの多くが自動的に実行されるようになりました。そのため、開発者はフレームワークを使用するだけで、フレームワークがコードを正しくコーディングします。
また、長年にわたるいくつかの悪い習慣は、機能の欠落によって引き起こされ、その結果、許可されるべきではないものが許可されてしまいました。現在、ほとんどの場合、この種の評判につながる以前に書かれたものの一部を実装することさえ不可能です。
概要悪い習慣を助長しなくなりました...
#2. セキュリティは非常に悪いですか?
これまでは、言語で許可されていたため、PHP アプリケーションのセキュリティが不十分になることがよくありました。現在、PHP アプリケーション開発は完全に異なっているため、これらは使用されなくなりました。 ファイルを動的にインクルードするのではなく、オートローダーを使用してファイルをインクルードすることにより、リモートおよびローカル ファイルのインクルード (PHP が本来の意図とは異なるアドレスからファイルを読み取る) が削除されました。 テンプレート システム (動的コンテンツを表示する際のエスケープとセキュリティの問題を自動的に処理する) を広範囲に使用することで、PHP で HTML を直接使用することによって引き起こされるクロスサイト スクリプティング攻撃が回避されました (あるユーザーが JavaScript スクリプトを次のように変更しました)。別のユーザーに表示される可能性があります)。
SQL でプリペアド ステートメントを使用することにより、SQL インジェクション攻撃が回避されます (これは、SQL クエリを作成し、そのクエリをデータとともに送信する必要があるため、ユーザーは追加の SQL コマンドをクエリに追加できます) )。さらに、ORM の使用も一般的です。これにより、ユーザー データとクエリが別々に送信され、SQL がそれらを別々のコマンドとして扱うことができなくなります。
nonce システムを使用する広く使用されているフォーム ライブラリを使用して、クロスサイト リクエスト フォージェリ (ユーザーが騙されてサイト上で特定のアクションを実行する可能性がある) を回避します。
概要もうありません。
#3. 本当に遅いですか?
何と比較するかによって異なります。 PHP を Java、C、または Go と比較すると、速度は遅くなります。しかし、PHP を Python、Ruby などと比較すると、決して遅いわけではありません。 PHP はこの種の言語の中で最も高速な言語の 1 つであり、パフォーマンスが常に向上しています。 ほとんどの場合、アプリケーションが遅くなるのは、サーバーが過負荷になっているか、データベース クエリが遅いためです。こうした問題はどの言語にも存在します。
概要PHP はコンパイル言語に比べて比較的遅いです。
#4. スケーラビリティは本当に悪いのでしょうか?
実際には、どの言語もスケーリング可能です。コンパイル言語 (Go、C、Rust など) は、スクリプト言語 (PHP など) よりもスケーリングのコストが低くなります。ただし、これらは同じタスク用に設計されているわけではありません。実際、それらはすべて同じであり、単に使用するサーバーの数によって決まります。十分なサーバーを使用すれば、あらゆるアプリケーションを拡張できます。 PHP は、開始に必要なリソースが少なく、より多くの CPU を備えた小さなメモリ サーバーで実行できるため、他のスクリプト言語よりも拡張が安価です。
また、スケーラビリティに関して重要なのはデータベースです。データベースを拡張できれば、アプリケーションも拡張できます。データベースはアプリケーション サーバーよりも拡張が困難です。データベースを読み取る別のクライアントを追加するのは簡単ですが、データベースを迅速に実行するのは非常に困難です。
概要
どの言語でも拡張可能ですが、使用するサーバーの数によって異なります。
スケーリングに関する本当の問題は、使用されるアプリケーション言語ではなく、データベースです。
データをスケーリングできれば、アプリケーションもスケーリングできます。
#5. 使い続けるべきでしょうか? ############いいえ。どのプログラミング言語にも専門分野があります。 PHP は Web アプリケーションに最適です。 Web サイトや API を構築するために使用する必要があります。 ミリ秒単位が重要なシステム アプリケーションを構築している場合は、Rust または C を使用してください。
人工知能アプリケーションを構築している場合、Python は良い選択肢です。
SaaS アプリケーションを構築している場合、PHP は良い選択肢です。
Android アプリケーションを構築している場合、Kotlin は良い選択肢です。
複数のプラットフォームで実行されるアプリケーションを構築している場合、Java は良い選択肢です。
概要いいえ、どの言語にも最適な使用例があります。
PHP の最適な使用例は Web アプリケーションです。
Go、Rust、C はシステム アプリケーションに適しています。
Python は人工知能に適しています。
Kotlin は Android アプリケーションに適しています。
Java は、プラットフォームに依存しないアプリケーションに適しています。
PHP について言われていることの多くは 10 年前のものです。私たちの意見では、誰かが技術的なトピックに関して 10 年も古い情報を提供した場合、その人はおそらく信頼できる技術専門家ではありません。 PHP は Web アプリケーションを作成するための優れたプログラミング言語であり、Web アプリケーション開発に最適な言語であると考えています。
概要こうした苦情の多くは10年も期限を過ぎています。
私たちは、PHP が Web アプリケーションを構築するのに最適な言語であると信じています。