【问题标题】:Cross-Platform Language + GUI Toolkit for Prototyping Multimedia Applications用于原型多媒体应用程序的跨平台语言 + GUI 工具包
【发布时间】:2011-02-14 01:01:18
【问题描述】:

我正在寻找一种语言 + 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

还有其他选择吗?你有什么推荐的?

【问题讨论】:

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


    【解决方案1】:

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        基于 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 有这种担忧。

        【讨论】:

          【解决方案4】:

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

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

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

          【讨论】:

            猜你喜欢
            • 2011-01-25
            • 2010-10-05
            • 1970-01-01
            • 1970-01-01
            • 2011-02-15
            • 2012-10-07
            • 1970-01-01
            • 2010-09-07
            • 1970-01-01
            相关资源
            最近更新 更多