早速本題に入りますが、PHP は奇妙な言語だと言いましょう。高速でも構文的にも美しくありません。適切なソフトウェア開発慣行も遵守されていません。しかし、私は今でもそれを使用して多くのソフトウェアを開発しています。すると、次の疑問が明らかになります。なぜ PHP は今日でも使用されているのでしょうか?
個人的な理想主義的な好み以外にも、多くの理由があります。これが私たちの議論の範囲です。 Web 開発言語として PHP を選択する理由は何ですか?
PHP とは何ですか?
「PHP は何の略ですか?」または「PHP とは何ですか?」 PHP は Web ページを作成するための言語です。最下層は C 言語で実装され、HTML タグを使用します。構文、パッケージコード。通常、PHP はサーバー側で実行され、Web サーバーと連携して動作し、HTML を処理して訪問者に返す役割を果たします。
PHP はもともと「個人のホームページ」を意味しました。これにより、この言語を一般用途に使用する意味と望ましさが完全に制限されるため、この言語は「PHP: Hypertext Preprocessor」の略称になりました。この書き方を再帰的略語(フルネームで自分自身を指す略語)といいます。オタクはこの種の名前が大好きです。
PHP では何ができるのでしょうか?
#PHP 何に使用できますか?一般に、PHP は Web サーバー上で実装したいことはすべて実行できます。たとえば、ブログを作ります。 SAAS アプリケーションの実装も簡単です。データを一時的に処理するスクリプトを作成することも便利です。それとも、ある日突然ソフトウェア ビジネスで成功する複雑なスクリプトを作成しますか?過去にはたくさんのことが起こりました。
私の言うことが信じられない場合は、PHP 公式 Web サイトで使用シナリオのリストをご覧ください。
サーバーサイド スクリプト
コマンド ライン スクリプト
デスクトップ アプリケーションの作成
最後のものはあまりお勧めしませんが、確かに機能します。しかし、最初の 2 つは本当に大きな理由です。
これは、重要かつ避けられない事実につながります...
PHP はどこにでも存在します
PHP を理解し、愛することができます。理由はたくさんありますが、おそらく最も強力で効果的な理由は、ネットワーク上のどこでも使用および実行できることです。よく見てみると、Python または Ruby Web アプリケーションを実行できるホスティング アカウントを月額わずか 3 ドルで購入できる可能性があります。ただし、間違いなく PHP を実行できます。これは、いつでも PHP に依存できることを意味します。
PHP はどこでも実行でき、使いやすいため、非常に人気のあるソフトウェアの多くが PHP で書かれています。 WordPress は私にとって最も影響力があり、馴染みのある例です。Joomla、Drupal、Magento、ExpressionEngine、vBulletin (はい、まだ存在します)、MediaWiki などのツールの他に、これらはすべて PHP で実行されています。サーバー上で。
それだけでなく、Symfony、Zend、Laravel、Aura、CakePHP、Yii、さらには古代の CodeIgnitor フレームワークなど、無数の PHP アプリケーション フレームワークが存在します。もちろん、他の言語の Web フレームワークの同様に長いリストを作成することもできます。たとえば、Python、Ruby、Node/JavaScript などの一般的な Web 言語を、PHP と比較するための数値的な競合リストを蓄積することもできます。しかし、PHP を実行している Web サイトの数は圧倒的です。
WordPress は、インターネット上にユーザーの 30% がいると誇らしげに主張しています。この記述が真実である可能性さえあるとしても、多くのインターネット アプリケーションは PHP を使用する必要があることを理解するために、この記述を信じる必要さえありません。
PHP の利点
動的機能
PHP と HTML は非常に調和して連携できます。 file.html を file.php に変更すると、 タグ内に PHP コードを記述することができ、ほとんどの Web サーバーのデフォルト設定では PHP スクリプトを直接実行できます。しきい値が非常に低いため、プログラミングの知識をあまり必要としない初心者プログラマーが直接作業を開始でき、結果として品質の低いコードが大量に生成されます。
その学習の容易さのため、多数の初心者プログラマが殺到し、PHP が批判されてきた別の問題を露呈させました。それは、PHP が最良の Web サーバーサイド言語であるという明確なビジョンを持っていないということです。もちろん、これにも良いデザインはありません。これが別の結果をもたらしました。世界中からの緩やかなコラボレーション、寄稿されたコードとアイデアの寄せ集め、そして必然的にいくつかの悪いアイデアがそこに浸透しました。
強力なオブジェクト指向パッケージ管理が PHP の標準となっています
Composer は PHP にとってプラスです。
PHP の開発では、奇妙なものが頻繁にリリースされます。最も有名な例は、PHP 5.3 (PHP の最初の最新バージョンとして広く認識されています) での goto ステートメントの導入です。
PHP の成長中にも同様の問題が発生しました。オブジェクト指向は当初、欠陥のある制限的な概念として実装され、標準ライブラリは一貫性のない名前とパラメーターの順序で埋め尽くされ、(たとえば、最近批判された Concerned Chestnut) PHP 5.3 では、 :: 演算子が認識されない場合、パーサーは読みにくいエラー メッセージをスローします: 構文エラー (T_PAAMAYIM_NEKUDOTAYIM)。ドキュメントを読まなくても、この T_PAAMAYIM_NEKUDOTAYIM マークは英語で理解できます。どういう意味ですか?
しかし現在、PHP は OOP を完全にサポートしています。 PHP のような Java のような OOP 実装を備えた言語はほとんどありません。さらに、Java とは異なり、PHP には Composer と呼ばれる、広くサポートされている独立したパッケージ マネージャーがあります。非常に使いやすく、メンテナンスの行き届いた高品質なライブラリを簡単に参照できるのも見逃せないポイントです。
PHP の急速な発展
これらの事実から、PHP が興味深い方法で発展していることがわかります。徐々に Java のようなフル機能のオブジェクト指向言語になりつつあり(良くも悪くも)、現在注目の関数型プログラミングにシンプルな抽象化を提供しています。そして、素晴らしいツールのセットが開発されており、PHP は Composer を愛しています。それには正当な理由があります -- それは、いくつかの大きなオープン ソース プロジェクトを連携させるという賞賛に値する仕事を行っているからです。
もちろん、私たちはそうすべきです。今何が注目されているかを忘れないでください。PHP の PHP7 シリーズの開発により、速度の向上が達成されました。これは Facbook での HHVM の出現が原因であると広く信じられていましたが、短期間で HHVM が PHP コミュニティを破壊するようなペースで発展するリスクがありましたが、そうではありませんでした。あまりに急速に成長したため、人々はその存在をほとんど忘れてしまいました。
PHP には巨大なコミュニティがあり、初心者にも優しいです。
どの素晴らしい新しいテクノロジーを使用するかを決める場合、ほとんど注目されないのは、その言語とどう折り合いをつけるかということだと思います。 PHPを学ぶのはどのような感じですか? PHP チュートリアルは見つけやすく、通常は高品質です。
PHP の人気の欠点の 1 つは、このツールについて十分に知らない人からのあまり良くない指示が見つかることです。あるいは、誰かから学んだ「ベスト プラクティス」は 10 年前のものです。しかし、全体的に見て、それはまれなことであり、それがあなたを落胆させる必要はないと思います。または、何か月も使用してきたベスト プラクティスが最善ではないことが突然判明することはまれであり、大したことではありません。
PHP と他の言語の比較
次に、PHP と他の言語を比較します。これらの言語は次の要件を満たしている必要があります:
オープン ソース: 基礎となる言語やプログラムを自由かつ無料で使用または表示できることを意味します。Web 開発の分野に適用されます。必ずしも Web 開発に焦点を当てているわけではありませんが、Web 開発における比較的大規模なアプリケーションが含まれています。 -レベル 動的言語: 動的言語の特性を持ち、Web アプリケーション用のほとんどの言語がこの特性を持っています; 十分な規模のコミュニティ: 上記の条件を満たす言語は多数ありますが、狭い範囲でのみ使用されており、この最後の条件を使用して、それらをフィルタリングします。
PHP を使用する理由 JavaScript の代わりに?
おそらく、PHP と比較する最も重要な言語は JavaScript です。最新の開発では、クライアント側の開発と対話のために、すべてのプロジェクトが少なくとも少しの JavaScript を知っている必要があります。 Node を使用すると、サーバー上での JS の使用が比較的簡単になります。サーバーとクライアントで同じ言語を「同形に」使用できるのは非常に魅力的です。
PHP と同様、JavaScript は折衷的な言語ですが、多くの欠陥や「落とし穴」がある醜い言語ですが、JavaScript は過去 10 年間で非常に高速になりました。それは事実です。 JavaScript ではなく PHP を選択する理由は何ですか?すでに専門知識を持っているか、PHP のライブラリを使用している。それ以外の場合は、JavaScript の方が良い選択かもしれないと思います。
PHP とダイナミック サーバー ページ (.Net Core)
ダイナミック サーバー言語は、ネチズン プログラミングに使用される Microsoft 言語に由来します。これは PHP に非常によく似ています。ただし、Windows サーバー環境で実行されます。これは ASP.net に置き換えられました。現在は ASP.NET Core に置き換えられています。後者の 2 つは現在、PHP のようなオープンソース言語です。そして、私個人としては、どのバリアントでも ASP を少しも書いたことはありません。
Microsoft サーバーを使用し、それを好む場合は、ASP を選択します。それ以外の場合は、PHP を教えてください。 2 つのコミュニティの規模と規模は比較できません。
Ruby と PHP を使用する必要がありますか?
Ruby、特に Ruby on Rails は、過去 10 年間で 非常に人気がありました。 Ruby は今でも愛されている言語であり、私の意見では PHP よりもエレガントです。とはいえ、彼のコミュニティは小規模です。同時に、Ruby はもはや「ホットな言語」ではないことに気づきました(この役割は JavaScript に引き継がれました)。 Ruby はエレガントであり、それを使いこなす人がたくさんいるので、私はそれを避けるつもりはありません。しかし、Ruby にすでに精通している人材を採用するのは、PHP を採用するよりも依然として困難です。 (ただし、平均的な Ruby 開発者の方が、同じ PHP 開発者よりも優れていると思います。)
Python と PHP: どちらが優れていますか?
PHP と 1 対 1 で比較する場合に意味のある最後のものは、Ruby や JavaScript と同様、Python は PHP よりもサーバー上で実行するのが少し面倒です。しかし、非常に完成度の高い言語であり、その用途は PHP よりも多様であり、他の側面 (さまざまなサードパーティ ライブラリ、専門的な技術など) においても PHP よりも人気のある言語の 1 つであると思います。知識の習得、採用、就職活動)は全て同じです。PHP 対 Go 言語?スカラ言語? Java言語?お待ちください
冒頭で述べたように、多くの言語を比較すると、多かれ少なかれ類似点があります。比較に使用できる言語は多数あるので、いくつかについて簡単に説明します。Scala は、人気のあるインメモリ (Java 互換) 言語であり、人気が高まっているようです。 PHP よりもエレガントに設計されていますが、それ以外にはあまり機能がないようです。
また、これらの分析は選択を行うのに十分だと思いますが、検討できるオプションは他にもありますが、最終的には PHP を検討することになります。ニーズに応じてプログラミング言語を選択する必要があります
上記の比較では、なぜ PHP を使用する必要があるのでしょうか?上記で PHP の悪い設計をいくつか述べましたが、その中には私がよく経験するものもあります。たとえば、「型関数の検索」では、これらの関数の順序が一致していません。needle と haystack です。コード補完のない環境では、依然として落ちてしまいます。穴の中へ。 まったく新しい Web プロジェクトを構築していて、このプロジェクトが他のシステムと対話する必要がなく、作業しているのが自分だけである場合は、Python などの別の言語を試してみることになります。ただし、知っておく必要があるのは、このようなプロジェクトであっても、PHP を選択する理由はたくさんあるということです。 最新の言語であれば、Web アプリを構築できます。 PHP など、どの言語にも欠点があります。PHP では、プロジェクトで使用するかどうかを決定する前に、その欠点を明確に理解する必要があります。しかし、私としては、Keith Adams がスピーチで述べたように、Web プロジェクトを構築するために PHP を選択するつもりです。PHP の開発効率は本当に非常に高いです。
Python チームがある場合は、Python を使用してください。 Java に精通したパートナーがいる場合は、Java を使用して SaaS プログラムを作成します。言語が最も重要なことは決してありません。