用于原型设计多媒体应用程序的跨平台语言+ GUI工具包

时间:2010-04-29 23:15:15

标签: user-interface programming-languages language-features media multimedia

我正在寻找一种语言+ GUI工具包,用于快速原型化多媒体安装的实用程序应用程序。我已经和Max / MSP / Jitter合作多年了,但是除了'内容制作'之外,我还想为我的'arsenal'添加一种基于文本的语言。

(谈到实际的媒体合成,我的选择很明确[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集成是一个加号
  10. 想到的选项:

    1. AS3 / Flex(不是AS3的粉丝或在Flash Player中运行的想法)
    2. openFrameworks(C ++框架,可能有点太低[寻找快速开发时间]并且偏向于视频工作)
    3. Java w / Processing库(比如openFrameworks,只是速度慢)
    4. Python + Qt(Qt适合快速原型制作吗?)
    5. Python +另一个GUI工具包
    6. SuperCollider + Swing(令人讨厌的GUI开发)
    7. Java w / SWT
    8. 还有其他选择吗?你推荐什么?

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

Qt适用于快速原型设计(Qt Designer和Qt Quick帮助),但它仍然是C ++,因此速度较慢。另一方面,PyQt非常漂亮 - 你在解释语言中拥有快速的写测试修改循环,具有跨平台Qt支持的所有乐趣(和怜悯)。为我工作。

答案 2 :(得分: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有这种担忧。

答案 3 :(得分:0)

要回答我自己的问题,使用您所在领域/工作场所/工作场所使用的其他人通常比找到“正确的工具”更重要。 (例如,在我的社区中,Max / MSP / Jitter& PureData,C,MATLAB和[仅由于其全球知名度] Python是标准。)偏离本地通用语意味着您的代码持续只要你一直在维护它(至少如果代码是针对某个特定的地方或事件,就像在媒体中经常出现的情况那样),那么你作为一名开发人员就会独自一人,并且你会不断拥有构建与其他人的代码的接口,以使事情发挥作用。

在我学习的时候,我决定坚持使用古老的Max,C,Matlab组合。

方面,我试用了Pure,由于动态类型,强大的矩阵支持和早期OSC采用(例如八度,SuperCollider,PureData,浮士德和OpenCV)。我期待着下一代数据流语言。