

Learn Computer Graphics with Processing - octopus
http://www.processing.org/learning/

======
sipefree
I had to do a Processing group project course as part of my CS degree.

While it's a nice toolkit for doing very basic visualizations of data, it's a
pain in the hole to do anything more advanced than that.

They made us use it to develop a GUI application with text input, buttons,
tables, and graphs, in order to visualize some IMDB-style movie ratings data.

Unfortunately it's absolute crap for doing things like that. I basically ended
up implementing GTK in it, with widgets rendering to buffers and having a
hand-rolled DOM-style event system. I implemented scroll views on my own, and
used them to create text input boxes and scrollbars. While I'm personally
proud of making it actually work, it was a horrifying experience to do using
the really basic tools provided.

The IDE that's included with Processing is also really awful. It can't do
indentation correctly, doesn't work at all in tiling window managers, and
seems to make people write horrible code. Walking around the labs trying to
help people, I found that the vast majority of people's bugs were missing
curly braces and things indented wrong simply because of the awfulness of the
text editor.

If you want to do anything useful in it, you need to import core.jar into
Eclipse (or do it on the command line) and do it in Java. It seems that the
processing compiler is really just a small preprocessor over Java that wraps
the whole thing in 'public class Main implements PApplet {' and '}' and
replaces #FFFFFF with 0xFFFFFF.

I also used processing to make a tetris game
(<https://github.com/sipefree/setris>), which was much easier than doing a GUI
application, but I really didn't get any decent drawing performance on non
state-of-the-art hardware.

TL;DR it's nice but a pain in the hole.

------
arctangent
Processing is excellent and I have used it extensively. I have also used
Nodebox, which is something similar but in Python: <http://nodebox.net>

Most recently however I have switched to using Field. I'm not a huge fan of
Java syntax, so being able to write Processing apps in Python/Jython via Field
is a big win for me.

<http://openendedgroup.com/field>

There are lots of features I haven't even touched in Field yet...

~~~
Vivtek
This is the kind of thing I read HNN for - stuff I never even knew I needed.
Do I understand correctly that Field lets you build graphical representations
_of your code_? Kind of like ... graphical literate programming?

This is where my wife would say "Jézus Mária és minden szentek". It's ... full
of stars ...

~~~
arctangent
You can attach code to visual elements and then "scrub" across them in real
time, a bit like how a DJ would scratch a record.

You can also embed sliders and colour-pickers etc. directly in your code to
give you even more ways to modify things.

Yes, this is as amazing as it sounds!

------
schwabacher
I found processing powerful and really easy to pick up. It is also very easy
to port from processing to javascript (processingjs.org)!

------
mrcharles
Processing is pretty cool, I messed around with it a while back. Problem is,
once you start making complex enough sketches, you hit a point where it would
be really useful to have a debugger, and last I checked processing didn't
provide that.

I expect you could probably debug it with java tools somehow, but given that I
only learned java via processing on a lark, I didn't explore that path.

~~~
twymer
You can do processing in Eclipse to get this.

<http://www.processing.org/learning/eclipse/>

------
mcritz
Processing is amazing. It’s the only “open” substitute for Flash as a cross-
platform dynamic graphics generation tool.

Learning Processing gave me the confidence to pursue C and Objective-C.

------
winxordie
I highly encourage playing with Processing.js: <http://processingjs.org/> It's
art on a web browser!

------
irfn
processing is indeed my choice for graphics. I tend to use ruby & clojure
processing libraries. <https://github.com/rosado/clj-processing>
<https://github.com/jashkenas/ruby-processing>

