Ok, this is awesome.
1,531 karma · joined June 27, 2020
Ok, this is awesome.
Yes, but I think it's important to state that it's only reliable for things that are very well known and extensively written about.
But what happens when the 20% quality margin that we lost aggregates over different layers of infrastructure and compounds into brokenness and chaos?
It is also interesting how the LLM optimists are leaning on tools like Rocq and Lean to save them from the mess of uncertainty and confusion. These are tools created by people who understood their code and worked with deeply with type theory etc. People can keep thinking they can get away with making products from vibes, but down in the infrastructure they still have to depend on people thinking and building carefully.
It is hypocritical to campaign for "nobody will look at code anymore" while depending on the hard work of people who carefully look at code.
I think we need to keep pushing back against this idea that "now it's the AI coding era, everything gets coded with AI." Let's keep building things, especially passion projects carefully by hand and normalizing this. Lots of us are still coding without AI.
This is a one possible approach/explanation:
https://pragprog.com/titles/swdddf/domain-modeling-made-func...
Now instead of aiming for robust, malleable code, people are throwing up their hands and saying, "It was always a mess, let's just keep throwing more tokens at it."
But there is the problem that tests only check or verify a small sample of possible cases or inputs. They can never show that the program is correct. (Famous Dijkstra statement.) To know something is really correct you have to understand and prove it.
Testing is NOT verification.
EDIT: Sorry, oops, it's also called a kind of verification.
That seems like an solution to the kind of programming that is piping together little pieces of business logic with all kinds of different APIs and services all over. I agree that AI is helpful to distill the piles of documentation and things to learn.
But I mostly enjoy a different kind of programming where you work on a big complicated problem / business logic that sits mostly within the bounds of a defined language setting. The craft of finding more and more elegant, far-reaching, and correct abstractions, and then being able to build things out confidently from those well found abstractions is, in my mind, the greatest joy, and also what AI seems the worst at.
Is most of the "business" within the inner logic, and you've got a complicated internal logical process you want to keep safe and solid? Haskell shines.
Do you have a fairly (internally) simple app that does a lot of reaching in and out to the messy outside world? Haskell might not be the most pleasant experience, to put it lightly.
What people can get away with on the upper crust with end-user apps would spell disaster for the inner parts.
"AI and the New Fascism" - https://rainermuehlhoff.de/en/KI-und-der-neue-Faschismus-Rec...