PHP、その長所、短所、他の言語との比較、その他すべてについて客観的かつ公平にレビューします。 単純に「PHP は最高の言語」または「PHP は最悪の言語」とは言わないでください。
返信内容:
C 言語のバックグラウンドを持つ人間として、PHP を使用するまでは、変数の定義がどれほど冗談のように思えるか疑問に思いました。
あなたはすでに「PHP が最高の言語である」ということをきっぱりと否定していますが、客観的かつ公平であることについて他に何が言えるでしょうか?
実際、Web サイト開発者の 80% が愚かであると思わない限り、PHP は最高の Web 開発言語です (誰も)。
多くの人が PHP を批判すると主張していますが、PHP は市場シェアの急速な拡大で顔面を激しく平手打ちして対抗しています。
PHP の長所と短所については、オンラインで多くの議論が行われています。
WEB 開発言語としての主な利点は次のとおりです:
1. 他のすべての Web 開発言語を数秒で上回る、迅速な開発
2. 他のすべての Web 開発言語を数秒で上回る
3. パフォーマンスは良好で、Python や Ruby よりも優れています。 JAVA ほどではありませんが、その差は許容範囲内です。
これらのいくつかの点を念頭に置いておけば、残りの部分は重要ではなくなります。
PHP はその言語機能について最も批判されていますが、言語は学術研究のためだけでなく、機能を実装するためにも使用されます。
完璧な機能を備えた言語を設計しましたが、学習して使用するのは非常に難しく、ほとんど役に立ちません。
私は数年間 PHP 開発を行っており、その後短期間 C# や Java 開発も経験し、現在は Web フロントに注力しています。開発を終了します。したがって、私はまだ PHP を公平かつ客観的に評価できると感じています。
利点 Web 分野では、PHP は Linux であっても Windows であっても、すぐに使用できる言語です。
Web 開発を構築します。環境 これらはすべて、特に
初心者 にとって非常に便利です。例に従うことでデモをすぐに作成できます。これは非常に便利でシンプルであり、OO や追加のテンプレート エンジンは必要ありません。追加のライブラリが必要な場合は、ファイルをディレクトリに直接追加し、 include または require を使用してそれらを入力します。これは間違いなく、初心者やマイクロプロジェクトの開発者にとって最も便利です。 4 つの言葉: 箱から出してすぐに使用できます。
大規模なプロジェクトを開発する場合は、OO、テンプレート エンジン、パッケージ マネージャー、およびさまざまなフレームワークも利用できます。 PHP はエンタープライズレベルの開発ニーズにも応えることができると言えます。
過去に多くの人が批判した PHP の欠点には、
優れたパッケージ マネージャーがない (ナシ、あまり使用されていないだけです)
ネーミングの欠如 Space
不規則な開発
現在、上記の欠点のいくつかは解決されています
Composer 現在、PHP が広く使用されていますパッケージマネージャー
5.3 以降、名前空間のサポートが追加されました
PHP Way PHP 開発には特定の規制上の制限があります
欠点 パフォーマンスの問題、この点は確かに Java より劣りますが、現在 php NG のパフォーマンスは大幅に向上しています。
関数の名前とパラメーターの順序には統一された標準がなく、非常に混乱を招きます。
私は数年間 PHP コードを書いてきましたが、個人的な意見を述べたいと思います。
他の言語と比較した場合、Php の大きな利点は、シンプルで粗雑で、すぐに始められ、出稼ぎ労働者にとっては安価であることです。
しかし、これらの利点には堅牢性、保守性、拡張性が犠牲になっています。
PHP は型付けが弱く、ジャストインタイムでコンパイルされるため、運用中にのみ発見できるエラーが多く発生します。そのため、高い堅牢性が必要なシステムは、銀行システムが持つ PHP のような言語では構築されません。 phpで書かれているのを見ましたか?
PHP はコード仕様にあまり力を入れていないため、さまざまな方法で PHP コードを記述することになり、最終的に苦しむのは、他人のコードを保守する後継者です。 。 。
PHP のアーキテクチャについて話しましょう。PHP はスクリプト + 拡張機能のアーキテクチャを使用しています。PHP アプリケーションの多くのコア コードは拡張機能で実装されており、拡張機能はすべて C で記述されていることがわかります。もっと複雑です。この観点から見ると、PHP はアセンブラです。
言語設計の目的の観点から見ると、主に Web を指向していることが、PHP が広く使用されている理由であり、人々が PHP に不満を抱いている理由でもあると言えます。以下の 3 つの側面から php と java の敵を比較してみましょう:
1. ネットワーク プログラミング
php はサーバーとうまく統合できるため、他の一般的な java/python Web プログラミングとは異なり、ソケット プログラミングから解放されます。通常、言語はサーバー自体を実装する必要があり、PHP 自体が sapi を介して http に必要なグローバル変数をカプセル化するため、http プロトコルの手動解析が大幅に簡素化されますが、その一方で、PHP がネットワーク プログラミングで問題を引き起こす原因にもなります。ソケットや多重化などのサポートは Java よりも大幅に弱いです。
2. 同時プログラミング
php は、適切な同時プログラミング方法を提供していません。これは、サーバーにサービスを提供する場合には大きな問題ではありませんが、独立したクライアントまたはサーバー プログラムを作成する場合にはさらに問題になります。この点は、PHP が Java と比較して優れた言語になることを大きく制限します。
3. 文法的特徴
文法的特徴という点では、PHP と Java は非常に似ていますが、それぞれ独自の特徴もあり、両方とも進歩しています。たとえば、Java のパラダイム プログラミングのサポート、PHP の匿名関数、クロージャなどのサポート (Java8 で利用可能)、PHP はハッキングの影響でスカラー型などの新機能も導入しました
要約すると、次のようになります。 PHP ネットワーク プログラミングと同時プログラミングの点ではまだ使いやすいとはいえません。PHP には Web プログラミングに関する独自の利点がありますが、より汎用的な言語になるにはまだ長い道のりがあります。