2010-12-19 15 views
4

私はprotovis JavaScriptのビジュアライゼーションライブラリを科学計算に使用するためにPythonに移植することに興味があります。私は一般的な質問と具体的な質問があります。JavaScriptライブラリをPythonに移植する

一般:以前はライブラリ全体を移植したことはありません。いくつかの良い戦略は何ですか?私はまず、ユーザー向けのAPIを実装して、Pythonの方法でそれを記入する必要がありますか?または、内部/インフラストラクチャを最初に移植し、その上にAPIを再構築することをお勧めしますか?

特定:このライブラリは、javascriptのプロトタイプベースの継承を多用しているようですが、これはPythonモデルとは多少異なります。 Pythonでprototypal-inheritanceをエミュレートするかなり簡単な方法を作った人が見つかりました。しかし、ライブラリを移植するという観点から見ると、私はPythonをJava Scriptのように腕を振ってはいけません。この問題に関するいかなるご意見も大変ありがとうございます。ありがとう!

ウリ

+3

先頭から開始して下に進みます。 –

+0

ある言語から別の言語にコードを移植することはありません。あなたが探している言葉は* rewrite *です。 –

+0

あなたの科学的なコードをPythonで書いて、GUIをjavascriptにしてみませんか? –

答えて

1

あなたはプレフューズを見たほうが良いかもしれません(http://www.prefuse.org)、またはフレア(http://flare.prefuse.org)。前者はJavaベースで、後者はFlashです。

Protovisは、キャンバスとしてSVGを使用して、ブラウザを実行している普通の古いJavascriptである点で少し異なります。あなたは、Pythonの書き換えでそれをすぐに活用することはできません。

あなたはグラフ/ネットワーク可視化パッケージ後にしている場合は、NetworkXをチェックアウトする場合があります: http://networkx.lanl.gov/

+0

リンクありがとうございます。私は実際には、この時点で静的な視覚化を行うことにのみ興味があります。私は私のPythonポートをSVGを吐き出すものに接続するか、それをmatplotlibバックエンドに接続することができると考えました。後で、私はmatplotlibを使って対話性を再実装しようとする可能性があります。 protovisに関して、私はその "宣言的な"モデルが特に魅力的で、多くの科学計算パイプラインに統合できるpythonパッケージで再作成したいと考えています。 –

+0

SVG + Python = pycairo –

1

あなたのPythonのためにC/C++からポートにしたい場合は、おそらくSWIGを使用します。私はPythonのjavascriptについては知らないが、おそらく手で行う必要があります。私はpythonでプロトタイプの継承をunpythonicと考えます。リンクにあるメタクラスのハックを使用することはお勧めしません。 Pythonプログラマは継承のプロトタイプには使用されておらず、おそらくそれを使用したくないので、メタクラスを使用するときには非常に気になるはずです。したがって、継承モデルを再構築するのが最も良いと思います。私はまた、APIの再設計がそれをより非平凡にするために傷つけないと思う。

1

現在、Pythonエコシステムには、Protovisなどの視覚化ツールがありません。あなたの書き直しには恵まれています。

関連する問題