Several important developers switched to this new idea, the ones who work in production grade stuff (one example is Antirez, who just wrote some tweets that inspired this post)
In the context of many other measures I think speed is an important measure. Maybe even the key measure. I’ve even written a blog post entitled “reading code is an anti-pattern.”
But if the metric is, slowing us down from having more lines in production then the answer is unequivocally yes.
If the answer is providing customer value, or having a sustainable engineering culture. Then I’m not so sure. I’m not saying I believe the opposite, but it feels like excessively optimizing on the wrong thing.
Ultimately I think this asks the wrong question, I think most other surrounding questions is the right one which is - how do you safely and quickly deploy the right code to production that delivers customer value.
I think that will continue going forward involve doing so in an automated fashion, but then the right question isn’t, “should we stop reading code”. But something like “what is the right way to ship intent to production”
Because if you do the first without the second…
Would you drive without looking at the road (or blindfolded) because we now have autonomous vehicles?
Not looking at where you are driving and also never looking or understanding what the code does, makes no sense in the long term. Especially in the event of a disaster.
Both have something called "liability" and it gets expensive when it goes wrong.
> Several important developers switched to this new idea, the ones who work in production grade stuff (one example is Antirez, who just wrote some tweets that inspired this post)
Does that mean we should blindly follow them? Just because someone else is doing it does not mean you should too.
A better questions is...have we lost the ability to think for ourselves because we have LLMs doing all the thinking instead?
I've found that the forced do-it-once-and-do-it-right philosophy requires so much less total development time than the break-things-and-release-often philosophy that I've adopted it on software that I could update after the fact.
The biggest impediment is that you may be relying on a software stack adopting a different philosophy. No matter how good your software is, if the underlying OS or libraries are by, there may still be poor reliability.
Using standard C libraries is a pretty safe bet, whereas relying on Python or Node.js libraries means you'll need to issue constant patches, even if your software works fine, and the fixed libraries might even break compatibility.
Given the option, running your software on OpenBSD can give extremely high uptime as critical updates are rare. They have a philosophy of not only looking at what they write, but looking at it again later, even when they haven't changed anything, just in case they made a mistake.