I built a student project in Python to teach them some basic cryptography stuff. The code is all in Python 3, but requires some libraries with native components (notably, GMP for bignum support).

I tested it. I even made sure it worked on my M1 Mac laptop.

Handed out Friday.

Oh wow. Student machines are all over the map in the errors they're experiencing. This is a tech support nightmare for me. It's got a straightforward Makefile that runs all the right pipenv commands. And it breaks in really subtle ways on different student machines.

For contrast, I've previously handed out assignments in Java, using the Gradle build system (same as Android apps use). You pretty much just install a JDK and you're good to go. Everything kinda just works.

I can see why people just give up and use virtual machines or Docker. There's just too much variation out there in the Python universe and no way of knowing whether you'll have it all done right.

Sigh.