Hacker News new | ask | show | jobs
by aoloe 2330 days ago
you might want to have a look at python play: https://github.com/replit/play

the same goal as pygame zero but with a very different approach.

and no WIDTH and HEIGHT variables...

2 comments

Thanks! I wasn't aware of this library, so this is exactly what I was hoping to hear as an answer. I'll add it to our list to analyze.
Have you tried teaching with it? I'm interested to hear what your experience is like.
no, i've only tried it out for myself:

https://github.com/CoderDojoZH/resources/blob/master/cards-p...

i really liked it, but i don't consider it a mature product i would use "in production".

because of our approach, we can't really adopt it until it's natively supported by a "package" like mu-editor or thonny

my conclusion was:

as a "senior" programmer, who grew up with procedural programming, i'm still "scared" about relying on annotations and async programming.

but, for kids coming from scratch and without much other experiences, i'm not sure that it will be a big stumbling stone.

they will simply "learn" it in a different way: at the beginning, programming is (mostly) black magic anyway : - )

it might be even easier for them to use play, than relying on the magic update() and draw() functions...

(and, no, i don't think it makes a big difference to call those function from a main loop like in pygame or having them implicit like in pygame zero)

probably, the biggest issue would be that the founding blocks of play do not match what the kids will learn in most python tutorials and books (they probably won't find any reference to async or annotations in most programming books for kids or even for beginners!)

all in all: i like play and i think it could be a good match if the focus is more on computer science topics...

in our case, the focus is on the kids having a good time on sunday afternoons and getting them to learn to be an (active) actor in front of their computer, not just a (passive) consumer. we are not too picky about the concepts : - )