0

そこで、OpenGL といくつかの物理学を使用して、実験的なユーザー インターフェイスのプロトタイプを作ろうという考えに至りました。どちらのトピックについてもほとんど知りませんが、C++、Java、C# などのプログラミング言語についてはかなりの経験があります。いくつかの初期調査の後、私は Python (Eclipse/PyDev を使用) と Qt を使用することに決めました。どちらも私にとっては初めてで、多かれ少なかれ同時に学習する 4 つの異なるトピックがあります。

私は OpenGL と Python の両方にかなり慣れてきましたが、最初は Python とそのエコシステムがこのタスクに最適に思えましたが、今ではいくつかの重大な欠点を発見しました。不適切な API ドキュメントとコード補完の欠如 (動的型付けによる)、モジュールごとに 1 つのクラスがある場合、他のすべてのモジュールで使用するすべてのモジュールをインポートする必要があり、プログラムを実行するために正しいモジュールを選択する必要があり、30 時間待たなければならない多くの明らかなタイプミスやその他の間違いが通知される前に、プログラムが起動して IDE が見えなくなるまで数秒かかります。本当にイライラするのは本当に速いです。率直に言って、私はすべてのファズが何であるかを理解していません。ラムダ関数、リスト内包表記などはどれも素晴らしいものですが、確かにもっと重要なことがあります。

したがって、誰かがこれらの煩わしさの少なくとも一部を解決できない限り、Python は終わりです。明らかな理由で C++ も廃止され、主に移植性の欠如のために C# も廃止されました。これにより、Java と JOGL が魅力的なオプションとして残りますが、Ruby と Groovy にも興味があります。私が同じ過ちを繰り返さないようにするために、これらや他のものについてあなたの意見をお願いします.

要件は次のとおりです。

  • 地獄を私の邪魔にならないようにします。
  • 良いコード補完。データ型とパラメーター名を含む完全なメソッド シグネチャ。
  • 優れた OpenGL サポート。
  • Qt のサポートが望ましいです。
  • オブジェクト指向
  • RAD、プロトタイピングに最適
  • クロスプラットフォーム
  • できればオープンソースですが、少なくとも無料です。
4

9 に答える 9

7

主に Python 自体に問題があるのではなく、IDE に問題があるようです。

「不適切な API ドキュメント」

どの API に? Python自体、Qt、または使用しているその他のライブラリ?

「コード補完がありません (動的型付けのため)」

あなたが魔法のようなことをしていない限り、PyDev はこれらのことを理解するのに非常に優れていることがわかりました。紛失した場合は、次のようにしていつでもヒントを入力できます。

assert isinstance(myObj, MyClass)

次に、myObj が動的コンテキストからのものであっても、PyDev はコード補完を提供します。

「モジュールごとに1つのクラスがある場合、他のすべてのモジュールで使用するすべてのモジュールをインポートする必要があるのは面倒です」

PyDev 拡張機能をインストールすると、その場で自動インポートされます。または、すべてのインポートを別のモジュールに集めて、次のようにします。

from mymodulewithallimports import *

「プログラムを実行するには正しいモジュールを選択する必要があります」

Eclipse では、デフォルトのスタートアップ ファイルを設定するか、「前回の実行構成を使用する」をチェックするだけです。その後、再度選択する必要はありません。

「多くの明らかなタイプミスやその他の間違いが通知される前に」

PyDev 拡張機能をインストールすると、より高度な構文チェックが行われ、未使用のインポート/変数、初期化されていない変数などについて喜んで通知されます。

于 2009-02-07T21:17:18.703 に答える
2

あなたのリストだけを見ると、C++ をお勧めします。特にコード補完はあなたにとって非常に重要です。

Python について: Python を使用した OpenGL プログラミングの経験はほとんどありませんが (そのために C++ を使用しました)、Python コミュニティは OpenGL 開発用の興味深いモジュールを多数提供ます。ほんの数例を挙げるだけです。

__init__.pyところで、モジュールが含まれているディレクトリのファイルにモジュールをインポートしてから、「親」モジュールをインポートするだけで、インポートの問題を簡単に解決できます。これは推奨されませんが、可能です。

于 2009-02-07T19:07:21.773 に答える
2

D プログラミング言語について誰も聞いたことがないのはなぜですか?

これは完璧なソリューションです!!!!

于 2009-06-15T19:03:34.847 に答える
1

これらすべてを望む場合の唯一の本当の選択肢はJavaを使用することですが、正直なところ、機能については少しうるさいです。コード補完は本当に重要な特性ですか?あなたがリストした他のすべては伝統的にPythonで非常によく評価されているので、私は問題を見ていません。

于 2009-02-07T19:00:28.573 に答える
1

私は GL4Java を使用して OpenGL プログラミングを始めましたが、これは JOGL に移行されたので、ぜひ (JOGL) 試してみてください。Java は必要な機能のほとんどを提供し (さらに Eclipse はコード補完を提供します)、特に JOGL については、開始するためのチュートリアルがたくさんあります。

于 2009-02-07T21:17:54.553 に答える
1

私が使用するテキスト エディター (IDE でさえありません) では、API 関数定義をインポートできます。特に OpenGL では、コード補完は言語機能ではありません。入力するだけgl[Ctrl+I]で、オプションが表示されます。

于 2009-02-07T20:10:53.767 に答える
1

Booについて考えてみてください。Python の多くの利点を持ちながら、他の場所からの機能も採用しています。また、コンパイル時の型推論 (変数に特定の型が明示的に与えられていないか、明示的にダック型指定されていない場合) により、求めている種類のオートコンプリート サポートが可能になります。約。

Tao.OpenGLライブラリは、OpenGL を .NET アプリ (Boo コンパイルなど) に公開し、Mono を明示的にサポートします。

(個人的には、私は C や Java をやっていないときは主に Python 開発者ですが、オートコンプリートについてはあまり気にしませんでした... しかし、それはあなたの質問です。また、モジュールごとに 1 つのクラスという規則はばかげているように思えます。あなたが不必要に経験している痛みの量)。

于 2009-02-07T21:46:10.720 に答える
1

Java3DとJavaを一度使ってみました。Java3D は典型的な Java API であることに気付きました... 単純なことを行うためのオブジェクトがたくさんあり、それが Java であるため、多くのコードに変換されます。その後、Eclipse の Jython に移行してコードを整理し、Java3D の複雑さだけを残しました。

ということで、結局逆方向に行ってしまいました。これが純粋な python より優れている点の 1 つは、オートコンプリートなどの Eclipse の利点をすべて備えた Java を使用でき、Java でパーツが扱いにくくなったときに Python に移行できることです。

于 2009-02-07T20:24:00.900 に答える
1

Pydevは Eclipse でコード補完を提供できるようです。

于 2009-02-07T20:25:54.843 に答える