まず第一に、パフォーマンス。使用すると、node.jsのパフォーマンスは予想ほど良くないように感じます。メモリの使用量はRubyとほぼ同じレベルであり、PythonやPHP以上のものです。コンピューティングのパフォーマンス(つまり、CPU使用)に関しては、純粋なコンピューティングにはそれほど利点はありませんが、非同期プロセスを適切に制御できるため、全体的なパフォーマンスはPHPよりもはるかに優れています。個人的には、主要なブラウザなどのJavaScript仮想マシンのパフォーマンスを改善することにコミットしている多くの大規模なプロジェクトがあるため、Node.jsはパフォーマンスに大きな可能性があると思います。同時に、JavaScriptは、単純な構文とオープン標準の言語です。 PythonやPHPとは異なり、互換性の考慮事項のためにパフォーマンスを改善するために大規模な再構成を実行することは困難です。
次に、パッケージマネージャーとライブラリがあります。 NODE.JSにはNPMが組み込まれています。NPMは非常に使いやすいパッケージマネージャーであるため、JavaScriptのライティングしきい値が低く、JavaScriptにはバックエンドに移植された多くの優れたフロントエンドライブラリがあるため、PypiやRubyemsよりもNPMに多くのパッケージがあります。 node.jsの開発におけるPHPとの違いは、誰もが依存関係を追加することを恐れていないことです。すべての小さな要件は、既存のライブラリを見つけて実装するためにNPMに送られます - そして、それはしばしば見つかります。したがって、node.jsの開発は基本的に依存関係を組み合わせることであり、それが小さい場合でもライブラリを書く傾向があります。これはUnixのアイデアに似ています。一方、node.jsコミュニティは非常にオープンソースに優しいです。ここでの親しみやすさは、ほとんどのライブラリがGitHubで公然と開発され、GPLほど「攻撃的」ではないMITなどの非常に緩いプロトコルを使用することを意味します。
コミュニティでは、node.jsのアプリケーションのほとんどはまだWebバックエンドにあり、Webバックエンドに関連するライブラリは基本的にいくつかの大きなショットで作成されています。たとえば、Express、Jshttp、Jade、Mocha、Koaは、TJ Mastersが率いる4〜5人によって開発されました。これは興味深い現象です。 - TJ神はついにnode.jsコミュニティからフェードアウトすることを決めました。
ツールチェーン、node.jsは比較的若く、過去2年間に多くの有用なツールが登場しました。たとえば、事前コンパイルされた方言、単体テストとシミュレーションテスト、ビルディングツールなど。私はそれがどれほど良いかはあえて言いませんが、それはPHPよりもはるかに優れています。理由に関しては、第一に、これらのライブラリは、Node.jsに利益をもたらすWebフロントエンドの困難な要求のために、これらのライブラリがフロントエンドとバックエンドの両方であるためです。次に、JavaScriptの柔軟でシンプルな構文のために、これらのツールは非常に巧妙でエレガントな方法で実装できます。 IDEに関しては、それはまだWebフロントエンドの恩恵を受けており、まだいくつかのIDEが利用可能ですが、JavaScript言語自体は静的分析をあまり助長していません。
構文、JavaScriptのシンプルで柔軟な構文を強調したいと思います。重要な点は、JSON、JSONは現在、Webフィールドで最も一般的なデータ形式であり、JavaScriptがJSONのネイティブサポートを持っていることです。 JavaScriptのすべてのデータ構造は、配列、関数、オブジェクト、クラスを含むJSON、オブジェクトのスーパーセットの周りに拡張されています。もちろん、これもトラブルをもたらします。なぜなら、書くことに制限がほとんどないため、書く方法を知らないことにつながるからです。最初に学習を開始すると、さまざまな状況でさまざまな設計パターンの利点と欠点を理解し、自分に合った特定のプロジェクトに適したそれらを書く方法を見つけるために、必然的にそれをリファクタリングします。したがって、node.jsは簡単に開始できると言えますが、大規模なプロジェクトを構築することは、開発者のスキルのテストです。歴史的な問題のため、JavaScriptの構文は美しくありませんが、幸いなことに、コーヒースクリプト、TypeScript、DART、Livescript、ClojureScriptなど、さまざまな事前にコンパイルされた方言があります。あなたに合ったものは常にあります。
シナリオを使用すると、JavaScriptは一般的なプログラミング言語であるため、Webのフロントエンドとバックエンドについて言及する必要はありません。他の側面を見てみましょう。 node.jsは、操作とメンテナンスの多くの状況が非同期に機能する可能性があり、JavaScriptが比較的優れた定期的なサポートを持っているため、サーバーツールや操作およびメンテナンスツールの作成に依然として非常に適していると個人的に考えています。 node.jsはインタープリターをインストールするだけで、依存関係の導入を避けることを恐れることなく、さりげなく使用できます。デスクトップおよびモバイルデバイスプログラミングの場合、node.jsにはnode-webkitおよびその他のさまざまなシェルがあります。現在の使用体験はあまり良くありませんが、開発コストを大幅に削減し、簡単にプラットフォームを削減できます。未来も明るいと考えられています。
最後に、学習node.jsについて話しましょう。私の意見では、学習node.jsには2つのポイントがあります。 1つは、node.jsの「イベントコールバックに基づいて非同期IO」を明確にすることです。これは、node.jsと他の主流のプログラミング言語の間で最も異なるポイントです。 2番目のステップは、NPMの上位100ライブラリを見ることです。よく見る必要はありません。それに精通して、各ライブラリが何をしているのかを知ってください。これらの2つの手順を完了した後、おめでとうございます、あなたはすでにnode.js開発者です。