The Future Of Processing.
Technical Blog 4.
![]() |
https://processing.org/exhibition/ |
Last time, we looked at p5.js (Processing's JavaScript sister-language) and how we can use p5 to make web games. Of course, everything we looked at previously in Processing carries over to p5.js, allowing us to make interactive animations and visualisation which are easily shareable.
For my final post on Processing, we are going to take a quick look into the future of Processing. What lies ahead for Processing, p5.js, Processing.py and Andriod Mode for Processing? But first, let's discuss the two versions of Processing which we have yet to see: Processing.py and Android Mode.
What Is Processing.py?
In my very first post on Processing, I mentioned that you can write Processing code using Python syntax. Without going into great detail, if you know Processing (which you now do having read this blog!) and you know Python - then you can pretty much guess what the syntax is for just about anything you want to do.
I will add, however, that in Processing.py you also have access to the Python core library as well as almost everything in the Processing language. [1]
To get started with Processing.py, click the drop-down menu (the button with "Java" on it) in the top right of the Processing IDE and then choose "add mode" and choose Python Mode.
I will add, however, that in Processing.py you also have access to the Python core library as well as almost everything in the Processing language. [1]
To get started with Processing.py, click the drop-down menu (the button with "Java" on it) in the top right of the Processing IDE and then choose "add mode" and choose Python Mode.
What Is Android Mode For Processing?
The Android operating system is written in Java. Processing code compiles to Java. So what is stopping us from making Android apps in Processing? Answer: NOTHING!
Android Mode can been installed from the same place in the Processing IDE as Python Mode.
Code written in Android Mode is written in the usual Java syntax, but this time when you run the sketch you get an emulator of an Android device instead of the normal sketch. It is also possible to connect an Android device (via USB) to you machine and run the sketch on the device itself. [2]
Android Mode comes which a library of features to manipulate sketches using the standard Android controls. Have a look at the documentation and try making a circle move around the screen based on user tilting their device... if you have an Android device to test it on...
Android Mode can been installed from the same place in the Processing IDE as Python Mode.
Code written in Android Mode is written in the usual Java syntax, but this time when you run the sketch you get an emulator of an Android device instead of the normal sketch. It is also possible to connect an Android device (via USB) to you machine and run the sketch on the device itself. [2]
Android Mode comes which a library of features to manipulate sketches using the standard Android controls. Have a look at the documentation and try making a circle move around the screen based on user tilting their device... if you have an Android device to test it on...
What Are All These Different Modes Used For?
Let's be honest: Processing is not a language which is used to make complication production applications. As we have seen, it is possible to make complication applications, but there are better libraries and frameworks out there (for Java, JavaScript and Python) to build whatever it is you are trying to build.
Well, unless you are trying to make interactive artwork.
Processing was originally made for artists and graphic designers, and although there are far better tools for making graphics - there are few tools which are anywhere near as good at making interactive graphics programatically as Processing.
The other area where Processing stands out above other languages is in education.
There are articles and blog posts for, seemingly, every language in existence trying to make an argument for why that language is the best first programming language to learn.
Most of those articles speak a lot of truth, if your reason for learning to program is to become a Java developer, or a .NET developer, etc. but for teaching high-school age children how to program? Just look at Java's "hello world!" program and think whether or not you would show that to a 12 year old and excitedly say "hey, want to learn how to program!?". They will not be impressed.
Even trying to teach a 12 year old to write Python code is bad enough when (at least to begin with) all they are going to be able to do is use Python as a glorified calculator.
Compare that with writing a "hello world!" program in Processing.py. The Syntax is simple, the output not only makes sense but is quite exciting to know that you made your computer draw a circle (far more exciting than making it print out a string which you just wrote, or add two numbers together). And then in mere minutes your small child can made the circle follow the mouse or move around how they wish.
Furthermore, as we have seen, a lot can be done with Processing and by the time our high-school age child has finished studying Processing for 5 years, they could well have a better understanding of OOP than many professional developers (the concept of a "class" makes so much more sense when your objects are tangible things which you are drawing on the screen, such as a spaceship class and an asteroid class).
Daniel Shiffman has written several books and produced hundreds of hours of video on Processing and p5.js (as well as literally being employed to teach creative coding full time). [3]
Processing is used a lot in education by many people around the world, and the Processing Foundation does a lot of work to promote the use of Processing as an educational tool. [4]
Processing's Android Mode and p5.js are great ways of sharing your work without requiring users to install Processing, or have to download .exe files after you export your work as an application.
Well, unless you are trying to make interactive artwork.
Processing was originally made for artists and graphic designers, and although there are far better tools for making graphics - there are few tools which are anywhere near as good at making interactive graphics programatically as Processing.
The other area where Processing stands out above other languages is in education.
There are articles and blog posts for, seemingly, every language in existence trying to make an argument for why that language is the best first programming language to learn.
Most of those articles speak a lot of truth, if your reason for learning to program is to become a Java developer, or a .NET developer, etc. but for teaching high-school age children how to program? Just look at Java's "hello world!" program and think whether or not you would show that to a 12 year old and excitedly say "hey, want to learn how to program!?". They will not be impressed.
Even trying to teach a 12 year old to write Python code is bad enough when (at least to begin with) all they are going to be able to do is use Python as a glorified calculator.
Compare that with writing a "hello world!" program in Processing.py. The Syntax is simple, the output not only makes sense but is quite exciting to know that you made your computer draw a circle (far more exciting than making it print out a string which you just wrote, or add two numbers together). And then in mere minutes your small child can made the circle follow the mouse or move around how they wish.
Furthermore, as we have seen, a lot can be done with Processing and by the time our high-school age child has finished studying Processing for 5 years, they could well have a better understanding of OOP than many professional developers (the concept of a "class" makes so much more sense when your objects are tangible things which you are drawing on the screen, such as a spaceship class and an asteroid class).
Daniel Shiffman has written several books and produced hundreds of hours of video on Processing and p5.js (as well as literally being employed to teach creative coding full time). [3]
Processing is used a lot in education by many people around the world, and the Processing Foundation does a lot of work to promote the use of Processing as an educational tool. [4]
Processing's Android Mode and p5.js are great ways of sharing your work without requiring users to install Processing, or have to download .exe files after you export your work as an application.
p5.js And The Future Of The Web
A new p5.js web-editor has been in development for some time (to allow users to write p5 code directly in the browser). The contributors to p5.js have also made special effort to make this new web-editor more accessible (particularly to blind users). For more information see this video.
In this sense, p5 is paving the way for a future in front-end development for blind developers (which is turn would create a better future for blind internet users).
In this sense, p5 is paving the way for a future in front-end development for blind developers (which is turn would create a better future for blind internet users).
Contributing To Processing
If you have been inspired by the power and beauty of Processing by reading this, and the previous, posts then I highly recommend continuing your Processing journey and maybe even considering contributing to the project.
If you look at the p5.js or Processing.py reference pages you will notice that they have comparably far fewer examples than the Processing examples page. The main reason for this is that the main developers of p5 and Python Mode have far bigger and more important things to be spending their time on.
Fortunately, however, there are plenty of talented Processing coders out there who could write examples for them! In fact, you don't even need to be that good at Processing because all you have to do, most of the time, is to just rewrite existing Processing examples in either JavaScript or Python.
In most cases, this only takes minutes to do and is greatly appreciated by the developers.
To get started, head over to the respective GitHub pages for p5.js or Processing.py, pick an example that isn't being worked on and get coding!
I hope you have enjoyed reading my blog. This is probably the last post I will ever do, so thank you for reading and I hope to see you at a coding meetup somewhere in the world one day!
If you look at the p5.js or Processing.py reference pages you will notice that they have comparably far fewer examples than the Processing examples page. The main reason for this is that the main developers of p5 and Python Mode have far bigger and more important things to be spending their time on.
Fortunately, however, there are plenty of talented Processing coders out there who could write examples for them! In fact, you don't even need to be that good at Processing because all you have to do, most of the time, is to just rewrite existing Processing examples in either JavaScript or Python.
In most cases, this only takes minutes to do and is greatly appreciated by the developers.
To get started, head over to the respective GitHub pages for p5.js or Processing.py, pick an example that isn't being worked on and get coding!
I hope you have enjoyed reading my blog. This is probably the last post I will ever do, so thank you for reading and I hope to see you at a coding meetup somewhere in the world one day!
References
[1] http://py.processing.org/
[2] http://android.processing.org/
[3] http://shiffman.net/
[4] https://processingfoundation.org/
[4] https://processingfoundation.org/