ホームページ  >  記事  >  バックエンド開発  >  php対node.jsの論争の多面的分析

php対node.jsの論争の多面的分析

伊谢尔伦
伊谢尔伦オリジナル
2016-11-25 14:00:361059ブラウズ

PHP と Node.js の間の議論は長い間続いています。前者は動的 Web 開発に使用され、後者は高性能 Web サーバーを作成するために使用される JavaScript ツールキットです。 InfoWorld Test Center の Peter Wayner が最近、この 2 つの利点を指摘した記事を書いていますので、ぜひご覧ください。

php対node.jsの論争の多面的分析

以下は翻訳です:

これは典型的なハリウッドのプロットです: 別々の道を歩んだ二人の古い友人の間の戦いです。摩擦は多くの場合、一方が他方の自明の領域に興味を持ったときに始まります。この映画のプログラミング言語バージョンでは、Node.js の導入により、友人たちのプロットがほぼ一致するものになります。かつてインターネットを共に支配していた 2 つのパートナーである PHP と JavaScript は、現在開発者のシェアを争っています。

以前は、彼らのパートナーシップはシンプルでした。 JavaScript はブラウザ上の細かい部分を処理し、PHP はポート 80 および MySQL に存在するすべてのサーバー側タスクを処理します。この幸せな結合は、インターネットの多くの重要な部分に力を与え続けています。 WordPress、Drupal、Facebook では、人々が PHP から離れるのはほんの一瞬です。

しかしその後、賢い子供がサーバー上で JavaScript を実行できることに気づきました。突然、次世代サーバー スタックを構築するために PHP を使用する必要がないことに気づきました。 Node.js とクライアント上で実行されるフレームワークを構築するには、1 つの言語で十分です。一部の人にとって、「JavaScript はどこにでもある」が信条になっています。

もちろん、エンディングはまだ終わっていません。 Node.js の純粋さと JavaScript の普遍性を宣伝する単純なプログラマーと比較して、コード ベースの深さと PHP の理解の安定性に満足するプログラマーがいます。奇妙な老人はサーバーサイドの成り上がり者と戦うことができるでしょうか? JavaScript はその旧友を打倒し、世界征服を達成できるでしょうか?電子レンジでポップコーンをもう一掴み取り出し、座って見てみましょう。

Where PHP Wins: Mixed Content Code

あなたが入力していると、その考えがウェブサイト上のテキストになります。 URL のいくつかのパラメータに基づいてプロセスにブランチを追加したいとします。ちょっとした if-then ステートメントを使用すると、見栄えがよくなります。あるいは、データベースからテキストやデータを追加したい場合もあります。 PHP を使用すると、PHP マジック タブを開いて数秒でコードの記述を開始できます。テンプレートは必要ありません。すべてがテンプレートです。プログラマブル ロジックの力をすぐに利用できるため、追加のドキュメントや骨の折れるアーキテクチャは必要ありません。

ノードが勝つ場所: 分離されたコンテンツ

コンテンツを混合するコードは松葉杖であり、最終的には害を及ぼします。もちろん、HTML コードを混ぜるのは最初の 2、3 回は楽しいです。しかし、コードベースはすぐに混乱してしまいます。実際のプログラマーは構造を追加し、装飾層を論理層から分離します。新しいプログラマーにとって、コードは理解しやすく保守しやすいものです。 Node.js 上で実行されるフレームワークは、モデル、ビュー、コントローラーが分離されている方が快適であることを知っているプログラマーによって構築されています。

PHP が勝つ場所: 深いコードベース

ウェブには PHP コードが溢れています。 Web サイトを構築するための最も一般的なプラットフォーム (WordPress、Drupal、Joomla) はすべて PHP で書かれています。これらのオープンソース プラットフォームだけでなく、そのプラグインのほとんども PHP で書かれています。 PHP コードはインターネット上のあらゆる場所に存在し、あなたがダウンロードして変更し、独自に使用するのを待っています。

Where Node Wins: New Code Means More Modern features

もちろん、オンラインには何千ものオープンソースの PHP ファイルがありますが、中には 8 年前の WordPress プラグインもあり、誰かがダウンロードしてくれることを祈っています。何年も更新されていないコードをいじるのに何時間も、何日も、何週間も費やしたい人がいるでしょうか? Node.js プラグインは新しいだけではなく、最新のアーキテクチャに関する完全な知識に基づいて構築されています。

