openFrameworks vs Processing

时间:2011-03-13 19:27:08

标签: processing openframeworks

我一直在阅读很多关于openFrameworks和Processing的内容,但是除了一个在C ++中而另一个在Java中之外,仍然无法区分。有人能告诉我究竟是什么原因吗?

1 个答案:

答案 0 :(得分:73)

你是对的,一个是C ++,另一个是Java,这些差异适用于这些框架,所以由你的偏好/项目范围决定哪一个最适合你。

processing header

使用处理

  • 你得到一个最小的IDE,但可以easily use Eclipse或其他Java IDE。
  • 您获得内存管理(垃圾回收)
  • 您可以在线发布小程序(通过Java Applet或使用Canvas 2D使用processingjsp5js'缩小'javascript端口)或Linux / OSX / Windows桌面应用程序(通过Java Runtime)。请注意,比Processing 1.5.1更新的版本不再导出applet。这仍然可以通过命令行或使用eclipse来完成。
  • 您可以使用Android或更快iProcessing以及最近P5Nitro
  • 发布到Raspberry PI和(使用第三方工具)到iPhone
  • 您可以获得近200 Libraries来扩展其功能。
  • 您获得了the forums,相当多的books和在线“游乐场”的支持,例如OpenProcessingSketchPatchhascanvasSketchPad

OpenFrameworks logo

使用 OpenFrameworks

  • 您选择IDE(OSX上的XCode,Code :: Blocks,VC ++)
  • 你可以管理你自己的记忆(malloc,指针和所有这些快乐),但是现代的C ++并不是必需的。
  • 您可以将项目发布为本机应用程序(无需运行时)
  • 目前可以轻松在线发布,但未来可能会发生变化(请参阅Arturo Castro's of-emscripten进度)可以使用emscripten在线发布。
  • 您可以向iPhone发送OF 007Android,将OF 0.8.0发布到armv6和armv7设备,例如Raspberry PIPandaboard
  • 您可以获得超过2000 Addons(并非所有维护)以扩展其功能。
  • 您获得了very active and helpful forums的支持,可以在此online book或论文booktwo上阅读相关内容。

这些是现在想到的一些事情,可能会有更多。

就个人而言,我发现在Processing中编写真正基本的抛弃原型更容易。对于速度不是主要决策因素的情况,Processing会做得很好,但在其他情况下,我会将Processing原型移植到openFrameworks(大部分时间都很容易)。

一个例子是涉及音频的应用,无论是分析还是合成。根据复杂程度,Java垃圾收集器会在您最不期望的时候进行扫描,并在您需要响应时引起烦恼。

简而言之,两者都很酷,但 openFrameworks 更快。你自己通过管理记忆来支付这个速度。

在在线部署方面,它实际上取决于项目:如果它是一个简单的项目,可能p5.js在与其他js库的集成方面可能是最简单的。 oF导出对于庞大的复杂代码很方便,手动移植到JavaScript需要很长时间,但请记住Emscripten项目会很大(例如opencvExample为17.5MB)(因此不是蜂窝友好的)如果您需要从网页调用oF app功能,您仍需要添加自己的JS -> C++绑定。

另外,如果您对C ++感兴趣,可能还需要查看libcinderPolycode

HTH