Turning P and NP on its head // overwhelm machines
The classic P versus NP problem in computer science asks:
Can every problem that is quickly verifiable (NP) can also be quickly solved (P)?
The classic example being something like Sudoku: it's easy to check if a grid is correct, but it's difficult to complete it.
Or for a certain program's behavior, it's (usually) harder to code it than to check if the output is correct.
With the new tools around the block, we've flipped this on its head.
It's easier now to "code" that is, generate solutions, and hard to check if they are actually correct.
Now of course, the parallel's not perfect (if the problem is actually NP, then I guess you could do some sort of loop to brute force if the solution is correct). But thinking of general, real-life software engineering, amidst vague requirements and catch-22 scenarios, validating if something actually is correct is closer to a P problem more often than not.
And I guess that (yet another) of the big issues behind the push for AI is that it moves work from implementation effort to validation effort via inevitable code reviews over approximated resemblances of codebases.
With a person's capacity for code review (and recommendation, really) of 90 mins/day and 200-400 LOC per hour, I simply see no way how this is supposed to make development faster. All it does is overwhelm people.
The bottleneck's in the decision making, and LLMs can't and will never be trusted to make decisions.
The bottleneck's also in verification. No conceptual understanding (the fabled AGI, not coming any time soon) => no way to speed up verification. And a person's capacity for code review simply degrades after a while, and mistakes slip in, and that's how you end up with outages/defective software.
We're really reaching a "too much" era, it seems. AI may be, in my opinion, one of the first instances of tech where it only makes sense as an effort reducer, but not output amplifier. Because despite all the business people talking about how the first inevitably leads to the second, that is not actually a given. So, same workload achieved a bit easier, maybe, but that doesn't mean you can increase the quantity delivered, beyond the cognitive limits of what humans can reasonably and sustainably do.
Unless of course we push ignore those limits and end up burning people down even more than we're already doing as a society. But even that has to have a limit.
Before the ai stuff came upon us, I remember all the talk about optimising for productivity by: reducing context switching, achieving flow state, etcetc. Protecting our cognitive resources, pretty much. We also have agile-style development, where work is split up in small bits. All of these combined just lead to a huge mess. The paradigms clash. How can you do more, if more just means shifting context all the time? And we know how taxing that is, since until a few years ago, trying to reduce that was what every productivity boosting-mind was focused on? Have we completely forgotten about all that???
It's the modern version of when the 8-hour day was introduced because they figured out that if you work for longer then you start making more mistakes and output actually lowers. No wonder people are getting psychosis from this stuff, it's completely cognitively draining.
But if you don't shift context, do you just do... what? stare at the screen while the code writes itself? eventually overwhelm yourself by reading the "thoughts" of the model? or you could just, maybe... go for a walk. eat a bit. do the dishes. stretch.
And my intuition is, this is how people generally use the tech that's thrust upon us right now, if they are allowed. Because current-era code generation could really make our lives (a bit) easier, by letting us live a bit more. and maybe you reduce overwhelm like that, and maybe it even improves your work performance a bit as a result. But that's not the groundbreaking, fabric-of-society-destroying improvement companies are paying so, so much, and hoping, for.
But while this is still going on, i must continue to interact with the overwhelm machine. And i hope i'll live a long enough to see through this age of greed to an end, and, hopefully, the next age of sustainability.
(This is not how i imagined i would be spending my 20s like at all, when i was growing up)
🕊️ thanks for reading. for thoughts, complaints, or comments, drop a message at: hello [at] nicoleta [dot] cc