3 ms·
The problem is or tools and languages for expressing thought to a computer are terrible. And we're terrible at developing better ones, and we're terrible at eva
by BoiledCabbage 9y ago
The problem is or tools and languages for expressing thought to a computer are terrible. And we're terrible at developing better ones, and we're terrible at evaluating their fitness, and we're terrible at adopting better ones once they come along.
It's a limitation of or brains. The cost of re-learning how to think is too damn high.
The solution space of ways to solve programs with computers is highly dimensional. We are climbing a local minima and we're not gonna be sitting anything different part of space any time soon.
What's even worse is we can't even iterate quickly because it takes us so long to evaluate large changes, and the costs of making small changes are too high to be worth it.
We're still using Algol syntax 50 years later! It isn't better, it isn't well constructed. It arcane, and unnecessary - but the tech costs of moving away from it are to high. Someone could fix improve Algol syntax in a few days max and every Algol derived language (c/c++/java/js/c#/...) would benefit. But nobody in hell is gonna update every algol derived compiler ever written and update all the code ever written to match. It'd be ludacrious!
But here, exactly the type of incremental improvement you'd make in a development cycle if it were a library being written now, is impossible to make because of change costs. Think of rapid prototyping and small iterative improvements - this is exactly the opposite.
When the engineering overhead to fix a bug is minimal ( "I'll code it in 10, run through automated tests and CI, then deploy") you fix every small bug you see. When the overhead is huge ("10 mins to code. But it'll reset our multiweek manual test pass, and force us to not physically ship until next product cycle") you don't bother and code rots.
That's the problem, and that's where we are.
- dredmorbius 9y agoI'm not particularly convinced. Your comment reminds me of someone's essay on programming languages, and of the improved efficiency of adopting same. There was machine language, and then assembler, and then the first set of third-generation languages, and then ... C. And for all that's come along after C, there's been some progress, but in general, relatively little. Each variant has its advantages, and disadvantages. C itself has major problems (it's insecure as hell), but ... works well enough. And so we're caught in a bit of a hairpin-bend effect. I'd have to see a particularly good argument that this is a fundamental limitation of human minds, or of technological sociology (that is: the net effects of programmer skill and education), or something like that.