

I guess I’m one of the idiots then, but what do I know. I’ve only been coding since the 90s
I guess I’m one of the idiots then, but what do I know. I’ve only been coding since the 90s
That’s kinda wrong though. I’ve seen llm’s write pretty good code, in some cases even doing something clever I hadn’t thought of.
You should treat it as any junior though, and read the code changes and give feedback if needed.
I’ve used Claude code to fix some bugs and add some new features to some of my old, small programs and websites. Not things I can’t do myself, but things I can’t be arsed to sit down and actually do.
It’s actually gone really well, with clean and solid code. easily readable, correct, with error handling and even comments explaining things. It even took a gui stream processing program I had and wrote a server / webapp with the same functionality, and was able to extend it with a few new features I’ve been thinking to add.
These are not complex things, but a few of them were 20+ files big, and it manage to not only navigate the code, but understand it well enough to add features with the changes touching multiple files (model, logic, view layer for example, or refactor a too big class and update all references to use the new classes).
So it’s absolutely useful and capable of writing good code.
“Better shoot some blacks to avenge it”
I’ve found it useful to write test units once you’we written one or two, write specific functions and small scripts. For example some time ago I needed a script that found a machine’s public ip, then post that to an mqtt topic along with timestamp, with config abstracted out in a file.
Now there’s nothing difficult with this, but just looking up what libraries to use and their syntax takes some time, along with actually writing the code. Also, since it’s so straight forward, it’s pretty boring. ChatGPT wrote it in under two minutes, working perfectly on first try.
It’s also been helpful with bash scripts, powershell scripts and ansible playbooks. Things I don’t really remember the syntax on between use, and which are a bit arcane / exotic. It’s just a nice helper to have for the boring and simple things that still need to be done.
Just can’t waste time on trying to make it do anything complicated because that never goes well.
Yeah, that’s a waste of time. However, it can knock out simple code you can easily write yourself, but is boring to write and take time out of working on the real problems.
The trick is, most of what you write is basically old code in new wrapping. In most projects, I’d say the new and novel part is maybe 10% of the code. The rest is things like setting up db models, connecting them to base logic, set up views, api endpoints, decoding the message on the ui part, displaying it to user, handling input back, threading things so UI doesn’t hang, error handling, input data verification, basic unit tests, set up settings, support reading them from a file or env vars, making UI look not horrible, add translatable text, and so on and on and on. All that has been written in some variation a million times before. All can be written (and verified) by a half-asleep competent coder.
The actual new interesting part is gonna be a small small percentage of the total code.