1

我正在寻找一种语言 + GUI 工具包,用于快速制作多媒体安装实用程序的原型。我已经使用 Max/MSP/Jitter 多年,但我想在我的“武器库”中添加一种基于文本的语言,以完成“内容制作”之外的任务。

(说到实际的媒体合成,我的选择很明确[SuperCollider + MSP for audio,Jitter + Quartz + openFrameworks for video])。

我正在寻找保持 Max 的一些优点,但更低级别、更快、更多跨平台(Linux 支持)和基于文本的东西。不需要与强大的声音/视频库集成。

一些要求:

  1. 最重要的是,快速的开发时间
  2. 跨平台(至少 OSX 和 Linux,Windows 是加分项)
  3. 快速简便的跨平台 GUI,无需针对特定平台进行修改
  4. 尽可能将 GUI 代码与后端代码分离
  5. 适合与外部串行设备(微控制器)连接
  6. 良好的网络支持 (UDP/TCP)
  7. 好的多媒体库(视频、声音、OSC)是一个加分项
  8. 异步 > 同步
  9. UNIX 集成是一个加分项

想到的选项:

  1. AS3/Flex(不是 AS3 的粉丝或在 Flash Player 中运行的想法)
  2. openFrameworks(C++ 框架,可能有点太低级了[寻求快速的开发时间]并且偏向于视频工作)
  3. 带有处理库的 Java(如 openFrameworks,只是速度较慢)
  4. Python + Qt(Qt 适合快速原型设计吗?)
  5. Python + 另一个 GUI 工具包
  6. SuperCollider + Swing(令人讨厌的 GUI 开发)
  7. 带有 SWT 的 Java

还有其他选择吗?你有什么建议吗?

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

基于 JVM 的语言怎么样(主要是为了可移植性和 VM 与所有 Java 库的互操作性,包括媒体处理所需的库),比如 JRuby 或 Scala(用于开发时间。如果是的话,可能更多的 JRuby您想快速上手),并使用您提到的 SWT 或 Swing?另外,您总是可以插入其他语言的东西,所以如果您仍然希望某些东西在 Python 中运行,那么 Jython 可以帮助您。

我不一定会说 Swing 是“令人讨厌的”。它确实存在缺陷和过于复杂的 API,但在设计上我经常发现它比 SWT 更有吸引力,尽管它也有一些不错的特性。使用 Swing 生成非常好的接口是可能的,并且不会像老式的论点那样迟钝。话虽这么说,它不一定适合快速原型设计,但这只是 Java 的一个缺点。例如,Groovy 有一个很好的构建器来促进 Swing 开发。

如果需要,还有一个用于 Java 的 QT 绑定。


如果基于 Java 的东西让您望而却步,那么我认为您可能应该使用 Python + QT。


Flex 似乎正在接受并肯定会产生很好的界面,但有一些事情让我感到烦恼。一方面,人们总是倾向于用它来制作非标准的 UI。它看起来确实很棒,但如果每个应用程序开发人员都试图发明他或她自己的可用性范式,它也会让用户更加困惑。此外,就平台的未来而言,还有很多未知数,而您不会担心 Java/Python。

于 2010-10-17T14:58:31.580 回答
0

要回答我自己的问题,使用您所在领域/地区/工作场所的其他人使用的东西通常比找到“正确的工具”更重要。(例如,在我的社区中,Max/MSP/Jitter & PureData、C、MATLAB 和 [仅由于其全球流行] Python 是标准。)偏离当地通用语意味着您的代码只能持续只要您在附近维护它(至少如果代码是针对特定地点或事件的,就像媒体中经常出现的情况一样),作为开发人员,您是一个人,并且您将经常不得不为其他人的代码构建接口以使事情正常工作。

在我学习的时候,我决定暂时坚持使用久负盛名的 Max、C、Matlab 组合。

另一方面,我尝试使用Pure,由于动态类型、强大的矩阵支持和早期OSC采用(例如 octave、SuperCollider、PureData、Faust 和 OpenCV),它具有与许多库和应用程序的强大集成。我期待下一代数据流语言。

于 2010-10-18T22:56:52.303 回答