Processing's eventual switch from Java as primary language, over to Python?

Hi @pablohotsauce, are you referring to the text “Goodbye Java?” ?

I would personally love to see a full Python version of Processing. Truth be told, I even happen to secretly hope to win the lottery just to spend all the money on developing such a project.

Why ? Because I think Python beautifully matches the ethos of Processing: accessible and easy to learn, flexible and versatile, educational-oriented and prototyping-friendly. It seems to me that the two are conceptually closely tied to one another.

From my daily coding experience in Python mode I would say that this is also true on a practical level:

  • the high-level nature of both worlds makes that you end-up with an exceptionally “performative” language (it says what it does): draw(), circle(), add()… in Processing; sort(), enumerate(), sum()… in Python. One echoing the other almost naturally.

  • this performative aspect coupled with Python minimalist syntax can allow for a higher degree of clarity, both visually and intellectually speaking. As rightfully put by WakeMeAtThree in this other thread, clear and shorter code makes it very often easy to keep track of the logical process being built while enabling to focus on the higher level aspects of a visual idea.

  • these characteristics are of paramount importance for the Processing community because it means that most people would be given the opportunity to sketch and prototype much faster. Not only speed is a characteristic of the very definition of “sketching” (Processing is referred to as a software “sketchbook” after all) but it is also a crucial feature in any creative process: more iterations can lead to new ideas, faster results help having a more fluid and seamless experience (keeping the “flow”), quicker trial and error, easier transitioning between projects…etc.

It is also my opinion that Python would not only improve the sketching process but also broaden the spectrum of possibilities in terms of creation.

  • sure it would break compatibility with current Java-based libraries but users would then get access to the huge ecosystem of Python libraries instead. Top grade modules in any field of choice: computer-vision, vector math, computational geometry, combinatorics…you name it.

  • Python has undoubtedly the best AI-related frameworks. Given the recent impact of deep learning techniques on creative methodologies I can only imagine how beneficial this would be for creative coders, computational artists, designers/architects…etc

That said, I have too much respect for the work of Casey Reas and Ben Fry as well as for the whole community of users and developers, who for the vast majority (90%+) has been relying on original Java Processing for almost two decades, to call for a “switch”. It would be too radical.

That is why the most reasonable initiatives that have been made so far do not intent to replace Java but to concurrently provide a “true” Python alternative. The most promising in my opinion: Python 3 Processing on JVM through JEP (would support both eco-systems). But it will probably be a long time before it is released and fully operational.

5 Likes