Skip to content

The old religion of Python

I think I miss the old religion of Python.

Python used to feel like a language with doctrine, an almost political statement about the way you understood what code is. It required a very specific mind model.

You were expected to write things in a way that was legible, disciplined, and above all predictable.

In Python’s original worldview… surprise was the enemy.

And whether you agreed with it or not, it always seemed like a specific kind of righteousness unto itself.

Can we go back to that?

I was thinking about it today while debugging an app melt. I started in the AST, but it turns out the failure was more human.

In a system governed by contracts, the central contract has to be explicit.

Mine wasn’t. I left too much of the governing structure implied, and the agents started compensating by bloating the core of the app until it started coming apart under the weight of the letter of the law.

There’s this thing that happens when you’re coding. Your mind passes over a gap like that and says, “Well, that should be obvious, right?”

Famous last words.

But I think that’s part of what feels slippery to me about modern Python.

It’s become more permissive, more pragmatic. More like the kind of thing that makes sense in a pinch in production, and less like this beautiful crystal of personal restraint you can hold up to the light.

All programming languages are strings of decisions about what problems you’re solving, and for whom, with the knowledge that nobody’s ever going to be totally happy with all of the tradeoffs.

The older a language gets, the more tradeoffs it makes.

And then… boom! You’ve just hit the wall at a million miles an hour.

I think coding agents struggle with this too. Past the prototype phase, they seem to need strong direction around where the rigidity belongs. If the rules are soft, the architecture gets soft.

And soft isn’t always bad. But you do have to know it’s there. Especially when it’s in the floorboards.

That’s part of why I like Go so much. It’s more structurally predictable.

It gives you enough flexibility to build real systems without turning solidity into a negotiation. I don’t think it would have solved the problem of implicit design flaws, but it would have made it more obvious earlier.

Either way though, bugs are valuable signal.