190
Code Is Cheap Now. Software Isn’t
(chrisgregori.dev)
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Follow the wormhole through a path of communities !webdev@programming.dev
While I (almost) agree with the conclusion, there is a lot of bullshit and unproven assumptions in this blog post. I always cringe about the "AI is democratising software development" argument in particular. This is just wrong on so many levels. Software development is not an ivory tower. Everyone with an internet connection had access to all the resources to learn the necessary skills for free, for decades. Everyone who had an interest in actually learning that stuff and putting a bit of effort into it was able to do so. What LLMs provide is not democratising anything but advertising the illusion that everyone can produce software, effortless and without any skills whatsoever. Software development is much more than just churning out lines of code that seem to work. The Vibecoding approach is like trying to build your own car without having the skills and asking an AI to construct it as the sum of individual parts which all come from different car models from a Lada to a Ferrari. The end result might be drivable, but it will be neither secure nor efficient nor fast nor stable nor maintainable etc. A Frankenstein car. Everyone with half a brain would agree that's not a good idea, however with LLMs people just do pretend its fine.
Everyone could always learn woodworking, weaving, sewing, smithing, ... that is not an argument. The point is that better tools make it easier to learn/perform/perfect these skills. Today anyone with a little torch and a hammer can play around with steel. 300 years ago you had to at least take on an apprenticeship to ever get to do that. Sewing with a sewing machine is so much faster, there is not much time to invest before you can make your own clothes.
Not everyone has 100s of hours free time to sink into this and that skill "the purist way". Any tool that makes the learning curve more shallow and/or the process itself easier/cheaper/... helps democratizing these things.
You argue as if everyone needs to be a super duper software architect, while most people just want to create some tool or game or whatever they think of, just for themselves.
And four years ago a person needed a $100.00 Raspberry Pi 400 and a $25 Python or Java book, or an Internet connection and the URL for https://scratch.mit.edu/.
I am also a fan of how AI is making coding more accessible. But it was hardly out of reach before AI hit the scene.
Many of us in the community pirated our first proprietary code editors and books; and we worked hard for our whole careers to make sure the next generation of developers didn't have to steal their entry to the profession.
Then AI slurped up and regurgitated our years of hard work, and newbies are thanking AI tech bro assholes for welcoming them to the coding community; instead of thanking the folks who tirelessly wrote and published the materials that the AI is regurgitating.
It's fine to agree that AI made a difference. But AI only did the final easy part.
No question, but ethics are a different topic where we seem to agree.
In any case, I find it appalling how much people argue against what they think who I am or more generally that they argue about me at all instead of the topic. Simply because I am not "on their side". You too do this kind of gatekeeping around "we did the hard work" and "those thanking AI are only noobs", in both cases I am implicitly excluded/meant the way you phrase it. Mind you, both are very much incorrect. I learned to code MCUs 10+ years ago with Arduino and built a potent simulation tool for the chemical industry just prior to the launch of GPT3. I am also absolutely not a professional software engineer. But why do I need to say that? It should be completely irrelevant to the discussion. Instead, people want to show/see authority as if it meant anything.
I don't mean to argue with you. I'm just trying to answer your implied question - "Why are so many programmers angry at this new tool?"
Like artists, this new tool steals our work without giving due credit. And then it tries to replace us with a low quality mass regurgitation of our past work.
I'm not angry that you have this new tool, I'm still happy if it helps you.
I'm angry at how this tool was created and how it is being sold and monetized by scam artists.
Edit: I guess I am arguing one point: People keep unjustly crediting AI for making an on-ramp for new developers. AI didn't do shit. People like myself built that on-ramp. I am happy that AI made the on-ramps I have helped build more discoverable. But I wish folks would not lose site of the fact that AI is just regurgitating guides that I, and my peers, wrote.
It is annoying (and a little insulting) to constantly hear about how helpful AIs answers are. I wrote many of those answers. AI copied and pasted them.
Edit: I'm not mad at AI users for having easy access to something I wrote. I wrote it for them.
I'm mad at AI Tech Bro's for stealing my work and taking credit for it, while charging people for something I gave away for free.
Yes, completely relatable.
That's life, buddy. Nobody can learn everything, so communities rely on specialists who can master their craft. Would you rather your doctor have 100s of hours of study and practice, or a random person off the street with ChatGPT? If something is worth studying for 100s of hours, then there's more nuance to the skill than any layman or current AI system can capture in a few sentence prompt.
What kind of nonsense comparison is that? Somewhat off topic, borderline straw man.
People still have their job, better tools enable people to do more things in their free time. Some even switch professions later on, once they have enough experience. Lowering the bar (invest, skill, ...) is simply a good thing.
I personally have spent those 100s (actually more like 1000s) of hours studying Software Engineering, and I was doing my best to give an example of how current AI tools are not a replacement for experience. Neither is having access to a sewing machine or blowtorch and hammer (you still need to know about knots and thread / metallurgy / the endless amount of techniques for using those tools).
Software in particular is an extremely theoretical field, similar to medicine (thus my example with a doctor).
ChatGPT is maybe marginally better than a simple web search when it comes to learning. There is simply no possible way to compress the decade of experience I have into a few hours of using an LLM. The usefulness of AI for me starts and ends at fancy auto-complete, and that literally only slightly speeds up my already fast typing speed. Getting a good result out of AI for coding requires so much prerequisite knowledge to ask the right questions, a complete novice is not even going to know what they should be asking for without going through those same 100s of hours of study.
Without chatGPT I could not have repaired things where I simply threw the datasheet at it and got code to reprogram it, like for an BMS. I could not digitize data streams by sniffing I2C. I could not use computer vision to decode a display. I could not make control and data logging interfaces for machines, turning decade old shit into good-as-new just based on their serial interface. Etc. Etc.
It sounds like you still can't.
As much as I hate AI, what basis do you have for this person being unable to do the things stated besides them being an AI user? I am biased to think of AI users as cheap shortcut-takers who don't care about doing things the right way and are easily fooled by something that appears to work without knowing any of the underlying problems that will come back to bite them in the end. I also can't really come up with any good-faith interpretation here for what you said. I would have to reach to the sun to read the previous comments here and interpret this as trying to gently inform them it's possible there were subtle errors in everything the chatbot said and that they might want to double-check against more credible sources that they actually did manage to do exactly what they wanted. Maybe you're similarly frustrated with AI like me (and thus understandably not wanting to hand credibility to those saying it helped them, lest someone else get pro-AI and help in creating enough pro-AI sentiment for out-of-touch decision-makers to see that they'll decide it can replace all of us in an enterprise environment with complex code) and venting frustration. But it still just looks like trying to insult them because they go against the largely anti-AI consensus here and that really does not sit well with me. Especially since this is not some private vent to a friend, it's a direct reply to a person who's going to read that and maybe feel bad. And as a fellow anti-AI person, man getting insulted by people is not going to make me friendly to listening to any arguments they have. I want civility and discussion to take precedence over "lol dissenter incompetent, probably the worst stereotype we have of someone who holds a position kind of like theirs" shots. :(
civility salt from me
Saw someone talk about how much friendlier Lemmy is than Reddit, and I have to wonder what they're subscribed to specifically because I see unfriendly potshots like this taken and upvoted decently often. It's the kind of thing that would make me think participating is risky and just never say anything, it is why I've deleted so many comments I make that disagree with anyone's position ever because I don't want to deal with that kind of behavior aimed at me. Just frustrated and tired and venting here, not trying to be scoldy or sanctimonious, but already dreading the "jesus you're not my mother, oversensitive much?" comment in the morning. Also too tired and hoping someone who might have chosen to post some "clever" insult as a reply on some other post might see this post and choose compassion instead and make their point without the insult, or just scroll away. Because it's frustrating wanting to relax and instead seeing people being mean to each other. I really have to stop clicking on anything remotely controversial in an effort to avoid seeing something like this. This isn't the first insult I've seen upvoted on Lemmy by far, it's just probably the first one I've commented on about how it made me feel without promptly deleting the comment in fear of conflict and being insulted myself—kind of a "straw that broke the camel's back" thing. Seeing this kind of thing occur on almost any thread that talks about anything remotely controversial isn't the most encouraging for people who want to have civilized discussions on meaningful things that people might passionately disagree on on the Fediverse. Also constantly editing to try to remove any hypocrisy on my part where I insult back or make unreasonable unflattering assumptions out of frustration myself.How blinded by your hate/rage are you that you blindly(!) dismiss the things I do (a random person you do not know) with the help of that tool? Disgusting MAGA level of "argument".
Hate or rage? That's absolutely silly. I'm a computer scientist and I value actual skill.
I mean do a little thought experiment. If there was a dude who followed me around everywhere and I could always ask him for code-based solutions to things, and he gives them to me, am I coding? Have I actually done anything?
You could argue that the system of he and I were accomplishing something together but the problem with that logic is that if you removed me from the system, as a middleman, you're left with someone who still did the work. In that particular system I add absolutely nothing, therefor I'm not actually a part that is of any real use.
If the box is handing you the answers to things you don't know how to do then guess what - you still don't know how to do those things. Eventually you get into a position where you have a product that you can no longer properly understand, debug, or make any real use out of.
I think the real tell here is how sensitive you are if anybody calls you out on your b******* and even the smallest way. Have a nice day :-).
If you use a sewing machine to fix your clothes, did you even do anything? That is the level of argument we are at here. Absolutely ridiculous. It saved me so much time already. Sure I can also digest a datasheet, put all the registers down, glue logic, bla bla bla, but instead of wasting 10 hours I am already done with everything an hour later.
Well you've picked an absolutely terrible analogy, which makes sense given how sensitive you are about it.
If you were able to talk to the sewing machine and tell it exactly what to do with the fabrics what patterns to follow and so forth--then no you haven't done s***.
I sew my own clothes and costumes so I know this to be true. Sewing using a machine is no trivial thing. You have to understand the mechanics of the machine the patterns etc. You have to understand how to read a pattern or come up with one yourself and you have to implement it with the correct stitching the correct fabric and so forth.
If you wanted to pick apart my analogy in an actual careful sense, you would have a situation where you have a person who understands how to use the sewing machine and you give them instructions. But again, in terms of the system you aren't providing any value. The person doing the sewing is. You would still be superfluous and you still wouldn't understand what's actually going on. Call yourself a manager, but don't call yourself a tailor or seamstress.
But what you did is pick an object That is a regular tool and claim that it's doing the same job, which is preposterous.
Our compilers already do massive amounts of syntax and semantic checking. Our linyers do the same. There's a ton of tools that don't involve articulating at a high level what you want and magically getting back your entire process.
Sure, you're done an hour later. And you have no idea what the limitations of your system are. You have no idea what sort of bugs are hidden from your test. You have zero ability to comprehend what's actually going on inside if you don't actually understand the domain.
What you are is a vibe code or by the sounds of it. Honestly I prefer the old school script kiddies because at least they were doing something themselves.
Basically what you're doing is the same thing as me opening up CAD and then pretending that I'm an engineer. I'm not a f****** engineer. I didn't take the right training. I'm not licensed in the area. I can create a 3D model all day long. But that's literally all I can do.
I think you need to understand your limitations the same way the rest of the world does.
Well, if you want to use that stuff for your personal use that's totally fine. But there is a difference between doing that and selling your creation as a product. To pick up on your example, it's great if someone learns woodworking and puts together a table or something. You probably won't sell it though because unless you get really good at it, the piece of furniture will not meet the standards for a good product. It's absolutely the same when using LLMs to put together a piece of software. It will fall apart quickly unless you put some serious work in it. A lot of people think LLMs are a shortcut to learning this stuff and then go on and pretend to be professional software developers. I also doubt these vibecoders learn a lot about about coding when they don't even understand what the LLM is putting together for them as a result of a few wishful prompts.