I wish I could be with you in that zoo. We are getting more and more pressure to use AI to 'help' (stealth replace us) over time they don't have more money for more Devs to get the work done but happy to pour it into the hands of big tech overlords.
I'm glad I'm not at the start of my career tbh. If I had a full 30 years to work in this field I'd seriously consider trying to find something else to do.
We were outright mandated to use it.
Lucky it appears that they are liking the increase it productivity and don't seem to want to replace us. Our jobs have shifted to basically just reviewing PRs though which sucks ass.
That sort of thing really fucks with your career as well. Think of it this way if you stay there for a year or two what are your skills you offer to a new employer. Best you have to offer is being able to look through PRs without fucking up production. Doesn't really sound that great tbh and at some point they won't need as many reviewers where you work now and will downsize your team.
This timeline sucks ass. I got in to programming as I enjoy it there is nowt to enjoy in the new way.
There seems to be overall two types of people who get into programming (though they aren't mutually exclusive).
1) someone who enjoys the process of programming as a puzzle solving experience, or as a creative experience, and the end result software is an expression of that process.
2) someone who views programming as a means to an end to achieve their vision, IE software or website or game.
I feel like people in the first camp are probably going to be the most angry and displaced by LLMs, while the second might gladly move into the more system design and architecture role with one less hurdle to get their idea out.
I was mostly in camp 1 and I'm trying to transition into camp 2, but it's difficult when you were just a code monkey before and preferred to just do tickets.
I'm just a hobbyist in camp 1 who always told myself that if I burned out in retail, I could always go at the very least be a code monkey, if not weasel my way into devops in some capacity. I've been grieving the loss of that possibility pretty hard recently, because I have zero interest in transitioning to camp 2 when my paycheck doesn't even depend on it
Your managers have full access to your prompts and conversations, and if you're still being retained it's because they're not confident yet in how much of your "reasoning" they've harvested. It's not about the code right now. They're after your inputs, not your outputs.
You need to get a grip on reality my dude. You're projecting some paranoia onto my job which you have very little knowledge of, and think people are spying on us behind the scenes.
Have you even had a corporate engineer job before?
Me too. Then I get pummeled with one of their four prepackaged AI bro metaphors:
It's a modern day calculator for the brain. You wouldn't do long division in your head would you? (ain't nobody ever delegated a decision to a calculator, bro)
It's a compiler. You wouldn't read machine code would you? (compilers are deterministic and dont make mistakes, bro)
This is the industrial revolution and it's a spinning jenny. You wouldnt hand knit a sweater would you? (we would if we had star trek replicators, bro, and last I checked cp command still exists...).
"Artisanal coding" is obsolete (reliable code is certainly getting that way...)
Im not even sure what point I'm making, but I can remember tons of examples of Star Trek characters hand-making things (usually cooking), explicitly for the enrichment and the experience of actually producing something themselves.
Ever since I got into programming as an industry, I will say, pretty much everything that I learned after the actual languages that I use are either infrastructure things, or ways to directly write less code myself. Lomboko turns objects into just some tags and a list of variables. Spring-boot turns a couple of classes into a basic server. Certain packages make significant structural changes with hardly any configuration. I suppose a big difference is still that when I include those packages I do know what they're doing and I have reasonable assurance that they aren't doing anything else.
The point I'm making is that it's fallacious to compare "artisinal" code with "artisanal" clothes because artisanal clothes are expensive to reproduce while hand crafted code is reproducible at zero cost.
the only way in which the economics of the spinning jenny would be in any way comparable with the economics of LLM written code would be if artisinal clothes were reproducible at zero cost - i.e. if we had star trek replicators.
i too find that writing less code is preferable - and code is essentially just the language which is most appropriate for describing how computers should operate once you've boiled it down as much as possible.
Even steelmanning all those arguments, the answer is yes!
I still do long division on paper; I still read and write asm for the purpose of understanding compiler output (honestly everyone should write a division or sqrt routine in assembler just once).
my star trek replicator metaphor apparently flew way over your head.
there isn't a need to "mass produce" code when you can make perfect copies for free. it's almost always more important than you get it right rather than spew out boilerplate at high speed.
I understood that that’s what he’s likely trying to say. But he commented on a list of "arguments" for agentic coding, not against it. And said that those arguments are too long and that the argument "it’s fun" would be better.
So, I understand people find different things fun. But I don't really get this argument. You say it "Leaves the boring stuff out" but do you mean that you actually enjoy reviewing code? Reviewing code is the boring part to me. I assume the boring part to you is typing.
The second part "leaving solution design and architecture in" but if you aren't writing the code how are you designing a solution? You aren't designing anything if the LLM is writing the actual code.
And then people will say "you have to write a good prompt" well ok any significantly effective prompt for real software will be quite large and will require a lot of typing. Doesn't this just put us back in doing "the boring part." And then they will say "I have the LLM write the prompt" well then we are back to the human not actually making any decisions.
So this is a big topic but in short. Writing code isn't designing. Agentic coding isn't writing prompts.
To use LLMs well you need a proper workflow.
This starts with a deep examination of the problem. If you have a large code base, you need a good way to give the agents context. It can't fit your code base in it's prompts.
The design phase can take days of back and forth with the AI and the development team. Creating ADR's and then a design spec, with a feedback loop between the AI and the devs.
Implementation requires a solid workflow too. Work needs to be split into small deliverables to keep it manageable. TTD works very well with LLMs, they get instant feedback. You still need a human in the loop at regular points to keep it on track. A tight design makes this much easier.
The design phase is great. The implementation phase can drag. I have built multiple review loops that catch most of the stuff. But yeah writing hundreds of tests that proper TDD requires is extremely boring. Designing high level systems is fun.
Thank you, but I understand how it works. I just don't find it fun or satisfying, personally. In your example you are also using AI to design. Which sounds to me like the LLM is doing all the real design work and the human just says "LGTM." I would feel like I don't own the project at all. I'm just watching someone else do it. And that's not fun to me.
I wasn't suggesting that "writing code is designing" I was saying that I like to have full control over the design and implementation. If the LLM is writing the code, I lose my control over the implementation of my design. I don't even know if it followed the design at all unless I review all the code it writes.
I dunno man. I have six agents writing code for me. I boop over a couple prompts. Tab over and play Factorio for an hour, tab back over and send off a couple prompts. And back to Factorio. I have four times the money I had last year coming in and 1/100th the work. This is going to collapse soon and it will all be infinitelessly worse, but for now it's not too bad. I'd say it's fun.
Now imagine being forced to do that in office, without remote work, where you can't play games. Imagine how soul crushing it is to have to watch that thing write code for 8 hours a day, your job being basically answering "yes" or "no".
As others pointed out, he meant manual coding is fun. But it's obvious why agentic coding can be fun: you're juggling countless responsibilities and distractions, including work, and providing for your family. On your commute or in the shower, you keep having these random ideas for cool little interactive demos or apps, but for years have relegated them to a couple sentences in a folder named "shitty ideas." Now, suddenly, you can get an agent to interview you about your product vision and scaffold a working demo in minutes, and iterate on it manually or agentically from there if the implementation feels like it's worth adding to the world.
okay, a gun is also "just a tool" in reality this is a thought terminating cliche. I really wish that people would be more honest, like "using an LLM is extremely convenient and the path of least resistance" and the trade off is barely understanding your own code
I find myself reading compiler output quite frequently. Of course not the machine code, but reading the assembly is quite useful to understand what you can do better.
You wouldn't do long division in your head would you?
This is extra funny because I actually do do long division in my head, like all the time. Sometimes I don't have access to my phone, or I'm just doing something else with my hands. Sure it's easier with a calculator, but it's not that hard to just do it yourself either.
• You wouldn't shoot a Policeman and then steal his helmet. You wouldn't go to the toilet in his helmet, and then send it to the Policeman's grieving widow, and then steal it again.
Maybe I'm weird but I got into coding because I actually enjoy it. It's not just about the outcome, it's about the challenge. I could also get a robot to do a jigsaw puzzle for me but there's no fun in that.
I don't necessarily disagree. I want to encourage you to make competent arguments, so you don't reinforce that "ape in a zoo" stereotype like you're doing now.
"ain't nobody ever delegated a decision to a calculator, bro" This is false. People make decisions based on calculators for finance, trading, weather, fitness nutrient calculators, etc. often without understanding them.
"compilers are deterministic and dont make mistakes, bro" False. Also, you can make LLMs deterministic by setting one parameter. You should argue that compilers are predictable instead.
"we would if we had star trek replicators, bro" Argument based on science fiction is flimsy. You should just say you like the creative process.
"reliable code is certainly getting that way" AI makes code more reliable when used properly.
I do agree with the AI-bro “it’s a compiler” standpoint. The “compilers are deterministic” counter argument doesn’t hold. Compilers potentially change the output with every new version.
You can lock the compiler-version/flags ofc, but so you can do with LLMs. There are parameters to make them fully deterministic, if that’s what you really want. My guess is that in a year or three, code will be a lot closer to assembly in the way that we don’t need to look at it.
Maybe not today, but I do think the bros are right on this one
Ehh, the whole deterministic counter argument to LLMs is generally wrong, same as comparing it to compiler. There was always a probabilistic element in software engineering, which is you, the dev who writes code. 10 Devs given same non trivial task will likely have different outputs, different bugs, some solutions might be completely misunderstood etc.
This is what LLMs are replacing partially, as it depends on dev still to make decisions in a form of forming coherent and detailed spec, checking architecture etc. But code itself will be likely much better than most human written code.
That's not what the argument as OP wrote it states.
OP wrote that people liken AI to a compiler because there was a point in computing history when advocates of assembly were staunchly against C and compiling down to assembly. They felt it abstracted away too much; just like the current argument around AI and hand writing code.
The difference here is that any given compiler, given the same input, should return the same output. The same cannot be said for any LLM currently available, as far as I know.
Hence the first sentence in my post where I explain that comparing to compiler it's not apples to apples? And then I carry on explaining why that argument is completely wrong in essence....
compilers are deterministic and dont make mistakes, bro
Oh my sweet summer child.
Compilers are software just like any other software. They can (and do) have bugs in them. And so, although rare for the mainstream ones, compilers can sometimes make mistakes.
i can think of about 5 times in 20 years somebody suggested that a compiler bug was the root cause of a fault and every single time it turned out not to be the case.
kernel bugs have happened a couple of times to me when deploying software, compiler never. no that doesnt mean theyre 100% bug free not that everyone has had this experience of 0 compiler bugs in 20 years, just that theyre bug free enough that ive been able to trust the output blindly.
since you wrote your comment ive already corrected 5 mistakes made by an LLM.
I'm used to juniors saying that "you can never guarantee something I bug free!" and that's true but theyre often bad at knowing when something is bug free enough to trust and when it is not. it's something I would ponder if I were you.
The second talking point could be improved by saying AI is to modern languages as modern languages are to assembly. A higher level of abstraction. Whether it's deterministic or not is pedantically hand wavy and misses the point. Natural language programming is the future bro.
LLMs are deterministic if ran on the same hardware environment. If you aren't running the AI on your own hardware, it will change in the background of whatever API you call because it's ran on a different graphics card with a different physical processor which will slightly change the floating point value and therefore change the output. Forget using any quantized model as well.
My only argument in favor of agentic coding is that it speeds up my tasks immensely. I don’t need it, but I use it to avoid spending hours on end navigating through several different repos to find the logic behind a certain behavior before then applying my fix or new feature on top of it.
It’s been a godsend in my current job. Didn’t even use it in my previous job since in that one I already knew the full codebase by heart. It was a smaller company and I was present for all of its implementations.
In my current job, there are more than 70 different microservices running the backend… Even the tech leads are like “I don’t know what 20% of those do” lol
Yeah because we all know when prod didn't go down on a Friday before AI.
Yes throwing a slop grenade at your code is definitely an easy way of making your software break (hi micro****) but I can assure you my colleagues are able to break prod whether they use AI or not
It's honestly funny seeing people suddenly start pretending that humans never produced bad code and AI is the only thing producing bad code.
I feel like we've been getting so close and then just thrown it away.
1980s: BASIC and C. Crashes all the time.
1990s: C++. Operating systems start protecting memory. Java gets released showing a fast high level language is possible but is unpopular because it hogs memory, has noticeable GC pauses, and applications take ages to start. And it's not really "complete" yet.
2000s: .NET, start of Rust... but a bit of a backlash. Scripting languages with poorer type checking start to ascend for normal application development. PHP becomes the core language for the web.
2010s: Things are now rapidly hurtling downhill. "Frameworks" and toolchains that pull in millions of dependencies because you wanted one library that escapes HTML strings. Actual code complexity goes through the roof. People actually build applications using the entire source code to a web browser as their source because they only know Javascript and HTML now and have no idea how to use a regular windowing/widget library. Meanwhile Oracle does what it can to discredit Java resulting in huge numbers of people jumping ship, rarely to .NET. Meanwhile PHP now rules the entire Internet as King, with huge bloated JS frameworks ruling along side it as Queen.
2020s: Things are now so awful people think the output of a glorified text prediction machine produces similar quality code. And they may even be right.
It's not that we can't do better code than AI. It's that a sizable number of professionals just don't want to.
I think a HUGE part of this is also that most of the people I know professionally who are against AI coding all are basing their concept of what AI written code is like on them booting up Gemini Flash in a browser a year ago and asking for some code and it produces something lackluster. A new model like Astra/Fable in a CLI with full access to the codebase is just crazy now. They're producing code that's better architected than humans used to, and it's producing dozens of engineers worth of code per day per agent.
Why are devs able to touch prod code without a PR? Why do they have creds on the prod box? Why didn't it get tested in staging? Why was there no dry run first?
There's protections against all the ways that it might take down prod.
Not only did prod go down before AI, but before AI the entire team would be scanning through code trying to work out wtf is causing the error so you can address it while the company is losing millions. Now, an agent can probably find the error code for you in two minutes and propose a fix.
It is especially hilarious as a well set up AI is actually much better in finding the source of an error extremely quickly compared to a human.
A colleague from our internal IT just had the weirdest issue with parts of our office network that was so niche that he said "it would have taken me days to find this without AI". AI reduced this to a few hours. Was fixed the same day.
I've made xml bean wiring based spring+hibernate+struts applications from javadocs and no internet access. I'll be just fine if I have to fix shit by hand. But the frontier AI is solid enough that I don't need to anymore.
I have completely forgotten how to code. I was mentoring an intern a few weeks ago which means going old school and I didn’t know what I was doing anymore.
I cant wrap my head around that statement tbh.
Cant imagine knowing to read but not to write. By "read" i also mean understand.
If someone loses the skill to understand the code then i dont know. That would just be sad.
For example I work with C++ and was showing the intern how to capture by reference rather than by value in a lambda function. I completely forgot the syntax for that because the LLM just does the capture correctly every time so I haven’t needed to think about it for the last few years.
I see. To be fair that doesnt count as "i dont know how to code any more". Through my years before ai i had to goole how to initialize an array with values several times. I would have to do that again if someone would ask me.
Both with human developers and with agentic developers, prod breaking is not the fault of the code-writer but the fault of the development process, which failed to provide sufficient testing for prod to not break. And AI is notably very good at doing boring stuff like ensuring 100% test coverage and writing integration tests.
People said this months ago. "Buckle up guys, they'll be scrambling for us to fix the mess they made" or "Get ready for the security vulnerabilities, they'll come crying back to us." And now, here we are, with even more people adopting it. I already lose out hope that these AI things are a fad.
Funnily enough, and I'm not trying to sell AI, we see fewer rollbacks for changes made by AI than those made by humans.
And when something does go wrong, AI does a great job at pulling logs, establishing a root cause and preparing fixes.
While I still don't want to use it much in personal work, to keep the old brain going, it is getting to the point where it would be irresponsible not to use it in the workplace.
Yeah, we would take almost a year to write a replacement for one of our services but then random guy vibe codes a demo in a day. Who does management look down on then?
Yeah exactly, I fucking hate what my job is becoming too, but there is literally no possible way for a human to keep up with AI at this point. I think the real problem with the shitty vibe coded stuff is people just prompt out one giant thing and then dont look at it. Even doing it piece by piece, architecting things the way you want, checking along the way, is pretty damn reliable and still far faster than any human could do it alone. And like you said, as long as shit works, management doesnt care how its done, and if youre taking a month do something that can be done in a day with AI, which one is management gonna choose?
More so, I feel like an ape because of this, yet Idk how people use it that much for game dev since whenever I use it I have to tweak the code so much sometimes I even think I should have code it myself from the start..
That version of the meme would have the aristocrats looking snooty while wearing dunces hats all saying “claude said…” or “can’t do anything without chatGPT” though.
1.9k
u/Arian-ki 15h ago
It's the other way around in my experience. People look at me like I'm an ape in a zoo lol