ストーリー全体は、ハリウッド大作映画の古典的なプロットの傾向とまったく同じです。2 人のかつての友人が今では袂を分かち、さらには生死を賭けた闘争を強いられることになります。最初の意見の相違は深刻なものではありませんでした。それは単に古い友人が、相手が長年占拠していながら決して話してこなかったビジネス分野に興味を持ち始めただけでした。このプログラミング言語対決映画の実写版では、Node.js が引き金となって善良な兄弟が敵対し、これをきっかけに互角の戦いが始まりました。PHP と JavaScript は協力してインターネット世界全体を支配しました。 、しかし今では開発者のサポートを争うために互いに殺し合っています。
当時を振り返ると、協力関係は常にシンプルで純粋でした。当時、JavaScript がブラウザ上の詳細を処理し、PHP がポート 80 と MySQL の間に存在するすべてのサーバー側タスクを管理していました。当時、両者は良好な協力姿勢を維持し、インターネットのさまざまな主要コンポーネントに対するサポートを提供し続けました。 WordPress、Drupal、Facebook のいずれであっても、PHP がなければ、人々は 1 分たりともインターネットに留まることはできません。
しかし、賢い技術者が驚くべき秘密を発見しました。それは、JavaScript もサーバー上で実行できるということです。ほぼ一夜にして、次世代のサーバー スタックを構築するのに PHP の力はもう必要ないように思えました。たった 1 つの言語で、クライアント上で実行される Node.js やその他のさまざまなフレームワークを構築できました。 「JavaScript はどこにでもある」という考えが一部の開発者の間で定着しています。
もちろん、この物語の結末はまだ決まっていません。 Node.js の進歩と JavaScript の利便性を説く開発者には必ず反対する人がいます。彼らは PHP の深いコード基盤と長期にわたって安定した実際のパフォーマンスを好みます。では、この老支配者は長年占拠してきたサーバーのホームコートで挑戦者を倒すことができるだろうか? JavaScript はその旧友を容赦なく打倒し、世界を統一するという野望を実現するのでしょうか?ポップコーンバケツとコーラを手に取り、ルームメイトが一緒にセックスするこのエキサイティングなショーを見てください。
PHP の勝利: コードとコンテンツの混合
入力プロセス中、もちろん、誰もが自分のアイデアを Web サイトのテキストコンテンツに直接変換し、同時にブランチや if の一部を追加したいと考えています。 -次に、URL 内の特定のパラメーターに応じて、サイトに美しい視覚効果が与えられるようにするための process ステートメントに進みます。あるいは、単一のデータベースを使用してテキストやデータを混合できるようにしたいと考えています。 PHP の助けを借りれば、魔法の PHP タグを開いて数秒以内にコードの記述を開始するだけです。はい、テンプレートは必要ありません。すべてがすでにテンプレート化されています。追加のファイルや複雑な構造を使用する必要はありません。プログラマブル ロジックの機能をすぐに利用できます。
Node.js の勝利: フォーカス分割
コードとコンテンツの混合は、最初はユーザーをうまくガイドできますが、最終的には負担が大きくなることがよくあります。確かに、コードと HTML を組み合わせるのは、少なくとも最初の数回は非常に楽しいものです。しかし、私たちのコードベースの多くは、ロジックが混在した混乱したものになります。本物のプログラマはそれに構造を追加し、装飾層を論理層から分離します。明らかに、初心者の開発者はプロジェクトをより明確に理解でき、その後のメンテナンス作業を簡単に完了できます。 Node.js 上で実行されるさまざまなフレームワークは、モデル、ビュー、コントローラーが明確に分離されると作業が改善されることを知っているプログラマーのグループによって構築されています。
PHP の勝利: 深いコードベース
オンライン世界全体が大量の PHP コードで満たされています。 Web サイトの構築に使用されるさまざまな主流プラットフォーム (WordPress、Drupal、Joomla など) は PHP 言語で書かれています。これらのプラットフォームに加えて、ほとんどの関連プラグインもオープン ソース コードの形式で存在します。全体として、PHP コードはすぐに入手でき、誰もがそれをダウンロードし、変更し、必要に応じて使用するのを待っています。
ノードの勝利: 新しいコードは最新の機能を意味します
何千ものオープンソース PHP ファイルが、誰もがより簡単にプロジェクト開発を完了するのに確かに役立つことは否定できませんが、その多くは 8 つの WordPress プラグインに達しています。 10 歳の人々は、開発者がダウンロードして使用するのを待っています。何年も更新されていないコードのデバッグに、何時間、何日、さらには何週間も費やしたい人がいるでしょうか?少なくとも私はそうしたくない。 Node.js プラグインは新しいだけでなく、最新のアーキテクチャ ソリューションによってもたらされるあらゆる利便性を享受できます。コードのこの部分を開発したプログラマーは、最新の Web アプリケーションがクライアントにもっとインテリジェントな要素を導入する必要があることをよく知っていました。
PHP の勝利: 利便性 (多かれ少なかれ)
PHP 言語の使用については多くを語る必要はありません。文字列と数値で構成されるいくつかの変数と基本的な関数がすべてです。これは非常に焦点を絞ったソリューションであり、ユーザーが期待しているのは、ポート 80 からデータベースおよびバックエンドにデータを移動するためにこれを使用することだけです。 PHP には大した野心はありません。このタスクを適切に完了できることが PHP の当然の義務です。最新のデータベースは奇跡的なツールなので、あらゆる種類の重いワークロードを処理できるようになります。 PHP は適度に複雑な処理方法なので、使いにくくする必要はありません。
ノードの勝利: クロージャの複雑さなど
JavaScriptの使用におけるいくつかの小さなぎこちなさが一部の開発者を狂わせるかもしれませんが、全体的にはそれは最新のプログラミング言語であり、その中には最新の機能が多数含まれています構文に加えて、クロージャによって表される一連の実用的な機能が含まれています。簡単に再構成および拡張できるため、jQuery のような強力なライブラリが可能になります。オブジェクトのような関数について心配する必要はありません。なぜ自分自身と闘わなければならないのですか?
PHP の勝利: クライアント アプリケーションは不要
ブラウザとサーバーで同じ言語を使用できれば、実際の効果は間違いなく最高であると誰もが言います。しかし、ブラウザで言語をまったく使用する必要がなければ、もっと良くなると思いませんか? HTML 形式でデータ出力を直接実装できたらどうなるでしょうか?ブラウザーは、数十の Web サービス呼び出しを使用してブラウザー上にページを作成しようとする JavaScript スレッドによって引き起こされる手間や不具合を発生させることなく、このデータを直接受け入れることができます。多くの場合、純粋な HTML は他のフォームよりも優れたパフォーマンスを発揮し、PHP はそのような作成タスク用に完全に最適化されています。なぜブラウザに JavaScript をわざわざ導入するのでしょうか?すべてをサーバー上に構築し、重すぎるタスクを小型携帯電話の小さなブラウザに任せないようにするのが正しい解決策です。
ノードの勝利: サービス呼び出しは、肥大化した PHP HTML 呼び出しよりも無駄がありません
AJAX は HTML 5 Web アプリケーションに多くの可動部分を詰め込むことがよくありますが、それらは本当にクールで強力で効果的な利点です。 JavaScript コードがブラウザーのキャッシュに保存されると、ネットワーク上でやり取りされるのは新しいデータだけになります。ここでは、大量の HTML タグを扱う必要がなく、ページのコンテンツ全体を繰り返しダウンロードする必要もありません。その中のデータのみが変更されます。時間をかけて素晴らしい Web アプリケーションを作成する意欲があれば、それは間違いなく理想的な利益をもたらします。 Node.js はデータ配信メカニズムに合わせて徹底的に最適化されており、データは Web サービスに提供するだけで済みます。アプリケーションが非常に複雑で大量のデータでいっぱいの場合、Node.js は間違いなく情報を効果的に送信するための優れた基盤を確立します。
PHP の勝利: SQL
PHP の設計自体は、MySQL およびその複数のバリアント (MariaDB など) との共存とコラボレーションの必要性を考慮に入れています。 MySQL が実際のニーズを満たすのに十分でない場合は、Oracle や Microsoft の他の優れた SQL データベースから選択できます。私たちのコードは、簡単なアクティブ化を通じてクエリ命令に変換できます。 SQL の広大な世界は無限であり、その領域は今も拡大し続けています。最も安定して高度に開発されたコードのかなりの数が SQL データベースに接続されることになります。これは、これらすべての強力な機能が最終的に PHP プロジェクトに簡単に統合されることを意味します。おそらく、生態系全体が完璧で調和のとれた家族とは言えませんが、そのかなりの規模は否定できません。
Node.js の勝利: JSON
SQL にアクセスする必要がある場合、Node.js はこのタスクを完了するための関連ライブラリも提供します。さらに、Node.js は JSON と相互運用することもでき、このユニバーサル ソリューションは最新の NoSQL データベースの多くと対話できます。これは、PHP スタックで JSON ライブラリを取得できないというわけではありませんが、JavaScript で JSON を使用すると、タスク処理プロセスが単純で便利になることがよくあります。このようにして、ブラウザから Web サーバー、データベースに至るまで、コロンと括弧がまったく同じ方法と機能で同じ構文が使用されることを保証できます。これにより、誰もが開発時間を節約し、コード作成時のフラストレーションを大幅に軽減できます。
PHP の勝利: コーディング速度
ほとんどの開発者にとって、PHP で Web アプリケーションを作成すると、より効率的なコーディング エクスペリエンスが得られることがよくあります。コンパイラーもデプロイメントも、JAR ファイルや事前の準備も必要ありません。 - 処理機構 - 好みのエディターとディレクトリ内のいくつかの PHP ファイルを使用するだけで、開発作業が簡単になります。実際の開発プロセスは異なるかもしれませんが、プロジェクトを迅速に完了するための魔法の武器となると、PHP は間違いなくこの内部闘争で役割を果たします。
Node.js の勝利: 生の速度
コード自体の中括弧や括弧の数を見ると、確かに JavaScript コードを書くのはより困難ですが、開発作業が完了した後の Node.js コードの実行速度は非常に驚くべきものです。コールバック メカニズムの導入は、さまざまなスレッドを処理する時間を大幅に節約できるため、天才的な行動です。コードの中核はよく構築されており、実際に必要なことを実現するために特別に設計されています。これはすべての開発者が夢見ることではないでしょうか?
英語: http://www.infoworld.com/article/2866712/php/php-vs-node-js-an-epic-battle-for-developer-mind-share.html
上記では、PHP 対 Nodejs: 開発者の好みに関する壮大な戦いについて、さまざまな側面を含めて紹介していますが、PHP チュートリアルに興味のある友人にとって役立つことを願っています。