Join the discussion
Write your take first — we'll ask for email only when you're ready to publish.
- Hacker News
- Thank you for sharing this. This is a concern many of us had — I sure did — but I always felt like an unfortunate bystander with little control over the situation. This posts shows how we can at least start talking about this in a constructive manner.by dar5hak
- But can they compete with my shade grown software? It does result in a 40% markup, but there's no putting a price on being raised in a loving environment, is there.by dwattttt
- it's organic right?by djmips
- I carefully bottle feed every function by hand, and let it out to pasture at least twice a day.by danielbln
- I would call myself an artisanal programmer. Software Engineers are some of the least likable people I've ever met and being associated with them is cringe. Questions like, "Why are you using Notepad++ instead of using VSCode with 100+ plugins?" in a very condescending manner gets old very quickly. They need the title of Engineer because deep down they are very insecure.
On the plus side, they're usually promoted very quickly to management and never code again.
by kittikitti - Sounds similar to Rust programmersby dosisking
- I think you might be interested in reading the post Are We Really Engineers (https://www.hillelwayne.com/post/are-we-really-engineers/), which in part covers the point about whether "engineer" is closer to a profession designator or a respectable title. It really surprised me when I read it first time!
- > I would call myself an artisanal programmer. Software Engineers are (...) very condescending (...) They need the title of Engineer because deep down they are very insecure.
Jokes really do write themselves sometimes...
by perching_aix - Exactly, when the real question is "why are you using notepad++ instead of emacs, you philistine?"by throwy98888
- I find more pleasure and satisfaction by programming at a higher altitude, at the system level. This zooming out gives you a better feel for building an effective scaffold and you can iterate on ideas faster.by andsoitis
- You mean by vibecoding? Don't call that programming, for God's sakeby g-b-r
- > Many gamers who defend artists and hate AI with a passion turn 180 once you mention software: suddenly LLM code is acceptable, and obviously everyone uses LLMs anyway, and AI disclaimers for code are unnecessary.
There is a big difference from a players point of view. Games are much more than code, and the code is a way to represent game mechanics instead of a product by itself. AI graphics and music are instantly recognizable as bad quality and uncreative but vibe coding only shows when the game is slow or has a lot of bugs. And if that happens players dont care if its AI or not, just that its broken.
Games dont really need to care about code quality as much as other projects. They dont have to constantly adapt to competition and developers never really need to update them, unless there are game breaking bugs or a critical security issue. That means they change a lot less than your average code.
Balatro is coded in a way that sometimes looks like a beginners first Lua script, even after the publisher got outside help to polish it before full release. But it still works and sold millions of copies. Games are built on design intuition and user testing, not technical quality.
For the ethical side, there is a perception that programmers are actively using AI for coding and would do it even if the publisher wasnt making them, but artists are getting fully replaced against their will. And there is clearly some truth to it because we dont see coders in game studios speaking out against it.
by tancop - The vocabulary point matters: calling careful work artisanal turns reliability into a personal taste when it is often the core engineering requirement.by Prydown
- Isn't there a difference between making things that code does and the code itself? Ive seen truly beautiful software with terrible to follow but effective code and I've seen beautiful code that while technically amazing didn't do anything of substance. Software is like woodworking, it includes all levels of care and product outcomes.by spawrks
- I agree with the title, but perhaps for different reasons.
Somewhere (maybe the 1960s?) the idea crept in that programming is some kind of production process, and the "engineering" happens upstream. Elsewhere, the line between engineering design and manufacturing is the transition of a set of documents to those with the skills to turn what those documents specify into real products in a reliable, repeatable manner. That repeatability is one of the hallmarks of manufacturing. For software, all the processes reliable enough to qualify are downstream of typing `make` and striking return, ending in the binaries and the computational processes that those paying the bills desire. It's our build and deployment tools that do the construction, which means that our source code is the final, detailed design.
by kmstout - I prefer the term "classically trained programmer." :-)by tibbar
- A good chunk of engineering is putting together reliable systems from unreliable parts.
You build in safeguards, redundancy, defense in depth, recovery systems. You build models of the system and prove characteristics about it.
Software is fundamentally automation. LLMs enable automating the construction of software itself. They're much faster and cheaper than people, and they're more unreliable. (People are unreliable too!)
The immediate challenge of these times is figuring out how to reliably construct reliable software in the large, over the longer term, reliably. This is an engineering challenge, and the only way we'll get to the other side of it is by trying to do it. Things will be rough, there will be a Cambrian explosion of techniques, most approaches will fail, and many more won't survive as models improve on quality and capability. But we'll figure it out.
Making things by hand, as in the time before agentic coding, can be engineering too, but it is not the core challenge of these times, and it will soon be a hobby, or possibly a kind of luxury good. You will no more want hand-written software than you'll want a hand-made car. It will not have the precision, performance or reliability of machine-made software.
by barrkel - A whole bunch of assumptions and beliefs passed off for truths.
LLMs have very little to do with engineering, unless you let a pair of dice decide how you build a house.
Cars are not built by AIs, they're built by extremely precise robots, over precise instructions.
I'd VERY much want a hand-made car over an LLM-made car, thank you.
Because I do want the precision, reliability and performance that an LLM-made car won't ever be able to guarantee.
by g-b-r - Strong agree. I think the fundamental challenge of working in fields that increasingly become AI-enabled will be the ability to understand and direct large or intricate systems without prior knowledge/the advantage of having built the model as implemented. That’s already how it works in complex domains or large businesses.
It does require a different kind of ego/abilities than before. My (negative) framing of the whiplash effect is that it’s a reckoning of “process fetishism”/a bad kind of careerism in the tech hiring market (because for the labor market to work, candidates need to be evaluable and sortable by businesses, and many people build an identity/optimize for legibility around “best practices” or very particular “technologies” which might get them a job).
Ultimately, you need to know and learn/be responsible for stuff, and be able to help people with your labor, not be “a type of person” that isn’t effective at the task of helping. But at the same time knowing things and being able to take accountability/help people remains critical, especially because that’s what people will want to pay for even as “time spent typing it in” decreases.
Personally, I think it will be a good thing because software and “tech” will become a more strongly domain-driven/enabling medium for real-world or specialized things. IE it is the end to “software for its own sake” or “willingness to type it in and play with Jira/jenkins/frameworks” and the beginning of something that is more applicable or knowledge-building rather than “being the X for Y at Z”. Harder but more fun :)
by weitendorf - Engineering is about creating something that serves a purpose, while operating within a set of constraints. Part of that is realizing that "100% correct/reliable in all circumstances" is an unrealistic goal, since implementation time and cost is one of those constraints.
A good engineer will acknowledge this tradeoff between robustness and cost and behave accordingly. For example, if you're working on safety critical or very foundational systems like OSes, medical tech, etc you should bias very heavily in favor of robustness. If you're not, this can easily be an act of overengineering. The engineer's job is to find the right spot along the cost-correctness curve for the thing they are building.
This has always been true, and LLMs just change certain parts of the equation. For example, code writing is far less of a bottleneck than before, so "we can just try with a throwaway impl and see if this works" is suddenly economically viable. It also turns out that many things, in practice, don't need to be as correct as some of us may have believed.
We can still enjoy making quality things, but doing so is often an act of artisanship rather than engineering.
by jlamberts - > Engineering is about creating something that serves a purpose, while operating within a set of constraints.
A builder fits that description. Even a cook fits that description.
Engineering is something else. It's hard to describe what it is, probably why it has its own word. Dictionaries probably offer a definition.
> A good engineer will acknowledge this tradeoff between robustness and cost and behave accordingly.
An engineer will never intentionally produce something shoddy for cost reasons. They will simply refuse to do it. What you are getting at it some tasks don't require an engineer at all. You want to build a bridge to span a kilometer of water? You need an engineer. You need to occasionally cross a ditch? Anyone could lay plank across. No engineer required. The author makes this point too, with software craftsmen.
- > LLMs just change certain parts of the equation. For example, code writing is far less of a bottleneck than before, so "we can just try with a throwaway impl and see if this works" is suddenly economically viable.
The economic costs of LLM use have been abstracted away, but they're still very much there. The ecological cost of building and running data centres will be a pretty heavy economic cost somewhere in the future. It's not obvious, but it still exists.
(I'm not dumping on LLMs — otherwise I wouldn't even be here. I'm not a glutton for punishment. I know well that HN users excited about LLM use now vocally outweigh, and are pretty intolerant of people who are more on the cautious/negative end of the spectrum. I don't want that trouble in my life).
by MrVandemar - Weirdly, I thought the terms would be reversed… I think of a craftsman as someone who values quality over quantity, and makes everything beautiful and long lasting, while an engineer is more about productivity and tolerances and efficiency. A craftsman makes better quality but doesn’t scale the way an engineer and the factory process does, although mass produced goods sacrifice quality for quantity.by cortesoft
- In food contexts when I see "artisinal" I usually just think of rich white people buying the same stuff in nicer packaging and typography for twice the price.
The actual artisans don't need to advertise themselves as artisans, they just sell shit.
by qurren - Agreed. In my view, using AI to write code is neither engineering nor craftsmanship, but an abrogation of the responsibility to deliver a quality product. It isn’t engineering, it’s management, and these days (given the quantity of code agents spew out) it’s management without responsible oversight. Seriously, I’m distressed at how the industry is drinking the poison kool-aid.by wduquette
- id consider that a craftsman tends to build without constraints. an enginner meets the constraints with a defined safety factor.
an engineer uses tools that represent the current state of the science, while a craftsman uses tools passed down as archaic art that require meticulous skill to use rather than repeatable math
by 8note - Software is ephemeral.
Very little of it lasts for long. And if it does, it's legacy banking or some ossified terrible thing people are afraid to touch - not something revered.
Every piece of software today will be rewritten. By 2100 much of it will be dead and gone. Like punch cards that have rotted away.
by echelon - It's interesting how the words can be ambiguous like that. If I think of the distinction in the context of e.g. clothes, there's likely more engineering in fast fashion and more crafting in bespoke clothing. With food, more engineering in the food items you'd find at a gas station and more crafting at a restaurant.
>> “artisanal” coders who value the experience of coding over the final product
I don't see "artisanal" as that. It may be more that they value the details rather than the experience of coding. They value the details of the final product. Details that most people will not care about. The details that are present in bespoke clothing but missing in fast fashion, the details that are present in a good restaurant's food but missing from a gas station food item.
by jolmg