AI code and software craft

(alexwennerberg.com)

Comments

skybrian 15 hours ago
Enterprise software tends to particularly bad because it's being sold to managers who won't use it themselves. Consumer software tends to be more user-friendly (or it won't sell), but popular software isn't always what you want.

When writing software for yourself, there is a bias towards implementing just the features you want and never mind the rest. Sometimes the result can be pretty sloppy, but it works.

However, code health is a choice. You just need to know what to ask for. A coding agent can be used as a power washer to tidy up a project. This won't result in great art, but like raking leaves or cleaning your steps or plowing a driveway, it can be satisfying.

Just as you wouldn't use a power washer to clean a painting, maybe there's some code that's too delicate to use a coding agent on? But for a project that has good tests and isn't that delicate, which I believe includes most web apps, nobody's going to want to pay for you to do it by hand anymore. It would be like paying someone to clear the snow in a parking lot with a shovel rather than hiring someone with a plow.

ontouchstart 55 minutes ago
I am in the middle of reading a fascinating book about the early days of computing: Turing’s Cathedral by George Dyson. It really opened my eyes to American engineering craft post WWW II.

We seem to take everything for granted now and forget what real engineering is like.

This review is 13 years old by itself:

https://www.theguardian.com/books/2012/mar/25/turings-cathed...

ako 3 hours ago
I think we should embrace AI to craft better software. You have a lot of control over the code generated by AI, so all your designs, patterns, best practices can be used in the generated code. This will make us better software craftsmen.

A nice example is guitar building: there's a whole bunch of luthiers that stick to traditional methods to build guitars, or even just limit themselves to japanese woodworking tools.

But that is not the only way to build great guitars. It can be done by excellent luthiers, building high quality quitars with state of the art tools. For example Ulrich Teuffel who uses all sorts of high tech like CAD systems and CDC machines to craft beautiful guitars: https://www.youtube.com/watch?v=GLZOxwmcFVo and https://www.youtube.com/watch?v=GLZOxwmcFVo

Unfortunately, craftsmanship does not come cheap, so most customers will turn to industrially created products. Same for software.

delbronski 6 hours ago
Most software engineers were not “crafting” before AI. They were writing sloppy code for the sake of profit, getting a pay check, and going home. Which is why AI also outputs the same crappy code.

Rumor has it there were a few elite crafters among the lot. Software wizards who pondered about systems and architecture as they had a $10 espresso macchiato.

jlipps 13 hours ago
I love the references to Jacques Ellul's ideas, which I think are interesting to reflect on in an AI age. It helps make clear that what is fundamentally at stake in much technological "progress" is an (often only tacitly acknowledged) sublimation of "efficiency" to the place of highest value.

What's fascinating is that this value elevation seems to have gone largely unchallenged, despite being in essence an arbitrary value choice. Other choices are possible. And, I hope, still are possible, despite what the bigcorps declare must be the case in order to maximize shareholder returns.

will__ness 14 hours ago
> But there are serious limits. [Your coding agent] will lie to you, they don't really understand things, and they often generate bad code.

I think that really high quality code can be created via coding agents. Not in one prompt, but instead an orchestration of planning, implementing, validating, and reviewing.

Its still engineering work. The code still matters. Its just a different tool to write the code.

I'd compare the difference between manually coding and operating a coding agent to the difference between a handsaw and a chainsaw - the end result is the same but the method is very different.

slotrans 15 hours ago
The AI code takeover will not free engineers up to do craftsmanship. It will annihilate the last vestiges of craftsmanship forever.
FarmerPotato 12 hours ago
+1 for the mention of Forth. I use it often. LLM answers are possible now, but they are like translated C. It’s very bad style.

The standard: Forth words should be a few lines of code with a straightforward stack effect. Top level of a program might be 5 words.

LLM will generate some subroutines and one big word of 20-50 lines of nested IF..THEN..ELSE and DO..WHILE just as if it writing C.

basilgohar 13 hours ago
I feel like one of the things that's not said enough, and which I think is conflating the effectiveness of AI in the eyes of actual software engineers, is that, for the most part, most code produced IS lousy. The craft of programming has been watered down so much in favor of results, and so much code is disposable or write-and-use once, that quality just became less relevant.

I remember when I first started out programming 20 years ago, there was time to craft good quality code. Then there were more and more pushes to get more code out faster, and no one really cared about the quality. Bugs became part of the cost of doing business. I think GenAI for code fits well in the more recent paradigm, and comparing it with hand-crafted code of yore is a bit disingenuous, as appealing as it may be, because most code hasn't been that good for a long time.

I am sad to admit it, but AI is just fitting in where poor coding practices have already existed, and flourishing in that local maxima.

sacha1bu 9 hours ago
This really nails the core issue: AI thrives in environments where software is treated as “good enough” optimization rather than craft. It’s not replacing great engineers so much as exposing how much of modern software has already become rote, metric-driven work. The Arts & Crafts parallel feels especially apt as mass-produced code gets cheaper, human judgment and taste become the real scarce resources.
mohsen1 1 hour ago
I don't get why the author assumes AI-assisted coding can never produce elegant software. I am learning new things from AI almost in every interaction.
Herring 15 hours ago
This argument is basically just the 1800s Luddite vs Industrialist argument recast for a new age. Group A thinks quality is about human agency, and that machines are being used to bypass the apprenticeship system and produce inferior goods. Group B thinks efficiency is the highest priority, and craft is just vanity. Of course as we know we went a third way, and human roles just shifted.

I think one promising shift direction is humans do NOT like to talk to bots, especially not for anything important. It's biological. We evolved to learn from and interact with other humans, preferably the same group over a long time, so we really get to understand/mirror/like/support each other.

iberator 13 hours ago
AI takes jobs faster than creating new ones.

That's the problem.

wormik 13 hours ago
Stop arguing about whether AI ruins craft. Fix the incentive structures so that increased productivity buys humans time, not disposability. Then see what kind of craft emerGe
baroudi 5 hours ago
> But there are serious limits. [Your coding agent] will lie to you, they don't really understand things, and they often generate bad code.

As for lies and bad code, it didn't appear with AI. Humans lied and produced bad code before AI.

How does the author empirically know AI does not understand? And if it does not understand right now, is a machine fundamentally unable to understand? Is understanding an exclusive human ability? Is it because machines lack a soul? It sounds quite dualistic (Descartes'view that mind and body and fundamentally different).

Don't get me know, I think right now, AI is less a good at understanding humans than other humans (or even dogs) in many contexts because it has no access to non verbal signals. But in the context of building software, it is good enough and I don't see why a machine should not be able to understand humans.

sigi64 6 hours ago
AI wrote better code than most of my colleagues.

Especially with my rules:

- Prefer simple, boring solution

- Before adding complexity to work around a constraint, ask if the constraint needs to exist.

- Remember: The best code is often the code you don't write.

kumarvvr 13 hours ago
On a side track, I wish to express my fears regarding AI

Unfortunately for the general populace, most technological improvements in information technology, for the past 5 decades, has lead to loss of political control and lessened their leverage for political change.

With AI, this change is going to be accelerated a 100 times.

With current AI slop, and more importantly, almost indistinguishable from reality, AI based content, the populace is going slowly learning to reject what they see and what they hear from mass media.

AI has muddied the pool so much, that every fish, us, cannot see the whole pool. What this will lead to, is for political figures and bad actors to, much more easily almost with no effort at all, create isolation among people.

No event will create a mass uprising, because no event can be believed by a common mass. It will be easy to generate an alternative reality using the same AI.

Now, the political class and the billionaire class, are free to act with impunity, because the last check on their power, the power of mass media to form public opinion, to inspire the masses to demand change or accountability, has eroded to the point of no return. (They have already captured the institutions of public power)

I fear for the future of humanity.

Edit : There are already troubling signs from the billionaire class regarding this. There is a narrative to "ensure guardrails" for AI, sort of giving the populace the idea that once that is done, AI is acceptable. This is like saying, "better have a sleeve on the knife, so that no one can cut with it, but use it as a prop in a movie"

They are creating this narrative that AI is inevitable.

They are fear mongering that AI is going to take jobs, which it will, but it also goads the capable ones to get on to the bandwagon and advance AI further.

pplonski86 7 hours ago
What if AI starts to have sense of craft? we just miss the verify and critique models, that will tell other models what looks good
jumploops 15 hours ago
> People have said that software engineering at large tech companies resembles "plumbing"

> AI code [..] may also free up a space for engineers seeking to restore a genuine sense of craft and creative expression

This resonates with me, as someone who joined the industry circa 2013, and discovered that most of the big tech jobs were essentially glorified plumbers.

In the 2000s, the web felt more fun, more unique, more unhinged. Websites were simple, and Flash was rampant, but it felt like the ratio of creators to consumers was higher than now.

With Claude Code/Codex, I've built a bunch of things that usually would die at a domain name purchase or init commit. Now I actually have the bandwidth to ship them!

This ease of dev also means we'll see an explosion in slopware, which we're already starting to see with App Store submissions up 60% over the last year[0].

My hope is that, with the increase of slop, we'll also see an increase in craft. Even if the proportion drops, the scale should make up for it.

We sit in prefab homes, cherishing the cathedrals of yesteryear, often forgetting that we've built skyscrapers the ancient architects could never dream of.

More software is good. Computers finally work the way we always expected them to!

[0]https://www.a16z.news/p/charts-of-the-week-the-almighty-cons...

kxbnb 14 hours ago
The framing of craft vs. slop misses something important: most production software quality problems aren't about aesthetics or elegance, they're about correctness under real-world conditions.

I've been using AI coding tools heavily for the past year. They're genuinely useful for the "plumbing" - glue code, boilerplate, test scaffolding. But where they consistently fail is reasoning about system-level concerns: authorization boundaries, failure modes, state consistency across services.

The article mentions AI works best on "well-defined prompts for already often-solved problems." This is accurate. The challenge is that in production, the hard problems are rarely well-defined - they emerge from the interaction between your code and reality: rate limits you didn't anticipate, edge cases in user behavior, security assumptions that don't hold.

Craft isn't about writing beautiful code. It's about having developed judgment for which corners you can't cut - something that comes from having been burned by the consequences.

rednafi 14 hours ago
It’s easy to forget that any artifact - painting, music, text, or software - that appeals to a large number of people is, by definition, an average on the spectrum of quality.

Popular music tends to be generic. Popular content is mostly brainrot these days. Popular software is often a bloated mess because most users’ lives don’t revolve around software. They use software to get something done and move on.

I never understood the appeal of “craft” in software. Early computer pioneers were extremely limited by the tech of their time, so the software they hacked together felt artsy and crafty. Modern software feels industrial because it is industrial - it’s built in software factories.

Industrial software engineers don’t get paid to do art. There are research groups that do moonshot experiments, and you can be part of that if it’s your thing. But lamenting the lack of craft in industrial software is kind of pointless. Imagine if we’d stopped at crafty, handmade auto engines and never mass-produced them at scale. We don’t lament “crafty engines” anymore. If you want that, go buy a supercar.

Point is: AI is just another tool in the toolbox. It’s like Bash, except calling it that won’t pull in billions of dollars in investment. So “visionaries” call it ghost in the machine, singularity, overlord, and whatnot. It produces mediocre work and saves time writing proletariat software that powers the world. Crafty code doesn’t pay the bills.

But I’m not saying we shouldn’t seek out fun in computing. We absolutely should. It’s just that criticizing AI for not being able to produce art is an old thing. The goalpost keeps shifting, and these tools keep crushing it.

I don’t use AI to produce craft, because I don’t really do craft in software - I have other hobbies for that. But I absolutely, proudly use it to generate mediocre code that touches millions of people’s lives in some way.