Posted by ilamont 13 hours ago
I make little tools like that all the time. My GitHub is filled with these little things I write or gen once never to be used again. Some of them I use daily (GitHub.com/dexterlagan). Since LLMs became decent I make even more of these. The more we move forward, the more people make things for their own use. I think it's cool. I see a lot of naysayers, but man, I have been waiting for this kind of tech since I was 10. Let's enjoy it I say.
Meanwhile, one peak at the code and you can already see the state starting to become a bit of a spaghetti mess.
It’s a funny time to live through. A lot of code is being written and a lot of it is going to be a real future burden.
This assumes that the models of the future won't find it easier to just throw the code away and rebuild it
This also assumes that the same application build by humans wouldn't become a "spaghetti mess".
Sometimes it seems like they're moving very slowly. That makes sense: It's easy to get used to how they work today and it is also easy to forget how much worse they were last year.
When we look back and realize that just 4 years ago these tools didn't really exist at all, it becomes clear that the rate of progress is rather amazing.
In 4 years, we've gone from "hah, good luck with that crap!" to "little kids writing music-learning games on their own in a few minutes"
That's pretty friggin' awesome, and it's not finished yet. :)
Since this is Claude, the models of the future might be more expensive, or more locked down, or might decide your 8yo is actually trying to build a cleverly disguised bomb so her request gets silently downgraded to a dumber model, etc.
then ... in some places (maybe cars that people care about working on) it became cleaner again. In the other places, they added a second hood to hide the mess.
There is some clean code out there, like maybe the seL4 kernel:
https://en.wikipedia.org/wiki/SeL4
"with an explicit goal of enabling comprehensive formal verification..." (and lots more stuff)
maybe we can still have niches like this.
The purpose of a car itself didn't change. But the massive inflated demand, as our city planners decided every adult must be put in a rolling metal cage to participate in society, changed the environment it was originally designed for.
Now it's a matter of geopolitical stability, or even basic human habitability of these spaces, that a car converts as much of that chemical energy into movement, and releases as little toxic byproducts in the process. Whereas before, that cost, at scale, was small enough to neglect.
Just like a modern CPU evolved into an incomprehensible mess, even though the basic consumer needs hadn't changed much, because the politics of computing forced them to run expanding institutional cruft at reasonable speeds, on battery-powered always-on addiction machines.
another analogy would be opening some computers to add memory/ssd/hd, as judged by ifixit
I remember installing seventy-two individual DIP chips onto an Everex 2-megabyte 8-bit ISA EMS expansion card and downloading software to make it work in MS-DOS from Intel's dial-up BBS. I remember chains of MFM drives being made to work by keying obscure commands into debug to run programs that were built into the hard drive controller card.
Oh, so many fun evenings working out which devices could share IRQs and configuring software to work around the corner cases that developed. Serial mice, PS/2 mice, plus bus mice of several different varieties. XT, AT, and PS/2 keyboards. The veritable plethora of mutually-incompatible CD-ROM interfaces.
A clock card: A whole friggin' card with a clock chip and a battery, just to keep track of wall time. (And the software to make it work.)
I even remember SCSI, which was famously renowned for the number of goat sacrifices that were required to to make it work. (Except, I remember SCSI very fondly. CD burner, reader, 7-disc Nakamichi changer, flatbed scanner, DDS tape, and a few IBM Ultrastar 9ES hard drives all sharing the same bus? Sure, why not? It worked. But it took some care to get there.)
It's simple today. Want more storage? SATA is easy (and everyone will make fun of you, but USB 3 works great for a hard drive in a desktop rig). m.2 is compact, and only has a couple of variations. Video cards -- even multiples of them -- just slot right into motherboards and they don't even have jumbers to configure. Sound cards are forgotten. RAM comes in standard forms that only change once every decade or so. Input devices, basic NICs, and video capture stuff can just plug in with USB. The USB ports themselves can be multiplied using hubs.
It's pretty good today, isn't it? Am I missing something?
lol. the original statement was that AI written code is a mess "under the hood"
And I tried to say - cars were "simple/fixable under the hood", then emissions made them a mess then some (specific) cars became simple/fixable again.
but my analogy wasn't clear, so I tried saying that computers went the same way.
started out with simple s-100 bus/pc with slots... but at some point they became no-user-servicable-parts-inside (per ifixit) but some have gotten servicable again.
in summary - I think AI can make a mess, but maybe AI can make clean/maintainable code someday.
maybe there will need to be an AIfixit.com to rate models.
Yeah, I wasn't quite picking up what you were putting down. :) And I'd apologize for writing about old computers, except I enjoy writing about old computers. I never had much experience with S-100, though; my days of hands-in computing started with PCs in the 80s and I missed the earlier eras.
Anyway, I think you're right: The bot will continue to improve. It will get simpler to operate, and it will also generate cleaner code.
But with a twist: That generated code won't become cleaner because it makes it cheaper/easier for humans to understand and work on. Instead, it will instead get cleaner because it makes it cheaper/easier for bots to understand and work on.
(Why use many token when few do trick?)
That is how compiler-generated assembly looks to humans, as well. Human-produced is typically much more readable. Yet, here we are. Most programmers only know the very basics of assembly programming, but the world keeps spinning just fine.
2. Compilers and building tool chains change all the time. CI and automated testing catch any regressions. Tye same can be done with LLMs.
3. LLM code generation, with some work, can be made deterministic, if that mattered to somebody.
On the other hand an engineer might take a couple hours and build this in a clean way with the right prompting
These “got ‘em” ai criticism comments are getting so old
The fact that this is possible and works at all is mind blowing - even more mind blowing is that my 8 yo is growing up in a world where they can talk to a machine to produce a custom application in seconds and they don’t realise how mind blowing it is!
In terms of the code, it would take even less time than that to tidy it up. For this application you wouldn’t bother. That’s almost a form of “premature optimisation” unless you’re actually planning on doing more work on it.
My hunch is that what the world is about to see a lot of is much bigger bits of work, or changes to other bigger existing systems done by people without the skills to know how to contain the complexity. That’s going to come with a burden.
A novice writing code by hand could also write spaghetti code
If you've worked in enterprise software, you might have seen that even competent professionals can write spaghetti code
At this point AI really is just garbage in garbage out
Wild to me that we see this even in what is a relatively more “sophisticated” forum
I can absolutely prompt AI to following established patterns and produce nice, clean output in a legacy codebase. I also have a completely separate set of skill files that I’ve been building organically by allowing the agent to do make most decisions about conventions. The latter produces code that would be a nightmare to modify by hand, but I’m still able to iterate on it many times faster than I could in the codebase where code quality is a requirement.
“Code quality” is mostly “human readability”, and I’m simply not sure that’s a valuable attribute anymore.
That's an extremely narrow view of programming, and shows a complete lack of experience.
There's no shortage of examples of unmaintainable spaghetti AI code, Claude Code is just one of many. If you have examples of good codebases maintained by "prompting experts", I'd love to see them.
Recent notable examples would be the Linux kernel or cURL.
But you can just loop over something like `hcitool rssi "$MAC"` and project it somewhere, there's a variety of ways.
I like using dunstify with the -p option to persist on screen.
I think it's really impressive what these agents can do, but you should also consider whether you're asking it to burn tokens reinventing the wheel for you, or making a pretty wrapper around a wrapper.