Yes this is an interesting and complex discussion… Processing for 20 years has allowed us to start teaching without OO and with drawing function names on the global namespace, like imperative/structured first, and then you can introduce OO later. This can also be a good fit for Python, people start with structured scripts before the need to define a class. There is this ‘Cognitive Load Theory’ idea that you should reduce introductions to essentials (“scafolding”), to make them more manageable etc. So, in my experience, less typing, less symbols, helps beginners (and Python usually goes on that direction).
Comparing how other tools do it
- Processing Python mode (sadly dead) … all drawing function names and system variables on global namespace (same as Processing Java, p5js and pyp5js);
- p5py went for wildcard imports (as you mentioned, it is discouraged and can be trouble etc.);
- py5 different modes: “imported mode” (using a sketch_runner tool or a Thonny IDE plugin) for beginners, single sketch/canvas, global names; “module mode” with import py5, “class mode” more advanced, for multiple sketches etc… The Five py5 Modes — py5 documentation
I find most “OO upfront” CS curriculums (like the International Baccalaureate, which pushes Java) very problematic. But mind you, I’m an activist for teaching programming for people who might not want become professional programmers, so my inspirations are Code As Creative Medium or if you want something more formal Guzdial’s Media Computation Course.