PHPが勝てる点:シンプルさ(ある程度)

PHPにはあまり多くはありません:文字列と数値を処理するためのいくつかの変数と基本的な関数です。データをポート 80 からデータベースに移動し、またその逆に戻すこと以外は何も行いません。これがやるべきことです。最新のデータベースは、重い負荷を軽減する素晴らしいツールです。 PHP は、複雑であってはいけない作業に対して、適切な量の複雑さを備えています。

Node が勝つ場所: クロージャとより複雑さ

JavaScript には、一部の人を夢中にさせる小さな癖がたくさんある場合があります。しかし、ほとんどの場合、これは最新の構文とクロージャなどのいくつかの便利な機能を備えた最新の言語です。簡単に再構成して拡張できるため、jQuery のような強力なライブラリが可能になります。オブジェクトと同じように関数を渡すことができます。なぜ自分自身を制限するのでしょうか?

PHP が勝てる点: クライアント アプリケーションは必要ありません

ブラウザとサーバーで同じ言語を使用することについてのこれまでの話は良いことですが、ブラウザで言語を使用する必要がない場合はどうなるでしょうか? HTML フォームでデータを送信するとどうなるでしょうか?ブラウザーのポップアップ。20 回以上の Web サービス呼び出しからブラウザー上にページを作成しようとするアクティブ化されていない JavaScript によって引き起こされる頭痛や不具合がありません。純粋な HTML は他の何よりも頻繁に機能しますが、PHP は HTML の作成用に最適化されています。なぜわざわざブラウザで JavaScript を使用するのでしょうか?小型携帯電話での小さなブラウザーのリロードを避けるために、すべての操作をサーバー上で構築します。

Node が勝つ場所: Thin Service 呼び出しと HTML-fat PHP 呼び出しの比較

AJAX クレイジーな HTML5 Web アプリケーションには可動部分がたくさんありますが、クールで非常に効果的です。 JavaScript コードがブラウザーのキャッシュに保存されると、新しいデータが下位に移動します。これには、大量の HTML マークアップやページ全体を繰り返しダウンロードする必要はありません。データのみが変更されました。洗練されたブラウザ側 Web アプリケーションの作成に時間を投資する意欲があるのであれば、十分に見返りがあります。 Node.js は、Web サービスを通じてのみデータを送信するように最適化されています。アプリケーションが複雑でデータが豊富な場合、これは効率的な配信のための良い基盤となります。

PHP が勝つ場所: SQL

PHP と MySQL およびその多くの亜種 (MariaDB など)。 MySQL ではすべてがうまくいかない場合でも、Oracle や Microsoft の他の優れた SQL データベースがあります。ほとんど変更を加えることなく、コードをクエリに変換できます。 SQL の広大な世界には境界がありません。最も安定した成熟したコードの一部は SQL データベースとインターフェイスします。つまり、すべての機能を PHP プロジェクトにも簡単に統合できます。完璧な幸せな家族ではないかもしれませんが、とても大きなものです。

Node.js が勝つ場所: JSON

SQL にアクセスする必要がある場合は、Node.js の関数ライブラリで実行できます。ただし、Node.js には、多くの最新の NoSQL データベースと対話するための共通言語である JSON もあります。 PHP スタック用の JSON ライブラリを取得できないというわけではありませんが、JavaScript を使用する場合、JSON のシンプルさを使用して処理できる流体がいくつかあります。これは、ブラウザから Web サーバー、データベースまでの構文です。コロンと中括弧はどこでも同じように機能するため、時間を節約できます。

PHP の利点: コーディング速度

ほとんどの開発者にとって、PHP Web アプリケーションを作成する方が速く感じられます。コンパイラもデプロイメントも、JAR ファイルやプリプロセッサも必要ありません。お気に入りのエディターといくつかの PHP ファイル ディレクトリだけです。ペースは人によって異なりますが、プロジェクトを迅速に完成させるという点では、PHP は非常に優れたツールです。

Where Node.js Wins: Raw Speed

JavaScript コードを書くプロセスでは、中括弧や括弧を数えるときは少し難しいですが、正常に記述できた後は、Node.js コードが飛ぶようになります。そのコールバック メカニズムは、スレッドの実行時間を節約できるため、非常に賢明です。コアはあなたのためにすべてを行うように構築されています。それは誰もが望んでいることではないでしょうか?


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。