All this depends critically on one premise: that sometime in near future AI coders will become fully automated and produce senior level code. If not we are wholly fucked because currently they are employing less and less junior coders which means that we will be running very low on number of senior coders in a decade or so. If LLMs still need supervision by then there won't be enough senior coders to do so.
Technology
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related news or articles.
- Be excellent to each other!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, this includes using AI responses and summaries. To ask if your bot can be added please contact a mod.
- Check for duplicates before posting, duplicates may be removed
- Accounts 7 days and younger will have their posts automatically removed.
Approved Bots
I've used it to explore some avenues without having to write a complete implementation. If the approach shows promise, then I go through the code and mostly rewrite it because the code it generates is terrible. I also use it if I don't care about the project I'm on. They want to "do test-driven development" while having poorly-defined requirements that constantly change on a whim while also setting unreasonable unit test coverage thresholds? Cool, I'll let the AI shit out a bunch of unit tests and waffle stomp it to satisfy your poorly thought out project requirements.
I agree with you on this. Let it handle things you don't care about and massage the output if necessary. Anything I do care about, I code myself, but will ask for help if I get stuck on something. I'm a novice programmer at best, 18/100 skill score.
as a programmer I feel like this would be pretty cool. but this isn't really how it is at all. I'm usually asking Claude code to do something very specific and then I'm throwing whatever it does away because it's not correct. if I could have a little baby that I had to babysit I think that would be better
I was "there" with Claude as you describe about 3 months ago. Since then, Claude has stepped up to being able to create fully functional microservices. It helps if you completely specify what you want, it helps if you don't specify funky libraries or other tech that has poor support on the internet, it helps if your total ask amounts to 1000 lines of code or less - but I have gotten up around 3000 lines before Sonnet 4 choked a few times.
Before this, my AI queries were mostly limited to specific API function call syntax, and they would only be right about 2/3 of the time, which beats randomly trying things myself until I eventually guess the right variation... Yes, it's better to consult the documentation - when it's available - it's not always available.
yea so maybe the resulting future is that the tools can only work with really popular libraries that have lots of people talking about them on stack overflow in the year 2024 or whatever, and new smaller potentially interesting libraries will have a harder time seeing adoption
Conversely, I'd imagine there are babysitters out there who at times wish they could just throw the baby away.
I've thrown the baby away many times
Eyoooo
As a senior dev, I say it's not worth it. Our junior devs rely on it too much and I spent most of yesterday trying to figure out for my junior dev why their code didn't work. Eventually came to the conclusion that they just have to redo most of it because it's utter garbage and invents new code to do what the architecture already has.
As a senior dev, I agree but am impressed that you’re dealing with a functional architecture to begin with
That picture accompanying the article is backwards. Why is it portraying the AI as the babysitter and not the baby that needs to be supervised by a human?
You're absolutely right!
I completely messed up the picture. It should be the other way around. Do you want me to correct my mistake and generate a new picture?
/s
<>
Carla Rover once spent 30 minutes sobbing after having to restart a project she vibe coded. Rover has been in the industry for 15 years, mainly working as a web developer. She’s now building a startup, alongside her son, that creates custom machine learning models for marketplaces.
Using AI to sell AI, infinite money glitch! /s
“Using a coding co-pilot is kind of like giving a coffee pot to a smart six-year-old and saying, ‘Please take this into the dining room and pour coffee for the family,’” Rover said. Can they do it? Possibly. Could they fail? Definitely. And most likely, if they do fail, they aren’t going to tell you.
No, a kid will learn if s/he fucks up and, if pressed, will spill the beans. AI is, despite being called "intelligent", not learning anything from its mistakes and often forgetting things because of limitations - consistency is still one of the key problems for all LLM and image generators
If you bring a 6yo into office and tell them to do your work for you, you should be locked up. For multiple reasons.
Not sure why they thought that was a positive comparison.
AI is, despite being called "intelligent", not learning anything from its mistakes
Don't they also train new models on past user conversations?
Considering how many AI models still can't correctly count how many 'r' there are in "strawberry", I doubt it. There's also the seahorse emoji doing the rounds at the moment, you'd think that the models would get "smart" after repeatedly failing and realize it's an emoji that has never existed in the first place.
Chatgpt5 can count the number of 'r's, but that's probably because it has been specifically trained to do so.
I would argue that the models do learn, but only over generations. So slowly and specifically.
They definitely don't learn intelligently.
That's the P in ChatGPT: Pre-trained. It has "learned" based on the set of data it has been trained on, but prompts will not have it learn anything. Your past prompts are kept to use as "memory" and to influence output for your future prompts, but it does not actually learn from them.
The next generation of GPT will include everyone's past prompts (ever been A/B tested on openAI?). That's what I mean by generational learning.
Maybe. It's probably not high quality training data for the most part, though.
This feels like one of those paid fluff pieces companies put out so that smaller ones feel like they’re “missing out”
If you are wondering how it could possibly be “worth it” the end of the article has this.
The Fastly survey found that senior developers were twice as likely to put AI-generated code into production compared to junior developers, saying that the technology helped them work faster.
So vibes. Vibe coding is “worth it” because people got good vibes.
The research shows that - while engineers think AI makes them more about 20% more productive - it actually causes an approximate 20% slow-down.
AI cannot use logic or reason. Everything it outputs is a hallucination, even if it’s sometimes accurate. You cannot trust anything it outputs.
I'm a senior dev and I want nothing to do with AI. By the time I understand what I want well enough to describe it in a complete sentence or paragraph, I can just write the fucking code myself. I figure it out as I go.
The whole point of having devs under you that is to be able to trust them to get the job done and do it right. You want to be able to delegate tasks to them and not have to peek over their shoulder every five fucking minutes to be certain they're not making a mess of things.
I seriously doubt AI will ever be able to replace that. Not until they figure out how to make it afraid of fucking up.
As someone right there in the trenches getting hired specifically to clean the slop up, I don't buy this survey at all and I'd be very suspicious of any "senior dev" that participated in it cause...where are they? I'm not seeing them when I go in to my clients offices because they all got axed. I do see a lot of junior prompt monkeys though.
If I try to get it to do more than predict the next two lines of code it's gonna fuck something up. A nervously laughable thing I saw at work was someone using a long spec file to generate a series of other files and getting high praise for it. It was the equivalent of mustache templates but slower and with a 30% chance of spitting out garbage. There was also no way to verify if you were in that 30% zone without looking through the dozens of files it made.
I'm well aware the plural of "anecdote" isn't "data", but literally no dev I know (senior or otherwise) thinks this. Give me a junior work with - most of them at least actually learn.
Amen. I've tried the vibe coding thing but it's frustrating because a) too often the AI output has some profound problems and it gets annoying 'babysitting' it; and b) I usually prefer the challenge of figuring out syntax and implementation issues myself.
If something is taking too long I'll ask the LLM. But I feel like if I do this too much my skill set will atrophy and I'll lose my sharpness. So it's a balancing act.
But this brings up another wider question: where is the line between "occasionally getting AI help" and "vibe coding"? Surely it's subjective.
Currently, I write all production code at work without any AI assistance. But to keep up with things, I do my own projects.
Main observation: When I use it (Claude Code + IDE-assistant) like a fancy code completion, it can save a lot of time. But: It must be in my own area of expertise, so I could do it myself just as well, only slower. It makes a mistake about 10 - 20 % of the time, most of them not obvious like compile errors, so it would turn the project into disaster over time. Still, seems like a senior developer could be about 50% - 100% more productive in the heat of the implementation phase. Most important job is to say "STOP" when it's about to do nonsense. The resulting code is pretty much exactly how I would have done it, and it saved time.
I also tried "vibe coding" by using languages and technologies that I have no experience with. It resulted in seemingly working programs, e. g. to extract and sort photos from an outdated data file format, or to parse a nice statistics out of 1000 lines of annual private bank statements. Especially the latter resulted in 500 lines of unmaintainable Python-spaghetticode. Still nice for my private application, but nobody in the world can guarantee that there aren't pennies missing, or income and outcome switched in the calculation. So unusable for the accounting of a company or anything like that.
I think it will remain code completion for the next 5 years. The bubble of trying more than next-gen code completion for seniors will burst. What happens then is hard to say, but it takes significant breakthroughs to replace a senior and work independently.
In real code, so after the first week of development, typing really isn't what I spend most of my time on. Fancy autocomplete can sometimes be right and then it saves a few seconds, but not nearly 50-100% added productivity. Maybe more like 1-2%.
If I get a single unnecessary failed compile from the autocomplete code, it loses me more time than it saved.
But it does feel nice not having to type out stuff.
That's why all research on this topic says that AI assistance feels like a 20-30% productivity boost (when the developers are asked to estimate how much time they saved) while the actual time spent on the task actually goes up by 20-30% (so productivity gets lost).
I find it also saves a certain "mental energy".
E. g. when I worked on a program to recover data from the old discontinued Windows photo app: I started 2 years ago and quickly had a proof-of-concept: Found out it's just sqlite format, checked out the table structure, made a query to list the files from one album. So at that point, it was clear that it was doable, but the remaining 90 % would be boring.
So after 2 years on pause, I just gave Gemini 2.5Pro the general problem and the two queries I had. It 1-shot a working powershell script, no changes required. It reads directly from the sqlite (imagine the annoyance to research that when you never ever use powershell!) and put the files to folders named by the former albums. My solution would have been worse, would probably have gone with just hacking together some copy-commands from SELECT and run them all once.
That was pretty nice: I got to do the interesting part of building the SQL queries, and it did the boring, tiring things for me.
Overall, I remain sceptical as you do. There is definitely a massive bullshit-bubble, and it's not clear yet where it ends. I keep it out of production code for now, but will keep experimenting on the side with an "it's just code completion" approach, which I think might be viable.
Yours is pretty much the best-case scenario for AI:
- Super small project, maybe a few dozen lines at most
- Greenfield: no dependencies, no old code, nothing to consider apart from the problem at hand
- Disposable: once the job is done you discard it and won't need to maintain it
- Someone most likely already did the same thing or did something very similar and the LLM can draw on that, modify it slightly and serve it as innovation
- It's a subject where you are good enough that you can verify what the LLM spits out, but where you'd have to spend hours and hours to read into how to do it
For that kind of stuff it's totally OK to use an LLM. It's like googleing, finding a ready-made solution on Stackexchange, running that once and discarding it, just in a more modern wrapping. I've done something similar too.
But for real work on real projects, LLM is more often than not a time waster and not a productivity gain.
That's completely true; it's hard for me to judge on a small scale when I won't (for good reasons) let it touch my customer's production code.
I keep seeing "vibe coding." WTF is vibe coding? ELI5
A security nightmare waiting to happen.
Also performance, maintenance, and regression.
Vibe coding is asking gpt for code, copying it into your code environment, then telling gpt about any errors or issues. The problem is that it actually works a significant amount of the time, let's be generous and say 80%. Another 15% of the time it cannot solve a problem itself. And finally the worst possible outcome is the last 5%, where it creates a seemingly working solution that actually breaks on edge cases or has potential security issues.
One important aspect of vibe coding that I always see that is missing in explanations is the part that vibe coding is the is the generation of code through AI, but without understanding what the code is doing, the effect of this is you are totally dependant on the AI to keep generating the code, so if any error happens you don't have fucking idea in what to do. If you generate the code using AI and you understood what the AI did, is not vibe coding.
A day will come when I get to know what vibecoding is. Or maybe this word will die out sooner. You never know.
Vibe coding is when you ask a chatbot to code for you, then ask it to fix the errors it generated, and repeat until you can't find any more errors. Later, someone notices that your application was coded by a chatbot, exploits one of the many security flaws, and steals all your data and credentials.
Senior devs love vibe coding because they have the knowledge and skills to recognize and fix errors. They hate it because it makes morons think they don't need the knowledge and skills to recognize and fix errors.
As a senior dev I hate vibe coding. I can write code an order of magnitude faster than I can review it, because reviewing code forces you to piece together a mental model for something made by someone else, whereas when I write the code myself I get to start with the mental model already in my head.
Writing code is never the bottleneck for me. If I understand the problem well enough to write a prompt for an LLM, then I understand the problem well enough to write the code for it.