php vs node.js smackdown:返信権
SitePointは最近、PHPとNode.jsの間でピーク対決を開催し、Craig Bucklerはこれら2つの開発技術を10の課題の1つに入れて、究極の勝者を決定します。
クレイグが記事で指摘しているように、この比較は常に議論の余地があります。興味深いフォローアップとして、私たちはBrunoškvorc(SitePointのPHP編集者)とJames Hibbard(SitePointのJavaScriptエディターの1人)を各ラウンドについてコメントするように招待しました。以下は、ラウンドバイラウンドの評価です...
キーポイント
- PHPは、スクリプトを実行するときにすぐにセットアップしてフィードバックを得るのが簡単であるため、初心者が「初心者」段階で開始して勝つことが簡単です。
- node.jsはPHPよりも若く、サポートが少なくなりますが、特にNPMの開発ツールの分野で、活気に満ちた急速に成長している生態系で知られています。
- JavaScriptはクライアント開発とサーバー開発の両方で使用されており、Syntaxの親しみやすさで有利になりますが、PHPの最新の更新により、言語の一貫性と堅牢性が大幅に向上しました。
- PHPはマネージドサービスで広くサポートされているため、展開プロセスは簡単であり、新しい開発者への入場障壁は低いため、従来のWebホスティングと展開には好ましい選択肢のままです。
- PHPとnode.js間のパフォーマンスの戦いは、両方が高性能に最適化できることを示していますが、node.jsの非ブロッキングの性質により、同時プロセスとリアルタイムアプリケーションの処理には利点があります。
課題の最初のラウンドは、各言語で「Hello World」Webページをどれだけ速く構築できるかを確認することでした。これには、サーバー環境のセットアップにかかる時間が含まれます。
PHPは、クレイグの推定でラウンドに勝ちました。これは、「概念的にシンプル」で「新しい開発者にとっては威圧的ではない」ためです。
ブルーノ:
PHPは、純粋に「Beginning」で勝ちます。なぜなら、より多くのホストがそれを簡単に開始できるからです。これは養子縁組の問題であり、他のことではありません。より多くのホストがノードを使用してコマンドラインをバイパスし、ファイルのアップロードとコントロールパネルの単純な「リロードアプリケーション」ボタンに直接移動すると、それらは等しくなります。ただし、画面に何かを表示することの実際の構文は、特にプログラミングの初心者でははるかに簡単です。
ジェームズ:
ローカルで開発するとき、この2つの間に大きな違いはありませんでした。ブラウザでPHPスクリプトを実行するには、何らかのサーバースタックをインストールする必要があります。ノードを実行するには、ExpressなどのWebフレームワークをインストールすることをお勧めします。しかし、Craigが言うように、PHPは概念的に単純です。ノードのエントリバリアは高くなっています。これに異議はありません。
ラウンド2:ヘルプとサポート
第2ラウンドでは、各言語でヘルプとサポートを受けることの難しさを調べました。 PHPは主にその長い歴史のためにラウンドに勝ちました。
ブルーノ:
ブルーノはこのジェームズ:
私はこれに同意します。 node.jsは新しいテクノロジーであるため、現時点では利用可能なヘルプが少なくなります。ただし、ノードが成熟するにつれて、これはそれほど重要ではなくなります。
第3ラウンド:言語文法
第3ラウンドは、PHPとJavaScriptの構文の理解と使用の容易さを比較しました。クレイグはこのラウンドをJavaScriptに授与します。
ブルーノ:
私はこれに強く反対します。 PHPにはいくつかの癖がありますが、それらの多くは最近修正されており、風変わりなものの多くは最新バージョンで削除されます。一方、JSの世界にはこの状況とこの状況があります。
ポイント3について(脳はモードを切り替える必要はありません。クライアント側とサーバー側の両方でjs
を使用できるため)、私は同意しません。サーバー環境は、クライアント環境とはまったく異なり、脳モードの切り替えが必要です。また、ブラウザでは使用できない新しい構文もいくつかあります。その逆なので、言語を切り替えるようなものです。ポイント4(JSを理解すると、もっと使用したいと思うようになります
)も私が同意しないポイントです。私は何年もJSとPHPを使用してきましたが、JSを使用すればするほど、それが好きではありませんが、それは純粋に個人的な好みです。ジェームズ:
私はjavascriptが好きです。私はそれが癖があることを知っています、私はそれにいくつかの落とし穴があることを知っていますが、Ecmascript 2015はこれらの問題の多くを修正し、いくつかのエキサイティングな新機能を言語にもたらします。 JavaScriptは強力で柔軟であり、さまざまなプログラミングスタイルに適応できます。 PHPと比較して、私はJavaScriptを書くのが好きです。ノードはこのラウンドで勝利に値します。第4ラウンド:開発ツール
第4ラウンドでは、各テクノロジーで利用可能なツールを考慮し、NPMによりノードが狭く勝ちました。
ブルーノ:
作曲家はもともとNPMに触発されていましたが、現在はNPMよりもはるかに優れており、同じライブラリの2つのバージョンをインストールする必要がある場合、NPMとは異なり、システムを壊すことはありません。 NPMとは異なり、作曲家は再帰的依存関係をインストールできます。これは、NPMが単にできないことですが、それは絶対に必要であり、パッケージマネージャーを構築し始めている人にとって最初のことです。
npmには、「コア開発者に優しい」と呼ぶのが好きないくつかの非常に悪いエラーメッセージもあります。それらを書く人だけが理解できます。最後に、NPMはVagrantでうまく機能しないため、ユーザーをフォローしたいという欲求がないことは言うまでもありません。これは何年も前から存在してきたバグであり、Windowsで本質的に使用できません。決して些細なユーザーベースではありません。 PHPには独自の愚かな間違いもありますが、これらの間違いは何年もの間、オペレーティングシステム全体のユーザーを疎外しません。
認められて、作曲家はPHPにバンドルされていませんが、そうすべきではないと思います。実際に別のアプリケーションであるパッケージマネージャーは、部分的であってはなりません。ある日、誰かが本当にの良いパッケージマネージャーをノードのパッケージマネージャーにした場合、それを現在のパッケージマネージャーに置き換えることは、人々を移行させることは言うまでもなく、官僚的な地獄になるでしょう。また、インストールすることは、実際には単なるターミナルコマンドのラインであるか、インストーラーのダウンロードです。
作曲家が影響を少ないという声明は完全に間違っています。作曲家の開発以来、PHPのランクに参加したすべての新しいPHP開発者と、現在のワークフローに追加しなければならない偉大な開発者のほとんどに影響を与えてきました。 Composerが登場する前に多くのPHPユーザーがいたからといって、それがより小さな影響を与えるという意味ではありません。作成されて以来、それは大きな影響を与えてきました。 「コミュニティへの影響の少ない」などの絶対的な声明は、事実に基づいて行われるべきではありません。
ほとんどのPHP開発者がノードをインストールすることになっているという事実について議論することはできませんが、これは本当です。悲しいことに、多くの優れたツールはノードを使用して開発することを好みますが、BowerPhpのようなプロジェクトのために、ノードフリーの開発環境が必要です。
ジェームズ:
ノードがこのラウンドに勝ったことを非常に嬉しく思います。
私はnpmが好きです。インストールが簡単で使いやすく、数千の利用可能なパッケージを使用して、ほぼすべてのニーズを満たすことができます。また、NPMを使用すると、グローバルインストールとローカルインストールパッケージを選択できることも気に入っています(通常、Rubyバージョンで宝石がインストールされているRubyのような言語とは対照的です)。ツールもとても良いです。 BowerやGruntなどのツールは、ワークフローで定期的に位置し、生産性を何度も向上させています。
また、NPM V3がベータ版であることに言及する価値があります。これにより、ネストされたnode_modulesメソッドエラーなど、ブルーノによって提起された問題の多くが解決します。ピークショーダウン全体の紹介:
PHP開発者は、最終的にnode.jsをインストールする必要がある/必要になる場合があります。そうでなければ、そうではありません。5回目のラウンド:環境
第5ラウンドには、テクノロジーの使用と展開の場所、およびどのプラットフォームとエコシステムがサポートされているかが含まれます。クレイグは、彼がラウンドについて言ったことを明確にしていませんが、それはノードにとって圧倒的な敗北のように見えます。
ブルーノ:
クレイグは、PHPとノードのWeb利点(一般的なWeb開発の課題)を比較すると言い、JSはどこにでもあると言います。まず、JS自体の代わりにnode.jsを比較します。第二に、実行できる言語と環境を比較します。魚が木を登ることができないため、サルは魚よりも優れていると言うのは愚かです。しかし、猿や魚は泳ぐことができるので、彼らが泳ぐ量を比較しましょう。
PHPは、Web開発環境で簡単に勝ちます。デスクトップ開発用のPHPにはいくつかのツールがあります。はい、実際、おそらくそれらを使用しないでしょう。ただし、PHPのコマンドラインの側面を間違いなく使用できます。
ジェームズ:
同様に、私はクレイグに同意します。 node.jsを非常に人気のある機能(速度、スケーラビリティ、JSONとの親和性、低リソース使用量)にする機能の多くは、IoTデバイスの電源など、他の多くのタイプのアプリケーションにも非常に適しています。つまり、ロボットが嫌いなのは誰ですか?
ノードは、NW.JS(Chromiumやnode.jsに基づくアプリケーションランタイム)などのプロジェクトも生み出しました。これにより、HTMLおよびJavaScriptでネイティブアプリケーションを作成できます。エキサイティングな時間!
ラウンド6:統合
6回目のラウンドでは、データベースやドライバーとの統合を調べ、主にその長い歴史のためにPHPが勝ちます。
ブルーノ:
統合は引き分けです。 PHPにはこの分野で年齢の利点があり、より多くのオプションを提供しますが、MySQL拡張機能のような非常に時代遅れの統合に苦しんでいることも意味します。何年も使用。
ジェームズ:
これに同意するかどうかはわかりません。ラウンド全体の言葉遣いは曖昧に思えます。「より古く、あまり人気のないテクノロジー」の例があることを願っています。これはまた、ノードの大きな利点を強調する絶好の機会でもあります - JSONを使用します。 JSONはおそらくWeb上の最も重要なデータ交換形式であり、最新のNOSQLデータベースの多くと対話するための共通言語でもあります。 JSONはJavaScriptプログラムに最適です。つまり、ノードを使用する場合、データは再フォーマットなしでレイヤー間でスムーズに流れることを意味します。ブラウザからサーバー、データベースに構文を使用できます。 ラウンド7:ホスティングと展開
7回目のラウンドでは、新しいアプリケーションをリアルタイムWebサーバーに展開することの難しさを調べます。Craig'sViewでは、PHPはこの点で明確な勝者です。
ブルーノ:
再び、ブルーノは沈黙したままでしたジェームズ: これは、ノードが追いつく必要がある領域です。すべての経済的Webホスティング会社は、MySQLを含むPHPパッケージを提供しています。ある種の出力を確認するには、.php拡張機能を備えたファイルを作成し、?<の間にいくつかの有効なステートメントを配置し、ファイルをアップロードしてブラウザに向けます。これは、ノードの場合はそうではありません。もちろん、多くのノードホスティングオプションがありますが、常により多くの設定とコマンドラインアクセスが必要であり、初心者が阻止できます。 PHPは間違いなくラウンドに勝ちました。
フロア8:パフォーマンス
第8ラウンドは、通常、開発チームの経験と努力に依存していますが、クレイグは複数の方法でノードの利点を指摘しています。
ブルーノ:
誤解がたくさんあります。まず、この投稿はすべてのパフォーマンスディスカッションを無意味にします。すべてのパフォーマンスの利益/損失は、開発者のエクスペリエンスとアプリケーションの種類に完全に依存しています。しかし、この投稿がパフォーマンスの議論が文脈なしで愚かであることをあなたに納得させなくても、ここに私自身の議論のいくつかがあります:
- PHPは、組み込みのマルチスレッドサーバーを取得しています。これにより、外部サーバーをバイパスすることが可能になりますが、推奨されません(まだ)。また、Nginxのようないくつかの超高速サーバーがあり、PHPを開始してリクエストを委任するプロセス全体をあまり明白ではありません。 HHVMやAppServerなどのプロジェクトは、PHPに強力な非同期およびマルチスレッドの側面を追加し、PHP7自体も部門でいくつかの強力なアップグレードを受けました。
- PHPの単一リクエストアプリケーションライフサイクルは、生の速度を探している場合、MemcachedやCraigが言うだけでなく、Ajaxやその他の方法を使用するだけでなく、簡単に回避できます。 。ちなみに、サーバー側のJSアプリケーションもデフォルトで単一リクエストされます。さらに重要なことは、この単一のリクエストライフサイクルも、使用するたびにアプリケーションを再構築するため、メモリの問題を回避し、ゴミをクリーンアップし、合理化してきれいに保つため、利点です。バックエンドまたはフロントエンドで安定、長期、メモリフリーのJavaScriptアプリケーションを最後に使用したのはいつですか?
ジェームズ:
ノードは、高性能で低遅延のアプリケーションの優先ランタイムとして宣伝されており、いくつかのFortune 500企業のコードスタックを入力しています。非ブロッキングI/OメカニズムとGoogle Chrome V8エンジンテクノロジーのおかげで、「高速」および「スケーラブル」と同義語になりました。ノードが企業に大幅なパフォーマンスの向上をもたらし、開発者の生産性を向上させる方法について、オンラインで多くのストーリーがあります。このラウンドノードが勝つことを嬉しく思いますが、それが物議を醸すポイントであることを理解しています。
ラウンド9:プログラマーの熱意
9回目のラウンドでは、クレイグが現在PHPとノードを使用している開発者にどれだけ熱意を示したかを調べ、彼の意見では、ノードは簡単に勝ちます。
ブルーノ:
クレイグ、あなたは間違った場所を探しているに違いありません。 PHPコミュニティは非常に熱心で非常に活発です。毎年20を超える大規模な会議があり、いくつかの素晴らしいトピックが議論されています。 HHVMとPHP7の出現により、水ステッピングは終了しました。
また、6年間の開発の後、ノードの開発者は、バージョン番号がどのように機能するか(執筆時点でv0.12.5)をまだ学んでいないと言いたいと思います。これは奇妙です。この未熟で絶望的な「安全に行動する」(ああ、あなたは不安定なものを使用し、あなたのせいをあなたの会社にクラッシュさせました)、重要であるが見落とされている古代のエラーと相まって、オペレーティングシステムグループ全体のユーザーを疎外します。プログラミング言語エコシステムから。
ノードが好きではありません。私の嫌いは否定的な経験に基づいており、主にNPMを中心に展開しています。これは将来的に変わるかもしれませんが、今のところ、何らかの形でノードを使用しなければならないたびに、私は恐怖と絶望に満ちています。私たちは皆、独自の好みを持っていますが、客観的な状態を維持し、仕事に適したツールを選択することが重要です。しかし、適切なツールを選択することは、最初に間違ったツールを選択することを意味することを認めることも重要です。だからクレイグを聞かないでください。ジムを聞かないでください。私に耳を傾けないでください。試してみてください - 何が機能するかを見て、気持ちが良いものを見つけて、それを使用してください。最終的に、あなたが効率的で素晴らしいと感じさせる環境は、ミリ秒でより短い負荷時間を与えるのではなく、最高の環境です。 ジェームズ:
ノードは非常に人気があります。今、Nodelandは多くの革新を行っています。熱意は主観的ですが、ノードがラウンドに勝ってうれしいです。
ラウンド10:未来
10ラウンドは両方の言語の未来を調べており、クレイグはこの段階で両方の言語が明るい見通しを持っているように見えるため、このラウンドを引き分けと宣言します。
ブルーノ:
ブルーノは急いでPHPコードを書いて、SitePointの信じられないほどのPHP記事を編集しなければなりませんでしたジェームズ: ジェームズはまた、彼の最愛のJavaScriptチャンネルに戻りたいと思っていますが、彼はこれらの別れの言葉を提供しています:このラウンドの抽選は公正な結果です。ノードは新星ですが、PHPを置き換えるにはいくつかの大きなものが必要です。 全体として、唯一のツールがハンマーである場合、すべての質問は爪のように見えます。ノードはすべてのシナリオに最適な選択ではありません。実際、多くの場合、それを使用しないことは理にかなっています。しかし、ノードが得意なのは、本当に良い仕事をしています。情報に基づいた選択をして、あなたの仕事に最適なツールを選択するのはあなた次第です。それで、ブルーノとジェームズが彼らの意見を表明したので、あなたは何を言わなければなりませんか? PHPおよびnode.js
に関する
FAQ(FAQ)パフォーマンスの観点からPHPとnode.jsの主な違いは何ですか?
PHPおよびnode.jsは、根底にあるさまざまなアーキテクチャにより、異なるパフォーマンス特性を持っています。 PHPはデフォルトでは同期言語です。つまり、一度に1つの操作を実行し、次の操作を続行する前に各操作が完了するのを待っています。これは、多数のI/O操作を処理するときにパフォーマンスを低下させる可能性があります。一方、Node.jsはJavaScript上に構築されており、本質的に非同期で非ブロッキングです。これは、特に多数のI/O操作を備えたアプリケーションで、ある操作が完了する前に1つの操作が完了するのを待つことなく、複数の操作を同時に処理できることを意味します。
phpの学習曲線は、node.jsとどのように比較されますか?PHP構文は単純で、オンラインリソースが豊富であるため、初心者が学習しやすいと考えられています。 node.jsは複雑ではありませんが、JavaScriptと非同期プログラミングをしっかりと把握する必要があります。これは初心者にとって挑戦的です。ただし、JavaScriptにすでに精通している場合は、Node.jsが簡単に開始できることがわかります。
リアルタイムアプリケーションの場合、PHPまたはnode.jsはより適切ですか?
node.jsは通常、チャットアプリケーション、コラボレーションツール、マルチプレイヤーゲームなどのリアルタイムアプリケーションに適しています。これは、複数の同時接続を処理できるイベント駆動型の非ブロッキングアーキテクチャがあり、リアルタイムアプリケーションにとって重要なスループットが高いためです。
スケーラビリティの観点からPHPとnode.jsを比較する方法は?
PHPとnode.jsの両方を拡張して大規模なアプリケーションをサポートできますが、それらはさまざまな方法でスケーリングします。 PHPは垂直にスケーラブルであるため、より強力なハードウェアを追加することで容量を増やすことができます。一方、node.jsは、サーバープールにマシンを追加することで水平方向にスケーリングします。 node.jsには組み込みモジュールクラスターもあります。これにより、マルチコアシステムを活用して、サーバーポートを共有する子プロセスを作成できます。
PHPとnode.jsのコミュニティサポートの点で、それらはどのように違いますか?
PHPとnode.jsの両方に、その開発に貢献およびサポートする巨大でアクティブなコミュニティがあります。 PHPには長い歴史があり、多数のリソース、ライブラリ、フレームワークがあります。 Node.jsは、新しいものの、急速に成長しており、GoogleやMicrosoftなどの大企業によってサポートされています。両方のコミュニティは、さまざまなオープンソースプロジェクトを積極的に開発および維持しています。
セキュリティの観点からPHPとnode.jsを比較する方法は?
PHPとnode.jsの両方に強力なセキュリティ機能がありますが、アプリケーションのセキュリティは通常、言語自体よりも開発者の知識と実践に大きく依存します。 PHPは長く存在しており、ユーザーベースが大きいため、セキュリティの脅威にさらされているため、セキュリティ機能とベストプラクティスが増えています。 node.jsは比較的新しいもので、既知の脆弱性は少なくなりますが、組み込みのセキュリティ機能も少なくなります。
SEOの場合、PHPまたはnode.jsの方が優れていますか?PHPとnode.jsの両方をSEO用に最適化できます。 PHPは長年にわたって使用されており、検索エンジンによって簡単にインデックス付けされる動的なWebサイトを作成しています。一方、node.jsは、ユーザーエクスペリエンスとウェブサイトのパフォーマンスを改善できる高速でスケーラブルなアプリケーションを構築するために使用できます。どちらもSEOの重要な要因です。
データベースサポートの観点からPHPとnode.jsを比較する方法は?
PHPは、MySQL、PostgreSQL、SQLiteなどの幅広いデータベースをサポートしています。また、サードパーティライブラリを介してMongoDBなどのNOSQLデータベースもサポートしています。一方、node.jsは、JSONベースのデータ処理により、MongoDBなどのNOSQLデータベースに特に適しています。また、サードパーティモジュールを介したリレーショナルデータベースもサポートしています。
サーバー側のレンダリングの場合、PHPまたはnode.jsはより適切ですか?
PHPは、サーバー側のレンダリング用に設計されており、この目的に長年使用されてきました。一方、node.jsは、特にExpress.jsなどのフレームワークで使用する場合、サーバー側のレンダリングを実行することもできます。ただし、Node.jsはAPIとバックエンドサービスの構築によく使用され、フロントエンドは個別のテクノロジーによって処理されます。
開発速度の観点からPHPとnode.jsを比較する方法は?
開発速度は、プロジェクトの複雑さと開発者の言語に精通していることによって異なる場合があります。 PHPは、シンプルな構文とリッチな組み込み機能により、急速な発展を達成できます。 Node.jsは、イベント駆動型アーキテクチャと非ブロッキングI/Oのおかげで、特に多数のI/O操作を備えたリアルタイムアプリケーションまたはサービスで、迅速な開発を可能にします。
以上がphp vs node.js smackdown:返信権の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LaravelのバックエンドでReactアプリを構築する:パート2、React
