openFrameworks против обработки

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


person Hossein    schedule 13.03.2011    source источник


Ответы (1)


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

заголовок обработки

При обработке:

  • Вы получаете минимальную IDE, но можете легко использовать Eclipse или другие IDE Java.
  • Вы получаете управление памятью (сборка мусора)
  • Вы можете публиковать апплеты онлайн (через 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

С OpenFrameworks:

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

Вот некоторые из вещей, которые пришли на ум прямо сейчас, их может быть больше.

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

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

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

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

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

ХТН

person George Profenza    schedule 13.03.2011
comment
вы также можете развернуть OF на Android-устройстве! - person ben; 20.12.2011
comment
В качестве обновления этого вопроса похоже, что с новой версией Processing (2.0a7) больше нельзя будет публиковать апплеты. Дополнительную информацию можно найти здесь blog.openprocessing.org/?p=232 - person JordanBelf; 22.09.2012
comment
Но вы все еще можете создавать апплеты с помощью Processing with Eclipse. - person jesses.co.tt; 29.04.2013
comment
Отличный анализ. Я задавался тем же вопросом и сделал аналогичные выводы. Я думаю, это подтверждает это. - person rpeg; 26.04.2015
comment
Вы можете развернуть OF в веб-браузерах с помощью Emscripten. openframeworks.cc/setup/emscripten - person Zack Lee; 26.08.2018
comment
@ZackLee Спасибо за предупреждение: я обновил ответ, включив в него ссылку, которую вы предоставили. - person George Profenza; 27.08.2018
comment
Вы управляете своей собственной памятью (malloc, указатели и все такое прочее) - я думаю, что это уже не так. С С++ 11 и новее мне никогда не приходилось вызывать новые, удалять, malloc или использовать необработанные указатели. Я использовал интеллектуальные указатели, std::vector вместо массива, std::string вместо cstring... мало чем отличается от Processing. - person aBe; 13.12.2018