With AI, you are no longer a developer, you're a product manager, analyst, or architect. What's neat about this, from a business perspective, is that you can in effect cut out all your developers and have a far smaller development workforce consisting of only product managers, analysts, and architects whom you call "developers" and pay developer salaries to. So you save money twice: once on dev workforce downsizing, and again on the pay grade demotion.
I'm currently exploring domain-specific languages aimed at writing web applications. I've been particularly interested in, much like bash, data flowing through pipelines. I have spent quite a bit of time and I'm definitely not vibe coding but I've probably only writen 1-2% of the code in these projects.
It is so much work to build out a new language with a surrounding ecosystem of tooling. Not even five years ago this would have necessarily been a full time multi-year endeavor or at least required a team of researchers. Now I can tinker away in my off hours.
This is what I am exploring:
https://williamcotton.com/articles/the-evolution-of-a-dsl
Did I not craft the syntax and semantics of these languages?
You decided you wanted to focus on speccing out your language and outsource the implementation. That's fine if you want to do that. But let's be honest: you outsourced the bits you considered boring or tedious. Someone else may find that the interesting part, and the experience of outsourcing it rather than building it themselves to be hollow in comparison.
What about the phone in your hand, did you design that?
HN loves to believe they are the noble few - men and women of math and science, driven by nothing but the pure joy of their craft
But this whole AI thing has been super revealing. Almost everyone here is just the same old same old, only that now that the change is hitting close to home, you’re clutching your pearls and lamenting the days when devs were devs
The younger generation born into the AI world is going to leave you in the dust because they aren’t scared of it
My math teacher used to say that people felt this was about…calculators, imagine that
If that's the tradeoff a business wants to make, that's their call. But AI-assisted development really is just outsourcing with a bigger carbon footprint.
The cost of hallucinations though - you potentially have a stronger point there. It wouldn’t surprise me if that fails to sway some decision makers but it doesn’t give the average dev a bit more ground to work with.
I loaded the lowest level piece of software I wrote in the last 15 years - a memory spoofing aimbot poc exploiting architectural issues in x86 (things like memory breakpoints set on logical memory - not hw addresses - allowing to read memory without tripping kernel-level detection tools, ability to trigger PFs on pages where the POC was hiding to escape detection, low level gnarly stuff like this). I asked it to clean up the code base and propose why it would not work under current version of windows. It did that pretty well.
Lower level stuff does of course exist, but not a whole lot IMHO. I would not assume claude will struggle with kernel level stuff at all. If anything, this is better documented than the over-abstraced mainstream stuff.
I can now do more with AI tooling so I enjoy that more.
I know lots of you enjoy coding for its own sake, more power to you. But it's no surprise to me that many (most?) view it as a means to an end.
It's not so great for the one or two but fantastic for everybody else.
Like, get real!
I feel like I'm rapidly going insane. It wasn't that long ago when many people in this forum would boldly exclaim that their software development skills were their capital and take pride in their ability to build stuff. It also wasn't that long ago when the "ideas guys" were a meme here.
We're ceding almost all of our bargaining power because programming "was never valuable." And we're doing it with smiles from ear to ear.
More likely that step is just skipped and replaced with thoughts and prayers.
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.
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?
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.
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.
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?
That's what people tend to report, yes.
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.
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.
> 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.
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 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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
Yes, it's exactly the same. Is your problem the fact that this gets you off the high horse?
I thought you loved “delivering value/solutions” and that “the happy consumer and the polished product is what gives [you] satisfaction”. Thank you for admitting what you care about is the money. That was clear from the marketing speak.
The distinction is obvious and you’re clearly just expressing an emotional reaction.
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...
maybe "MBA news" would be better suited?
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.
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.
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.
Can't the customer now just skip you and generate a product for himself via AI?
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.