How much magic is TOO much magic?
In the TalkPython 2025 Year in Review something
was brought up that we should be thinking about. The group were discussing how nice uv is at removing
a bunch of getting started problems for new Python users. It’s around the 30 minute mark if you want to go listen.
Jodie Burchell wondered if it is “too much magic”.
I’ve struggled with this exact question a few times in my career. In teaching others, designing interfaces, etc and I’m not sure where I land.
It’s a hard balance to strike.
Pardon a bit of a tangent, but I remember learning Java 1.0 before there were IDEs. You had to learn that the
compiler was named javac and how to compile things on the commandline. I think I was building an Applet if
you were alive back then. Anyway, fast foward a few years and I was always surprised to read online someone
struggling to compile Java who had a ton of experience but NONE outside of an IDE that abstrated away the magic of
compiling.
If were given a error message from javac they didn’t even know what that was.
The case for NO magic…
Back in my day we had to rub ones and zeros together, uphill, both ways in EBCDIC just to print Hello World! By God you should have to too!
No real programmer… bullshit starts to emerge pretty quickly doesn’t it?
However, there is real inherent value in knowing, at least a little bit, about the layers above and below the level at which you’re currently operating. Myself and my coworkers end up solving problems faster than our client’s employees often because of that very knowledge.
The case for LOTS of magic…
Users can get to the important bits without stumbling. They can learn just enough to accomplish the task.
Maybe that’s all they EVER need to know?
Perhaps because they did not stumble and get frustrated they dig deeper on their own, unprompted, to learn the dark arts we all practice daily.
Does it even matter in an LLM world?
Our LLM friends change my thinking on this quite a bit. New users would likely be leaning on them to get over any speedbumps they run into anyway, so why not magically have them not run into any in the first place?
And if they do want to dig deeper for better understanding their LLM can guide them through what they might need to know.
So maybe there is no such thing as too much magic anymore?!?!?
Frank Wiles
Founder of REVSYS, Django Steering Council, PSF Fellow, and former President of the Django Software Foundation .
Expert in building, scaling and maintaining complex web applications. Want to reach out? Contact me here or use the social links below.
Join my newsletter!
Get the occasional email from me when I write something new.
Struggling with architecture decisions or team dynamics? Ask me any tech, business process, or entrepreneurial question, and I'll do my best to help!