openFrameworks vs Processing - PullRequest
       30

openFrameworks vs Processing

37 голосов
/ 13 марта 2011

Я много читал об openFrameworks и Processing, но все еще не могу провести различие, кроме одного в C ++ и другого в Java. Может кто-нибудь сказать мне, что именно для чего?

1 Ответ

73 голосов
/ 13 марта 2011

Вы правы, один из них - C ++, а другой - Java, и эти различия относятся к этим платформам, поэтому выбор ваших предпочтений зависит от ваших предпочтений / объема проекта.

processing header

С Обработка :

  • Вы получаете минимальную IDE, но можете легко использовать Eclipse или другие Java IDE.
  • Вы получаете управление памятью (сборщик мусора)
  • Вы можете публиковать апплеты онлайн (через Java-апплет или «уменьшенные» порты javascript, используя Canvas 2D с processingjs или p5js ) или настольные приложения для Linux / OSX / Windows (через Java Runtime).Обратите внимание, что версии, более новые, чем Processing 1.5.1, больше не экспортируют апплеты.Это все еще можно сделать с помощью командной строки или с помощью eclipse.
  • Вы можете опубликовать на Android и (с помощью инструментов сторонних производителей) на iPhone, используя iProcessing или более быстрый P5Nitro и более поздние версии Raspberry PI
  • Вы получаете почти 200 библиотек для расширения его функциональности.
  • У вас есть поддержка от форумов , довольно много книг и онлайн-площадок, таких как OpenProcessing , SketchPatch , hascanvas или SketchPad .

OpenFrameworks logo

с OpenFrameworks :

  • Вы выбираете свой IDE (код X наOSX, Code :: Blocks, VC ++)
  • Вы можете управлять своей собственной памятью (malloc, указателями и всем остальным), но в современном C ++ это не нужно.
  • Вы можете опубликовать свой проекткак собственное приложение (время выполнения не требуется)
  • Вы можете не в настоящее время легко публиковать в Интернете, но это можетв будущем (см. Art-Castro's-emscripten прогресс) Вы можете публиковать в Интернете с помощью emscripten .
  • Вы можете опубликоватьна iPhone , начиная с OF 007 до Android и OF 0.8.0 на устройства armv6 и armv7, такие как Raspberry PI или Pandaboard
  • Вы получаете более 2000 Аддонов (поддерживаются не все).
  • У вас есть очень активная поддержка и полезные форумы и можете прочитать об этом в этой онлайн-книге или на бумаге в книге или два .

Это то, что пришло на ум прямо сейчас, может быть и больше.

Лично мне было проще писать действительно простые одноразовые прототипы в Processing.Для ситуаций, когда скорость не является основным фактором принятия решения, обработка выполняется просто хорошо, но в других случаях я бы перенес прототипы обработки в openFrameworks (что легко сделать в большинстве случаев).

Примером может служить приложение, включающее аудио, будь то анализ или синтез.В зависимости от сложности Java Garbage Collector будет выполнять зачистку, когда вы меньше всего этого ожидаете, и вызывать раздражение, когда вам нужна отзывчивость.

Короче говоря, оба они действительно крутые, но openFrameworks на быстрее .Вы платите за эту скорость, хотя сами управляете памятью .

С точки зрения развертывания в сети, это действительно зависит от проекта: если это простой проект, вероятно, p5.js может быть проще с точки зрения интеграции с другими библиотеками js.Экспорт oF удобен для большого громоздкого сложного кода, для переноса которого на JavaScript потребуется слишком много времени, но следует учитывать, что проект Emscripten будет большим (например, 17,5 МБ для opencvExample) (и, следовательно, не пригодным для сотовой связи), и вывсе еще нужно добавить свои собственные привязки JS -> C ++ , если вам нужно вызвать функцию приложения oF с веб-страницы.

Кроме того, если вы заинтересованы в C ++, вы можете захотеть такжевзгляните на libcinder или Polycode .

HTH

...