I’m sure the Astral tools are all very useful but, controversial opinion here, my preferred way to debug Python code is by reading and understanding it…
To elaborate on my previous post: yes, I consider linters and type checkers to be debugging tools. uv, which I see a lot of hand-wringing about is an even more inexplicable tool to me. Maybe I’m an idiot, but I cannot see why I need the world’s fastest dependency installer. I hate dependencies!
But it does so much more I hear you say! It is also an upload tool, edits your project files, and is a bicycle seat cover. And yet I could do all of those things before it existed. I do not want the new hotness. I want to know that the things I use are universal and constant. If I can reasonably code with just my mind and an editor that is how I want to work.
Is this a devops thing? We have become obsessed with making tools instead of making things. You may be angry at AI but, as a profession, we have been automating away our expertise for decades and calling it progress.
Actually, I think it’s an “efficiency” and “productivity” thing. We have constructed a society that values production above all else. To me, finding a bug by patient study *is* programming. You might say I have wasted my time when an automatic tool might have found it in moments, but I would not have become a better programmer by using it. We have made our discipline a chore instead of a craft.
I am, once again, accused of being a hobby programmer. I’ve done 40+ years in 20+ languages in a half dozen different industries. I have, as they say, seen attack ships on fire off the shoulder of Orion, and all this vital code you think you are writing will indeed be lost in time. All that remains is what you learned writing it. If I could go back and do my time over I would not wish to do more, I would try to do less and do it better.
When I think back to the vast, labyrinthine, worlds of code that I have written in the past, I wince with embarrassment. All those layers of abstraction and frameworks I thought so important. Fucking application servers and micro-services. If walking away from all of that is being a hobby programmer, then I am deeply grateful for being able to do so.
I am attempting to reach a Zen state of abandoning all tooling completely. I started rewriting Flitter in Rust last year and then gave up because I realised that I didn’t know what I was trying to achieve by doing so. Instead I have been rewriting it entirely in my head for the last 6 months. I reckon that when I have properly understood the problem I will be ready to turn it into code.
@jonathanhogg I rely on code and concepts by long-dead people daily; they've done a terrible job for the most part, so to me perfecting the craft means not leaving the same type of mess ahead. my code will outlive me many times over