You may also consider that developers (like any person in any profession) exist on spectrum of competency, and you may just be better than most of them.
But models are climbing their way up the percentile charts.
90% of the software development in the work, by volume, can be done by people who are in the 50th percentile of skill.
So these model advances do meaningfully expand the amount of "useful" work that can be done without people. And simultaneously not be "good enough" for the specific kind of work you find yourself doing day to day.
Not insane at all. There are two types of developers: those who do it primarily for the outcomes, and those who do it primarily for the craft. These are fundamental orientations.
Do craft people like outcomes? Sure. Can outcome people appreciate craft? Sure. But fundamentally, you typically fall more in one camp than the other.
And this assertion comes from the outcome people. Is it insane? No. To assert it's insane is insane, because it shows a fundamental disconnect from the economics of software development.
Which is about right, because the craft people don't do something primarily for the economics.
I do care about craft, but I am not considering craft in my comment. My problem is that craft and correctness are often correlated, and I do care about correctness. I care that the software I ship to end users, and especially the libraries that other software is built upon, are relatively bug free. A good way to assure this is to spend a long time, as a human, reasoning over what the AI wrote.
At work, I've frequently used AI to rapidly build MVPs. Then I get back to work and spend a lot of time on my own, with the help of AI, and with the help of code review from my teammates, raising the quality and correctness bar. Much longer than it would've taken if I just wrote it myself out of the gate, though there is still a net AI productivity gain because writing is just so so much faster.
All this is to say is that I do not care* if AI or a human wrote a library in actuality, but if it is obvious from the code and readme that an AI (or an amateur human) wrote it, I will reject the library because it is clear it is not up to the spec I demand. But tovalds can use AI all he wants in linux as long as the correctness of the output remains the same.
* perhaps I care slightly because on a more personal level, I do think its a little sad, though in a professional capacity I do not care.
I've rarely met a "craft" person that authors TLA+ models to find correctness issues in their systems. And yet as an outcome person I frequently ask my AI minions to do this and similar exercises.
What I think you're actually describing is competency using AI as a tool to drive effective and correct outcomes. That takes practice and systems - same as it ever was.
If you buy in, I think you'll find you can create great, correct systems... only more than you could ever do alone. Without N*N comms overhead. Without having to convince your louder, less competent teammate to actually finish their work.
> What I think you're actually describing is competency using AI as a tool to drive effective and correct outcomes. That takes practice and systems - same as it ever was.
Right, but I suspect (the author did not link the library) that this was not what was happening. I suspect the Java mods looked at the library for a solid 30 seconds and it was immediately obvious there was heavy AI usage in a more negative way.
I feel I fall into two camps for different projects. I have a hobby project where I'm writing native UI components by hand without AI, and managing memory in an Arena allocator I wrote myself. I also have a hobby project where I honestly don't touch the code, I just think in terms of systems run per frame and the time complexity of different algorithms, making Claude do it. Most personal projects are somewhere in between. I don't think either approach is insane, immoral, or any other hyperbole.
> I don't think either approach is insane, immoral, or any other hyperbole.
Agree! To me it comes down to intention and attention.
Depending on my *intention*, I should devote more or less of my *attention* to one thing vs another.
Another way to think about it is essential vs incidental attention, which I borrow from essential vs incidental complexity [0].
Many things require attention, or it doesn't perform correctly. Essential attention. Many, many more things don't require my full attention, and they'll still perform adequately. They satisfice.
Farm out the tasks that require only incidental attention.
Thanks for the link. Software is all about managing complexity. I like the point about testing and external reasoning. LLMs can write a lot of tests in short order, many of which don't do much to help the program. It enjoys "pinning" behavior, which is basically just confirming a golden path and doing nothing to actually examine the behavior of a module under various conditions.
AI helps you build more software in the same way that a C compiler helps you build more assembler.
I spend far more tokens on specification and verification than I do on actual feature-code generation.
And with it a small team of 3 developed something in just a few weeks that would have normally taken us 12 months. And we are selling it for multiple-seven figures to customers who (by all rights) should have been able to token-gen their way to the same outcome, but haven't.
So there is clearly some value in the people, and clearly some value in the AI. But I think people are misplacing/misattributing which goes where, in some cases.
I tend to care about outcome more than I care about craft.
There's more to outcome than a finished product or a delivered feature. Maintainability, technical debt, correctess, security. And, of course, being congnitively in control of what you build. You still have to understand what you are doing to properly steer a LLM.
Problem is while we have a visceral feel for what the "value" of GitHub is to human users for human usage, I'm not sure we have a feel for what the value of the agentic equivalent is.
IMO it's probably very high on paper if you think through what kind of work is unlocked at agent speeds, provided you have a very capable work-execution fabric.
But since we're anchored to human pricing, whatever they propose will feel expensive.
I want to believe, but the first phone was like six months late with no/bad comms, and when it came it was barely usable due. I believe in the mission but have lost some faith here.
I hope they prove me wrong so I can buy Minimal Phone 3!
It also means that you need to extract enough value to cover the cost of said tokens, or reduce the economic benefit of finding exploits.
Reducing economic benefit largely comes down to reducing distribution (breadth) and reducing system privilege (depth).
One way to reduce distribution is to, raise the price.
Another is to make a worse product.
Naturally, less valuable software is not a desirable outcome. So either you reduce the cost of keeping open (by making closed), or increase the price to cover the cost of keeping open (which, again, also decreases distribution).
The economics of software are going to massively reconfigure in the coming years, open source most of all.
I suspect we'll see more 'open spec' software, with actual source generated on-demand (or near to it) by models. Then all the security and governance will happen at the model layer.
> I suspect we'll see more 'open spec' software, with actual source generated on-demand (or near to it) by models. Then all the security and governance will happen at the model layer.
So each time you roll the dice you gamble on getting a fresh set of 0-days? I don't get why anyone would want this.
You already do this with human-authored code, just slowly.
Project model capabilities out a few years. Even if you only assume linear improvement at some point your risk-adjusted outcome lines cross each other and this becomes the preferred way of authoring code - code nobody but you ever sees.
Most enterprises already HATE adopting open source. They only do it because the economic benefit of free reuse has traditionally outweighed the risks.
If you need a parallel: we already do this today for JIT compilers. Everything is just getting pushed down a layer.
Next, you double click the Excel icon on the desktop, and instead of having Excel installed or a spec of Excel, you have a cloud service with thirty years of Usenet, Quora, StackOverflow, Reddit, PHPBB comments and blog tutorials about how people use Excel, and you wait a few moments while approximately-Excel is rederived from these experiences.
You’ll accept the delay because by then it happens faster than Microsoft can make a splashscreen and window open from a local nvme drive. And because you can customise Excel’s feature set by simply posting a Reddit comment where you hallucinate using a feature that Excel doesn’t have and waiting a couple of days.
[although it can be difficult to find the real Reddit to post on as your web browser will tend to synthesise the experience of visiting any website using a cloud AI model of every website without connecting to the real one at all. This was widely loved as a security measure and since most websites are AI written content on AI written codebases, makes less difference than you’d first think]
It's a mistake to confuse what you're seeing out of today's models with what you'll see out of future ones. We're barely out of the gate on this stuff. We'll borrow what works, and use it to bootstrap something better.
> You already do this with human-authored code, just slowly.
No I don't. I build predictable and deterministic pipelines. If I rebuild from a specific git sha, I expect the same output. If I get something different, I need to fix what's causing that.
Nothing precludes you from doing that with AI-gen code vs human-gen code. What you just described is downstream.
If you have a human authoring code, you re-roll every time they release a new version. AI just releases versions faster, and in response to different, faster-moving inputs.
But models are climbing their way up the percentile charts.
90% of the software development in the work, by volume, can be done by people who are in the 50th percentile of skill.
So these model advances do meaningfully expand the amount of "useful" work that can be done without people. And simultaneously not be "good enough" for the specific kind of work you find yourself doing day to day.
Both can be true.
reply