I don't get it, I thought this was a port of Processing to Python, but then the installation instruction says:
> If you have Java 17 installed on your computer, you can install py5 using pip:
So it still depends on Java? Is this like a Python wrapper for Processing?
UPDATE: Got the explanation. From another page on the website:
> Py5 is a creative coding framework for Python 3.9+. Its use and functionality is analogous to the widely used Processing framework. It is a Python version of Processing.
> Internally py5 uses Processing’s core libraries, which are written in Java, while providing the end user with a (mostly) seamless Python programming experience.
Emphasis is mine. The wording in the first paragraph (which is the same as on the project's home page) seems ambiguous to me. Reading it I would really not expect a Java dependency.
People have got Processing working Jython (I played with it myself a very long time ago).
Jython itself is making it's way to a python 3.x implementation but it doesn't seem to be quite there for general consumption, though maybe for some creative coding things this isn't a problem, for myself I'd need to wait until it's ready.
If you are able, I'd recommend contributing to the Jython 3 work.
Python is successful because everyone is aware that it has relatively terrible performance. As a result, anything remotely heavy is put into performant libraries that use not-python, leaving a nice glue language with fast libraries.
If you have something CPU bound, and it's python code hitting that ceiling, you're probably throwing away 10x performance [1]. That's ok, because anyone that cares about performance doesn't do that (or quickly learns).
Why would you rewrite something that already exists? It'd be a different story if the library evolved naturally starting with python, which it very much might if it was created today.
> If you have Java 17 installed on your computer, you can install py5 using pip:
So it still depends on Java? Is this like a Python wrapper for Processing?
UPDATE: Got the explanation. From another page on the website:
> Py5 is a creative coding framework for Python 3.9+. Its use and functionality is analogous to the widely used Processing framework. It is a Python version of Processing.
> Internally py5 uses Processing’s core libraries, which are written in Java, while providing the end user with a (mostly) seamless Python programming experience.
Emphasis is mine. The wording in the first paragraph (which is the same as on the project's home page) seems ambiguous to me. Reading it I would really not expect a Java dependency.