There seems to be two camps of people: those who love the coding and those who love delivering value/solutions. I am in the latter camp. The happy consumer and the polished product is what gives me satisfaction, the code is just really a vehicle from A to B. It’s a shame for anyone in the first camp who wants a career.
This false dichotomy comes up from time to time, that you either like dicking around with code in your basement or you like being a big boy with your business pants on delivering the world's 8000th online PDF tools site. It's tired. Please let it die.
It's not that extreme.
There are people who would code whether it was their career or not, I'm not one of those people. I fell into software development in order to make money, if the money stopped then I would stop. I love building and selling products, if I can't do that then I have no interest in programming. I'm interested in machines, CPU's, etc. I'm interested in products, liaising with customers, delivering solutions, improving things for users, etc. You think there is no distinction there? Again, there are people who code for fun, I'm simply not one of them...
why are you on a hacker forum then?
maybe "MBA news" would be better suited?
There is lots of useful information here. I enjoy a lot of the discussions. Why else?
"There are two kinds of programmers: those who love making programs, and those who love making money. I'm in the latter group."
Pretty much. But I like making money THIS way. Other ways would be fine, but I enjoy this immensely.
Agree with those 2 camps. The latter camp is all cheered up which is nice, but they should be asking the question if their solution is valuable enough to be maintained. If so, you should make all generated code your code, exactly in the form it needs to be according to your deep expertise. If not, congratulations, you have invented throw-away code. Code of conduct: don't throw this code at people from the former camp.
Or to phrase it more succinctly: if you are in camp 2 but don't have the passion of camp 1, you are a threat for the long term. The reverse is dangerous too, but can be offset to a certain extent with good product management.
> If so, you should make all generated code your code, exactly in the form it needs to be according to your deep expertise.
This is solved problem with any large, existing, older code base. Original writers are gone and new people come on all the time. AI has actually helped me get up to speed in new code bases.
> If so, you should make all generated code your code, exactly in the form it needs to be according to your deep expertise.
Is this also true of all third party code used by their solution? Should they make all libraries and APIs they use their own in exactly in the form it needs to be according to their deep expertise? If not, why not?
If so, does this extend to the rest of the stack? Interpreters, OSes, drivers? If not, why not?
No. They don't need to maintain, debug and extend those libraries.
Well, what if one becomes unmaintained or has issues that only affect your project. Why is that uncontrolled code different to generated code? Is it specifically that it's generated?
This isn't a trick question, BTW. It's a genuine attempt to get to the rationale behind your (and the GP's) stance on this.
In particular, the GP said:
> Or to phrase it more succinctly: if you are in camp 2 but don't have the passion of camp 1, you are a threat for the long term.
That hints I think at their rationale, that their stance is based on placing importance on the parts of software development that they enjoy, rather than any logical basis.
> Well, what if one becomes unmaintained or has issues that only affect your project.
This happens, but very rarely compared to changes in your own code base. If a library breaks, you can usually find an alternative, but even in that case you need to know how to modify your own code.
The difference with generated code is that you are tasked to maintain the generated code.
> This happens, but very rarely compared to changes in your own code base.
I don't think this is true, but say we accept it.
> The difference with generated code is that you are tasked to maintain the generated code.
Is this a task that LLMs are incapable of performing?
> Is this a task that LLMs are incapable of performing?
That's what people tend to report, yes.
You’re forcing a binary choice here.
I think for a lot of minor things, having AI generate stuff is okay, but it’s rather astounding how verbose and sometimes bizarre the code is. It mostly works, but it can be hard to read. What I’m reading from a lot of people is that they’re enjoying coding again because they don’t have to deal with the stuff they don’t want to do, which...I mean, that’s just it isn’t it? Everyone wants to work on what they enjoy, but that’s not how most things work.
Another problem is that if you just let the AI do a lot of the foundational stuff and only focus on the stuff that you’re interested in, you sometimes just miss giant pieces of important context. I’ve tried reading AI driven code, sometimes it makes sense, sometimes it’s just unextensible nonsense that superficially works.
This isn’t tech that should replace anything and needs to be monitored judiciously. It can have value, but what I suspect is going to happen is we are going to have a field day with people fixing and dealing with ridiculous security holes for the next decade after this irrational exuberance goes away. It should be used in the same way that any other ML technique should be. Judiciously and in a specific use case.
Said another way, if these models are the future of general programming, where are the apps already? We’re years into this and where are they? We have no actual case studies, just a bunch of marketing copy and personal anecdotes. I went hunting for some business case studies a while ago and I found a Deloitte “case study” which was just pages of “AI may help” without any actual concrete cases. Where are the actual academic studies showing that this works?
People claiming AI makes them code faster reminds me that Apple years ago demonstrated in multiple human interaction studies that the mouse is faster, but test subjects all thought keyboard shortcuts were faster [1]. Sometimes objective data doesn’t matter, but it’s amusing that the whole pitch for agentic AI is that it is faster and evidence is murky for this at best.
[1] https://www.asktog.com/TOI/toi06KeyboardVMouse1.html
If you really want to deliver polished products, you still have to manually review the code. When I tried actually "vibecoding" something, I got exhausted so fast by trying to keep up with the metric tons of code output by the AI. I think most developers agree that reviewing other people's code is more exhausting mentally than writing your own. So I doubt those who see coding as too mentally straining will take the time to fully review AI written code.
More likely that step is just skipped and replaced with thoughts and prayers.
I do manually review. I don't think the quality of my output has reduced even slightly. I'm just able to do much more. I deliver features more quickly, and I'm making more money, so of course I'm happy. If there was no money in programming I wouldn't be doing it, I think that's the major distinction. I barely have any understanding of how a CPU works, I don't care. I build stuff and people are very happy with what I build and pay me money for it...
> those who love delivering value/solutions.
This is such marketing speak. The words mean nothing, they’re just a vague amalgamation of feelings. “Vibes”, if you will.
If you “love delivering value and solutions”, go donate and volunteer at a food bank, there’s no need for code at any point.
> The happy consumer and the polished product
More marketing speak. If you are using LLMs to write your code, by definition your product isn’t “polished”. Polishing means pouring over every detail with care to ensure perfection. Letting an LLM spit out code you just accept is not it.
The word you’re looking for is “shiny”, meaning that it looks good at a glance but may or may not be worth anything.
What term would you use? You can't say "a finished product" because it may never be finished, but something that other people find valuable seems like a good definition.
I get the argument. Sometimes I really enjoyed the actual act of finally figuring out a way to solve a problem in code, but most of the time it was a means to an end, and I'm achieving that end far more often now via AI tooling.
> What term would you use?
I’m not fussed about the exact term, as long as it points to something real and at semantic equal footing with the alternative.
Note how they described two areas of focus (what you “love”): “coding” and “delivering value/solutions”.
You can be a “coder” or a “programmer”, no one is a “deliverer of value/solutions”.
“Coding” is explicit, it’s an activity you can point at. “Delivering values/solutions” is vague, it’s corporate speak to sound positive without committing to anything. It doesn’t represent anything specific or tangible. It doesn’t even reference software, though it’s what it is, to make it sound broader than what it is. You could say “using and releasing apps”, for example, thought proponents may feel that’s reductive (but then again, so is “coding”).
Again, what’s in contention here isn’t the exact term, but making sure it’s one that actually means something to humans, instead of marketing speak.
> This is such marketing speak. The words mean nothing, they’re just a vague amalgamation of feelings. “Vibes”, if you will.
I actually think this reveals more about you than you might realise. A _lot_ of people enjoy being able to help people resolve problems with their skills. Delivering value is marketing speak, but it's specifically helping people in ways that's valuable.
A lot of people who work in software are internally motivated by this. The act of producing code may (or may not be) also enjoyable, but the ultimate internal motivation is to hand over something that helps others (and the external motivation is obviously dollars and cents).
There is also a subset of people who enjoy the process of writing code for its own sake, but it's a minority of developers (and dropping all the time as tooling - including LLMs - opens development to more people).
> If you are using LLMs to write your code, by definition your product isn’t “polished”. Polishing means pouring over every detail with care to ensure perfection.
You can say the same thing about libraries, interpreters, OSes, compilers, microcode, assembly. If you're not flipping bits directly in CPU registers, your not pouring over every little detail to ensure perfection. The only difference between you and the vibe coder who's never written a single LoC is the level of abstraction you're working at.
Edit:
> If you “love delivering value and solutions”, go donate and volunteer at a food bank, there’s no need for code at any point.
I also think this says maybe a lot about you, also, as many people also donate their time and efforts to others. I think it may be worth some self-reflection to see whether your cynicism has become nihilism.
I have spent over a decade working primarily on open-source, for free. I still do it, thought it’s no longer my primary activity. A huge chunk of that time was helping and tutoring people. That I still do and I’m better at it; I still regularly get thank you messages from people I assisted or who use the tools I build.
I did use to volunteer at a food bank, but I used that example only because it’s quick and simple, no shade on anyone who doesn’t. I stopped for logistical reasons when COVID hit.
I have used the set of skills I’m god at to help several people with their goals (most were friends, some were acquaintances) who later told me I changed their life for the better. A few I no longer speak to, and that’s OK.
Oh, and before I became a developer, I worked in an area which was very close to marketing. Which was the reason I stopped.
So yeah, I know pretty well what I’m talking about. Helping others is an explicit goal of mine that I derive satisfaction from. I’d never describe it as “delivering value/solutions” and neither would any of the people I ever helped, because that’s vague corporate soulless speech.
>I have spent over a decade working primarily on open-source, for free.
How do you feel about the fact that OpenAi et al have slurped up all your code and are now regurgitating it for $20/month?
I don’t think they should’ve done that or continue to do it without consent, and I don’t limit that to code. Books, images, everything else applies the same.
I also don’t think “but it wouldn’t be viable otherwise” is a valid defence.
I don’t see what that has to do with the conversation, though. If your point is about the free/$20, that doesn’t really factor into my answer.
> So yeah, I know pretty well what I’m talking about. Helping others is an explicit goal of mine that I derive satisfaction from. I’d never describe it as “delivering value/solutions”, that’s vague corporate soulless speech.
While I commend your voluntary efforts, I don't think it lends any more weight to your original comment. In fact, I think this comment highlights a deep cynicism and I think a profound misunderstanding of the internal motivations of others and why "delivering value" resonates with others, but rings hollow to you.
In the end, this debate is less about LLMs, and more about how different developers identify. If you consider software to be a craft, then mastery of the skillset, discipline, and authorship of the code is key to you.
If you consider software to be a means to an end, then the importance lies in the impact the software has on others, irrespective to how it's produced.
While you are clearly in the former camp, it is undeniable that impact is determined entirely by what the software enables for others, not by how it was produced. Most users never see the code, never care how it was written, and judge it only by whether it solves their problem.
You’re failing to understand the complaint is about the hollow term being used to sound grandiose.
A street sweeper “delivers value” in the form of a clean street. A lunch lady at a school “delivers solutions” in the form of reducing hunger in children.
There’s nothing wrong with wanting to do something for others, the criticism is of the vague terminology. The marketing speak. I’ve said that so many times, I’d hope that’d been clear.
> While you are clearly in the former camp
You’re starting from wrong assumptions. No, I’m not “in the former camp”, I find the whole premise to be a false dichotomy to begin with. Reality is a spectrum, not a binary choice. It’s perfectly congruent to believe a great product for customers is the goal, and that the way to achieve it is through care and deliberate attention to the things you do.
> You’re failing to understand the complaint is about the hollow term being used to sound grandiose.
This isn’t a critique of language - it’s a category error. You’re confusing the mechanism with the purpose.
In your examples, a street sweeper or lunch lady (Google says this is an antiquated US term for canteen worker?) do indeed deliver value, clean streets and nourished students. That's the value they're paid to provide. Those are the outcomes we care about, and whether the sweeper uses a broom or Bucher Citycat is only of interest in that one allows the sweeper to provide more value at lower cost, eg more metres of clean road per dollar.
The same is true of the canteen worker, who may use Rationales and bains marie to serve more hot meals at lower cost than cooking each meal individually.
> You don’t “deliver solutions”, you write software (or have it written for you).
Saying you "write software", not deliver solutions actually indicates that you don't understand the profession you're in. It mistakes the process for the outcome. Writing code is one means among many for achieving an outcome, and if the same outcome could be achieved by the business without software, the software would be dropped instantly. Not because care doesn’t matter, but because the purpose was never the code itself.
> It’s perfectly congruent to believe a great product for customers is the goal, and that the way to achieve it is through care and deliberate attention to the things you do.
But according to you, care and deliberate attention (software as craft) are the only way. An absolutist position. But most software that matters is imperfect, build over time, touched by many hands, and full of compromises. Yet it still delivers enormous value. That’s evidence that outcomes, not purity of process, is what delivers value and defines success in the real world.
> Writing code is one means among many for achieving an outcome, and if the same outcome could be achieved by the business without software, the software would be dropped instantly. Not because care doesn’t matter, but because the purpose was never the code itself.
Early in my career I was called in a number of times to write software for some business process. Many times after talking to the users and understanding the process, I would recommend against any software. It wasn't needed, or the time could be spent in better ways (AI is likely changing that calculation though). IIRC, my title was even 'Solutions Provider' or some such. I love writing software, but it's always been a means to an end for me.
> But according to you, care and deliberate attention (software as craft) are the only way. An absolutist position.
No! That is not what I’m saying! How can you argue my position is an absolute when I just explicitly described it as a spectrum?!
However, I do believe you’re arguing in good faith, I just don’t think we’re on the same page. I wish we were, as while I think we might still disagree, I also believe we’d have an interesting conversation. Probably more so in person.
Unfortunately, I have to go get some work done so I’m unable to continue as of now. Still, instead of leaving you hanging, I wanted to thank you for the respectful conversation as well as your patience and I believe genuine effort in trying to understand my position.
Nonsense. Features are requested from me, I deliver them to the customer, the customer is happy and pays me. I deliver solutions and the customer deems them to be value for their business... What else am I supposed to call that?
I'm extremely diligent around vetting all code in my repo's. Everything is thoroughly tested and follows the same standards that were in my codebase before the invention of LLM's. I'm not "vibe coding". You're making assumptions because of your negative emotional reaction to LLM's.
Yes yes, so does a street sweeper. Someone pays them because the road is dirty, and they use a broom to deliver the solution of a cleaner street, which is of value to the user.
Do you see why that’s marketing speak? You’re using vague terms which can be applied to anything. It avoids commitment and makes whatever you do seem grandiose. That’s marketing.
A few years ago, every app developer and designer was a “story teller”.
You don’t “deliver solutions”, you write software (or have it written for you).
No, not at all. There are people who love coding for the sake of it, they are passionate about the technology and would be doing it whether it was their career or not. They do it for fun. We both write software , but I derive the pleasure from making money from the products, they derive pleasure from the writing itself. If I could no longer sell products and make money I wouldn’t do any coding. You don’t think there is any distinction between them and I?
>Yes yes, so does a street sweeper. Someone pays them because the road is dirty, and they use a broom to deliver the solution of a cleaner street, which is of value to the user.
Yes, it's exactly the same. Is your problem the fact that this gets you off the high horse?
It’s not marketing speak, but it’s rarely 100 percent one or the other.
> More marketing speak. If you are using LLMs to write your code, by definition your product isn’t “polished”.
This doesn’t make any sense. Polished to who? The end user? You can absolutely use AI to polish the user experience. Whether coding by hand or AI the most important aspect of polish is having someone who cares.
polished product, and LLM generated code should not be put in the same conversation.
You're simply wrong and it will become obvious in time.
I'll believe it when I see it. So far time has shown the opposite is true.
> ...and those who love delivering value/solutions. I am in the latter camp. The happy consumer and the polished product is what gives me satisfaction...
Can't the customer now just skip you and generate a product for himself via AI?
Serious? Have you used an LLM? Of course they couldn't... LLM's speed up my development velocity. Maybe 1.5x-2x? Hard to measure. You still need the knowledge to make smart decisions, enforce sensible/maintainable architecture & patterns, etc. How is a regular person going to review code to make sure it's correct/efficient/safe?
I just work here, man. What's all this 'love' stuff? :) I propose a third camp: skilled employee seeking compensation.
edit: to stay on the larger topic, I haven't been swayed much one way or the other. ~90% of the code I need existed a decade ago in the form of reusable modules. Anything new is closer to pseudo-code, an amplifier or sandbox isn't something I'm that interested in.
I propose a fourth, unskilled employee seeking compensation.
How could I forget the largest group?!
And yet, there's still room for people who love to code to do great work. Look at bun for instance https://bun.com/. It's a JavaScript runtime that dramatically improves on the performance of node.js to the point where it will likely completely deprecate it in the coming years. It does so many things right out of the box, but it's essentially just an incremental improvement in the development world.
I think AI-augmented development will lead to faster and vastly improved software over the years. This isn't just a space that's being disrupted on the maker/creator side of developing software. And from a makers/creators point of view, you wouldn't even need to keep up with the latest trends like performance, AI should just know which libraries are the best to use to develop your solutions.
They're not that binary.
I like using my software engineering skills to solve people's problems. I don't do coding for it's own sake - there's always a thing I'm trying to implement for someone.
As a professional, your job is to deliver value and solutions. It used to be that you could do this by writing code. AI changes this calculus because if the machine can write the code instead, the value you deliver by writing it yourself is greatly diminished.
I've also noticed a kind of grouping like this. I've described them as the "Builders" and the "Solvers". Where the former enjoys the construction aspect of the code more, and the latter enjoys the problem/puzzle-solving aspect of code more. I guess it's more of a scale than a binary, since everyone's got a bit of both, but I think I agree that AI is more fun for the builders.