Should I learn Processing with Python

Hey! I’m fairly new to Processing, and have never used Java before. I’m working through Casey Reas and Ben Fry’s “Processing” book and Daniel Shiffman’s “The Nature of Code” and am having no problems learning the software. However I hear a lot of talk about Python such as, its fast for a high level language (faster than Processing?), that its very popular and easy to learn. Should I learn Processing with Python?
Thanks for any suggestions

just one argument ( one viewpoint ):

if ( ( have Raspberry Pi ) && ( want learn Linux) ) { Python = true; } else { hmm. ; }

If you are fairly new to programming (and it seems like you are), you can just stick with Processing & Java for now. What is important to learn are the concepts of programming, not the specific syntax of a language. If you know some basic data types, how to do loops, functions, and then objects and arrays, knowledge of those concepts will translate easily between languages.

2 Likes

Given the programming language used in that book is Java, pretty much you need to go along w/ it.

As @TfGuy44 had already mentioned, in the beginning the focus is about learning programming concepts.

We can always choose another language after the basics are learnt.

1 Like

Thanks. The first programming language I learned was Fortran77, then C++, but this was about 100 years ago, so in other words, I’m not new to programming but not having sat down at a computer for so long I’ve forgotten everything (plus everything’s changed now). I don’t have Raspberry Pi and probably won’t anytime soon. So as far learning Processing goes it seemed I could use either language, but I’m not sure if in the long term one would be better to use than the other.
thanks in advance for advice!

1 Like

@wsnicol I, along with many others, understand where you are coming from. c++ was my first exposure to programming back in 2006, so I guess that’s a hundred years as well LOL . so I second with @GoToLoop and @TfGuy44. Processing is great for artists to get started with tons of examples built in and is great to remaster the concepts of programming, which seems like your case.

I would also take a look at p5.js - https://p5js.org/ if you get into web development.

Best of luck! We hope you enjoy it :slight_smile:

Just wanted to share my experience with both processing with java and python.

I started Processing with Java, and used it for quite a long time before I switched to Python. The reason being is that prototyping visual ideas came to me faster in python, and in many ways it almost started to feel like a creative writing exercise. This is facilitated by usefuls ways of dealing and transforming lists with list comprehensions, unpacking, other built-in functions and useful standard modules. Compare that with processing with java, where it’s watered down to make it less verbose, but you still have to write more lines of code to achieve what could be expressed in much fewer lines in Python. Writing fewer lines of code is important to me because it enables me to focus on the higher level aspects of the visual idea. On the other hand, Processing with Python tends to be slower than processing.java, but not to the point where it hinders my creative output. Sometimes I port my sketch to java if I felt the need for a faster sketch.

I don’t know if you should start processing with python immediately, because I haven’t done that. Even though most learning resources would be made for processing.java, I think one could start immediately with processing.py, and people here try their best to answer people’s questions for processing.py here.

1 Like

If n1 here is curious, I’ve got a “3D Knot” sketch in Java Mode, Python Mode & p5js flavors: :tongue:

Java Mode: 3D Knot (Java) - OpenProcessing

Python Mode:

p5js: 3D Knot (p5js) - OpenProcessing

Not even close! Lots of reasons you might consider Python, but performance should never be one.

Personally I feel quite meh about Python. If anything I’d broaden your horizons further and look at things like Quil. Learn different programming concepts / paradigms over specific languages.