Let's talk about #py5 tips for those coming from #Processing #Java to #CreativeCoding in #Python!
https://github.com/py5coding/py5generator/discussions/389
for
@villares rather than telling folks to throw away their static types from Java, it may help to convert them to type hints, https://docs.python.org/3/library/typing.html#module-typing since they can be helpful, even if they aren't necessary
@TomLarrow yeah, I thought a bit about that... But for beginners, and for exploratory creative coding, I don't feel like they are a good fit.
But then I could at least mention them, right?
@TomLarrow @villares also, observe that #py5 has proper typehints builtin to all methods and functions. This makes it easier to code with py5 in IDEs that support them, like VSCode.
@villares why would you want to load Jars from Python?
Java would load C/C++ code through the JNI but this was often fragile and a lot of technical debt. You did it because you needed the 10% performance bump from C/C++ or you wanted to use a UI library.
Scala, Groovy, etc.. make use of Jars because they run on the JVM and so you don't have the fragility issues. The key headache is the technical debt of multiple languages in one project
This project seems the worst of both worlds
Cheers @stevecrox!
Processing Java has a great vocabulary/API for graphics and interaction that has been fine tuned for more than 20 years by artists and for artists, so it feels very comfortable for those of us how grew used to it. It even includes a great OpenGL 3D canvas. Processing is really cool for teaching, also, there is insight from a huge Processing creative coding community to "tap from" (books, meetups, the Processing Foundation).
But then I like Python's dynamic typing and high level data structures best, I also really love the Python community, so py5 (Python reaching the Processing infrastructure via JPype, which seems pretty robust, I've been using it for the last few years) is my dream tool for creative coding.
There are other nice options if you prefer other languages, like C++ (OpenFrameworks) or Kotlin (OpenRNDR), and p5js.org if you like JavaScript.
Reading you message again, it kind of sounded rude. If you don't like my tools and you are curious of why I would like them, you should ask in a more tactful manner.
@villares Why the preference for Python data structures?
Both support constructors, inheritance, composition, etc.. I can't see an obvious advantage.
Python does support extending from multiple classes and as someone who started as a C++ dev, that is a horrible feature that must be purged!