1

I'm looking for a language + GUI toolkit for rapidly prototyping utility applications for multimedia installations. I've been working with Max/MSP/Jitter for many years, but I'd like to add a text-based language to my 'arsenal' for tasks apart from 'content production'.

(When it comes to actual media synthesis, my choices are clear [SuperCollider + MSP for audio, Jitter + Quartz + openFrameworks for video]).

I'm looking for something that maintains some of the advantages of Max, but is lower-level, faster, more cross-platfrom (Linux support), and text-based. Integration with powerful sound/video libraries is not a requirement.

Some requirements:

  1. More than anything else, fast development time
  2. Cross-platform (at least OSX and Linux, Windows is a plus)
  3. Fast and easy cross-platform GUIs with no platform-specific modification
  4. GUI code separated from backend code as much as possible
  5. Good for interfacing with external serial devices (micro-controllers)
  6. Good network support (UDP/TCP)
  7. Good libraries for multi-media (video, sound, OSC) are a plus
  8. Asynchronous > synchronous
  9. UNIX integration is a plus

The options that come to mind:

  1. AS3/Flex (not a fan of AS3 or the idea of running in the Flash Player)
  2. openFrameworks (C++ framework, perhaps a bit too low level [looking for fast development time] and biased toward video work)
  3. Java w/ Processing libraries (like openFrameworks, just slower)
  4. Python + Qt (is Qt appropriate for rapid prototyping?)
  5. Python + Another GUI toolkit
  6. SuperCollider + Swing (yucky GUI development)
  7. Java w/ SWT

Any other options? What do you recommend?

4

4 に答える 4

2

モノを試す:

http://www.mono-project.com/Main_Page

于 2010-10-17T14:44:01.490 に答える
2

Qt はラピッド プロトタイピングに適しています (Qt Designer と Qt Quick がそれを支援します) が、それでも C++ なので遅いです。一方、PyQt はかなり気の利いたものです。クロスプラットフォームの Qt サポートのすべての喜び (および残念さ) を備えた、インタープリター言語での迅速な書き込み-テスト-変更ループがあります。私のために働いた。

于 2010-10-17T14:54:02.870 に答える
2

JRubyやScalaなどのJVMベースの言語(主に移植性とVM、メディア処理に必要なものを含む、そこにあるすべてのJavaライブラリとの相互運用性のため)についてはどうですか。あなたが言及したように、SWTまたはSwingのいずれかを使用しますか?さらに、他の言語のものをいつでもプラグインできるので、それでも Python で実行するものが必要な場合は、Jython が役に立ちます。

Swing が「厄介」であるとは必ずしも言いません。確かに欠陥や複雑すぎる API がありますが、設計上、SWT よりも魅力的であることがよくありますが、優れた機能も備えています。Swing を使用して非常に優れたインターフェースを作成することは可能であり、それは昔ながらの議論のように遅くはありません。そうは言っても、高速プロトタイピングには必ずしも優れているわけではありませんが、それは Java の欠点にすぎません。たとえば、Groovy には Swing 開発を容易にする優れたビルダーがあります。

必要に応じて、Java 用の QT バインディングもあります。


Java ベースのことに気が進まない場合は、おそらく Python + QT を使用する必要があると思います。


Flex は順調に進んでいるようで、確かに優れたインターフェイスを生成していますが、気になる点がいくつかあります。1 つには、人々は常にそれを使用して非標準の UI を作成する傾向があるという事実です。見た目は素晴らしいですが、すべてのアプリ開発者が独自のユーザビリティ パラダイムを発明しようとすると、ユーザーはさらに混乱します。さらに、プラットフォームの将来に関しては不明な点がたくさんありますが、Java/Python ではこの懸念はありません。

于 2010-10-17T14:58:31.580 に答える
0

私自身の質問に答えるために、通常、「適切なツール」を見つけるよりも、同じ分野/地域/職場で他の人が使用しているものを使用する方が重要です。(たとえば、私のコミュニティでは、Max/MSP/Jitter & PureData、C、MATLAB、[世界的に人気があるという理由だけで] Python が標準です。) 現地の共通語から逸脱するということは、コードが存続するのはほんのわずかということです。あなたがそれを維持している限り(少なくとも、メディアでよくあるように、コードが特定の場所やイベントのためのものである場合)、開発者としてあなたは一人であり、常にそうしなければならない.物事を機能させるために、他の人のコードへのインターフェースを構築します。

学習中は、由緒ある Max、C、Matlab のコンボを使い続けることにしました。

一方、Pureは、動的型付け、強力な行列サポート、早期のOSC採用 (たとえば、オクターブ、SuperCollider、PureData、Faust、OpenCV) のおかげで、多くのライブラリやアプリケーションとの強力な統合を特徴としています。次世代のデータフロー言語に期待しています。

于 2010-10-18T22:56:52.303 に答える