That question completely misunderstands what AI is for. Why would I just do it when the AI did it for me in less time that I could myself and mechanically in a way that is arguably harder for a human to do? AI is surprisingly good at identifying all the edge cases.
i probably don't understand. the main thought i have re: llm coding is, why i would want to talk to a insipid, pandering chatbot instead of having fun writing code?
but, as an engineer, i have to say if it works for you and you're getting quality output, then go for it. it's just not for me.
It seems to me you're coming in with a negative preconceptions (e.g. "insipid, pandering chatbot"). What part about coding is fun for you? What part is boring? Keep the fun bits and take the boring bits and have the LLM do those.
It is a well understood phenomena of human nature to say that "I would rather die then go through X" and then when you go through X (or worse) you don't want to die. This is well understood because it happens a lot with illness or accident. Also its a very adaptive trait that we want to avoid terrible situations but most of us don't quit.
The book says that that's exactly what it's supposed to be, to inspire people to talk about it. But (also from the book) the war games the USA runs around these situations always end in a massive nuclear exchange. Sure, some specific situations, like the Devil's Scenario, I would imagine might not reflect a real war, but the case the book is making is that reality is far more likely to be closer to the worst case than to a "best case" (whatever that means here).
I had assumed that if there was a full nuclear exchange that of course both sides would target nuclear power stations in enemy territory - like anyone would be sticking to "rules" in that scenario?
what are you using for this? one thing I can't wrap my head around is how anyone's idea of fun is poking at an LLM until it generates something possibly passable and then figuring what the hell it did and why, but this sounds like something i'd actually use.
Yes. Vscode/Copilot/Claude Sonnet 4. The choice of AI may make a significant difference. It used to. The GPT AIs, particularly, were useless. I haven't tried GPT 4.1 yet.
for the codebase i work on, i made a rule that "functions do what the name says and nothing else". this way if the function does too much, hopefully you feel dumb typing it and realize you should break it up.
I find an odd overlap between people who get incredulous about function decomposition and who think cracking open a thesaurus as an architectural exercise is stupid.
I have no idea what that’s about, but I think it has something to do with “white-knuckling”.
People name things and then miss boundary conditions that matter and would have been implied by finding a more accurate synonym. And also supplementary features that the better name suggests.
I have definitely been guilty of naming functions foo_thenBarSometimes. I wince whenever I write them, but I've never really regretted seeing them later on, even after years. So sometimes it really is a perfectly good name. Sometimes there are two related functions that are often called together and don't have a succinct label for the combined operation.
It likely has some higher-level meaning other than just do foo, bar, qoo.
For example if you are calling functions "openDishwasher", "loadDishwasher", "closeDishwasher", "startDishwasher", your function should be called "washDishes". Not always that straightforward, but I believe in 95% it's not difficult to put a name on that. For the rest 5% you need to get creative, or maybe you realize that you didn't group the function calls well enough to have an atomic meaning.
Yeah, I agree in spirit but I think the answer is more ”it depends” than something where you should feel bad or something if you deviate from it. If washDishes also sends a bunch of metrics/diagnostics or updates a database of your favorite dish washing programs somewhere inside it, that’s probably fine. Otherwise you push the path of least resistance to just be vague instead, then you get a codebase full of functions with names like handle or process.
Some function can be named generally but the name is specific when concatenated with the module name and/or the package name. `load` is generic, but `app.config.load` is more descriptive.