web-dev-qa-db-ja.com

node.jsは、PerlやPythonなどの従来のスクリプト言語の実行可能な代替手段ですか?

最近、私はクロスプラットフォームの汎用スクリプト言語としてのPerlに夢中になり、niether PythonまたはRubyも私に本当に魅力的でした。

しかし、私はブラウザーのJavaScriptにますます慣れてきており、V8などの最新のエンジンでかなり良いパフォーマンスを実現しており、node.jsはここ数年で実際に普及しています。

ただし、node.jsは、主にサーバー側のネットワークプログラミングを目的としています。ホームページで宣言されているとおり:

V8に基づくイベント駆動型I/Oサーバー側JavaScript環境。

Node.jsが現在、Perl、Python、Rubyの代わりに* nixとWindowsの一般的なスクリプト言語としても適しているかどうかを知りたいです。

このように使用されているという話はあまりありませんが、コミュニティは広いようで、この使用に適していないということは何も気づいていません。このように広く使われていますか?それとも、この種のものの主要な機能やモジュールが不足していますか?

28
hippietrail

Node.jsに関しては、JavaScriptを汎用スクリプト言語として使用する主流の方法になるとは思えません。その主な理由は、Node.jsで利用可能なライブラリと関数の99%の非同期性です。非同期性のため、考え方を完全に変える必要があります。利用可能な同期メソッドがないことが障害です。コードが線形ではなくなったため、スクリプトのようなものが少なくなります。

したがって、ほとんどの場合、Ruby/Python/...でこれをはるかに速く/簡単に書くことができるという単純な理由で採用は行われていません(5つの異なるファイルをダウンロードして圧縮してコピーしてみてください) Node.jsを使用して別のフォルダーに移動)

人々が非同期的な方法で思考とプログラミングに慣れるにつれて、汎用スクリプトツールとしてのnode.jsの採用が変わる可能性があります。

ノード内のすべての非同期関数に同期バージョンがある場合、採用は異なり、場所で同期メソッドを使用することを選択したため、人々はスケーラブルでないnode.jsサーバーになってしまいます。おそらく、パフォーマンスの数値がそれを際立たせなかったので、ノードは人気が出なかったでしょう。

要するに:

node.jsの採用は、非同期の性質のために行われています。同期機能がないため、クライアント側の汎用スクリプトツールとしてnode.jsが採用されていません。

これは私自身の経験と意見に基づいており、インターネットで見つけた記事や番号ではないことを覚えておいてください。自分で試してみて、自分の意見を作成してください。

26
AndyD