Vous avez raison, l'un est C++ et l'autre est Java, et ces différences s'appliquent à ces frameworks. C'est donc à vos préférences et à la portée de votre projet de décider lequel est le meilleur pour vous.
Avec Traitement :
- Vous disposez d'un IDE minimal, mais vous pouvez utiliser facilement Eclipse ou d'autres IDE Java.
- Vous bénéficiez de la gestion de la mémoire (garbage collection)
- Vous pouvez publier des applets en ligne (via une applet Java ou des ports javascript "allégés") en utilisant Canvas 2D avec traitementjs ou p5js ) ou des applications de bureau pour Linux/OSX/Windows (via Java Runtime). Notez que les versions plus récentes que Processing 1.5.1 n'exportent plus d'applets. Cela peut toujours être fait via la ligne de commande ou en utilisant eclipse.
- Vous pouvez publier sur Android et (avec des outils tiers) vers l'iPhone en utilisant iProcessing ou le plus rapide P5Nitro et plus récemment sur Raspberry PI
- Vous obtenez presque 200 Bibliothèques pour étendre sa fonctionnalité.
- Vous avez le soutien de les forums un certain nombre livres et des "terrains de jeu" en ligne comme OpenProcessing , SketchPatch , hascanvas ou SketchPad .
Avec OpenFrameworks :
- Vous choisissez votre IDE (XCode sur OSX, Code::Blocks, VC++)
- Vous pouvez gérer votre propre mémoire (malloc, pointeurs et toutes ces joies), mais avec le C++ moderne, ce n'est pas nécessaire.
- Vous pouvez publier votre projet en tant qu'application native (pas de runtime nécessaire).
-
Vous pouvez no Actuellement, il n'est pas facile de publier en ligne, mais cela pourrait changer à l'avenir (cf. Les of-emscripten d'Arturo Castro progrès) Vous peut publier en ligne en utilisant emscripten .
- Vous pouvez publier sur le site iPhone à partir de OF 007 à Android et OF 0.8.0 aux dispositifs armv6 et armv7 tels que Raspberry PI ou Pandaboard
- Vous obtenez plus de 2000 Addons (toutes ne sont pas maintenues) pour étendre sa fonctionnalité.
- Vous avez le soutien de la des forums très actifs et utiles et vous pouvez le lire dans ce livre en ligne ou sur un papier livre ou deux .
Ce sont quelques-unes des choses qui me viennent à l'esprit en ce moment, il pourrait y en avoir d'autres.
Personnellement, j'ai trouvé qu'il était plus facile d'écrire des prototypes jetables vraiment basiques en Processing. Pour les situations où la vitesse n'est pas un facteur de décision majeur, Processing fait très bien l'affaire, mais dans d'autres cas, je porterais les prototypes de Processing vers openFrameworks (ce qui est facile à faire la plupart du temps).
Un exemple serait une application impliquant l'audio, qu'il s'agisse d'analyse ou de synthèse. En fonction de la complexité, le Garbage Collector de Java effectuera un balayage au moment où vous vous y attendrez le moins et causera des désagréments lorsque vous aurez besoin de réactivité.
En bref, les deux sont vraiment cool, mais openFrameworks est plus rapide . Vous payez cette vitesse en gestion de la mémoire vous même cependant.
En termes de déploiement en ligne, cela dépend vraiment du projet : s'il s'agit d'un projet simple, p5.js est probablement le plus facile en termes d'intégration avec d'autres bibliothèques js. L'exportation oF est pratique pour le code complexe et volumineux qui prendrait trop de temps à porter manuellement en JavaScript, mais n'oubliez pas que le projet Emscripten sera volumineux (par exemple 17.5MB pour opencvExample
) (et n'est donc pas compatible avec les cellulaires) et vous devrez toujours ajouter votre propre JS -> C++ si vous avez besoin d'appeler une fonction de l'application à partir de la page web.
Par ailleurs, si vous êtes intéressé par le C++, vous pouvez également jeter un coup d'oeil à libcinder ou Polycode .
HTH