JavaScriptは科学的処理には適していないというコメントに同意する必要があります。ただし、要件を最もよく知っています。多分あなたはあなたが必要なことをする有用なライブラリをすでに見つけました。すべてのロジックを自分で実装する必要があることに注意してください。複素数、行列、積分などの処理は組み込まれていません。通常、プログラマーの時間はマシンの時間よりもはるかに価値があります。個人的には、コンパイルされた言語を調べます。私が最も好きな言語で十分に速くない最初のバージョンを作成した後。
JavaScriptが進むべき道であると仮定すると:
データI/O
私は3つのオプションを考えることができます:
ajaxを使用したサーバーへのデータの送受信
Server2goで見つけた解決策のようです。サーバーバックエンドを作成する必要がありますが、それは非常に単純に保つことができます。クライアント側のアプリケーションへの応答としてファイルを読み書きできるようにするために本当に必要なことはすべてです。
ファイルI/Oを含むv8の非ブラウザー実装を使用する
たとえば、Node.jsです。そうすれば、サーバーの必要性を回避し、コマンドラインインターフェイスを使用するだけで、すべてのコードがJavaScriptになります。それ以外は、最初のオプションとほぼ同じです。
ユーザーに保存またはロードを依頼するファイルAPIを使用してファイルオブジェクトを作成する
ユーザーの操作が必要なため、これは私の意見では最悪のオプションです。サーバーの必要性を回避します。アプリケーションは、ajaxリクエストを含むすべてのデータファイルをロードする単純なhtmlファイルである可能性があります。ここでfile://
説明するように、プロトコルでajaxリクエストを許可するには、特別なスイッチを使用してChromeを起動する必要があります
これらのオプションはファイルI/Oにのみ関係し、JavaScriptでファイルI/Oを実行することはできません。これは、ブラウザが任意のWebコードに任意のファイルI/Oを実行させることができないためです。セキュリティへの影響は恐ろしいものになるでしょう。各オプションは、ファイルI/Oを実行しない1つの方法を説明しています。
1つ目は、クライアントのファイルI/Oを実行するサーバーと通信します。
2つ目は、ブラウザ以外の条件でJavaScriptの「特別な」バージョンを使用するため、セキュリティへの影響は重要ではありません。ただし、これは、実際に使用する実装でファイルI / Oがどのように行われるかを調べる必要があることを意味します。これは、JavaScriptでは一般的ではありません。
3つ目は、ユーザーがファイルI/Oを制御する必要があります。
インターフェース
JavaScriptを使用して実際の処理を行わなくても(これまでのところコンセンサスです)、視覚化のためのインターフェイスまたはJavaScriptライブラリとしてブラウザーを使用することを妨げるものは何もありません。それはJavaScriptが得意なことです。
データマイニングツールをインタラクティブに制御する場合は、ツールを制御できるサーバーが必要になります。Server2goが機能するか、それを使用する場合はNode.jsの組み込みサーバー、または...データツールのインタラクティブな制御が必要ない場合。つまり、最初に処理されたデータを生成し、次にfile//:
プロトコルとJSONPを使用してサーバーを回避できるデータを確認します。しかし、本当に; サーバーを回避することは目標ではありません。
言うべきことは何もありませんし、javascriptについて書かれているほとんどすべてがインターフェースに関するものなので、インターフェースの問題については詳しく説明しません。
1つは、 Angular.jsやKnockout.jsなどの宣言型データバインディングライブラリを使用することです。