AI code and software craft

(alexwennerberg.com)

62 points | by alexwennerberg 7 hours ago ago

26 comments

  • skybrian 2 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.

  • will__ness an hour 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.

    • acedTrex 28 minutes ago

      > the end result is the same but the method is very different.

      I dont think anyone really cares at all about LLM code that is the exact same end result as the hand written version.

      It's just in reality the LLM version is almost never the same as the hand written version, it's orders of magnitude worse.

      • elzbardico 11 minutes ago

        But a lot of people don't think like this, and we must come to the unavoidable conclusion that the LLM code is better than what they are used to, be their own code, or from their colleagues.

      • nubg 21 minutes ago

        Speak for yourself.

        • acedTrex 11 minutes ago

          I mean yes, i am speaking for myself. I am drowning in mountains of LLM slop patches lol. I WISH people were using LLMs as "just another tool to generate code, akin to a vim vs emacs discussion."

  • slotrans an hour ago

    The AI code takeover will not free engineers up to do craftsmanship. It will annihilate the last vestiges of craftsmanship forever.

  • Herring 2 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.

    • lkey 14 minutes ago

      sighs pulling out this quote again:

      "Luddites were not opposed to the use of machines per se (many were skilled operators in the textile industry); they attacked manufacturers who were trying to >>circumvent standard labor practices<< of the time."

      Luckily, the brave government's troops, show trials and making '"machine breaking" (i.e. industrial sabotage) a capital crime"' solved the crisis of these awful, entitled workers' demands once and for all and across all time.

      I'm sure that any uppity workers in our present age can also be taught the appropriate lessons.

    • convolvatron 2 hours ago

      I dont think it's the same at all. when weaving was displaced, yes some people were pissed about losing their livelihood, but the quality of the cloth didn't diminish.

      when CNC came for machining, no one really bitched, because the computers were just removing the time consuming effort of moving screws by hand.

      when computers write code, or screenplays, the quality right now is objectively much worse. that might change, but claims that we're at the point where computers can meaningfully displace that work are pretty weak.

      sure that might change.

      • gbear605 an hour ago

        Cloth absolutely has gotten worse over the last two hundred years since industrialization. It's also orders of magnitude cheaper, making it worth it, and certainly new types of cloth are available that weren't before, but we're not better off in every possible way.

        • WarmWash 39 minutes ago

          >but we're not better off in every possible way

          I'd argue that we are, because cloth of higher quality than anything that has ever existed before is available today, it's just really expensive. But high quality cloth was also expensive back then.

          I think you are making the error of comparing cheap clothes of today with expensive clothes of the past, rather than cheap clothes with cheap clothes and expensive with expensive. People of the past might have had higher quality clothes on average, but its because those clothes were expensive despite being the cheapest available. Trust me, if Shein was around in 1780, everyone would be wearing that garbage.

      • odo1242 an hour ago

        The result being worse generally doesn't stop humans from being displaced. Clothes made today are notably worse than the handmade ones.

      • fwip an hour ago

        The available quality of cloth did, in fact, diminish.

        • Terr_ 8 minutes ago

          Hold up, why it changed matters to parent-poster's argument. Consider the difference:

          1. "The technology's capability was inferior to what humans were creating, therefore the quality of the output dropped."

          2. "The way a human was involved, there was a floor to quality you could offer and still make a profit. Without the human labor, a lower-quality product became possible to offer at a profitable price."

          In other words, one is a difference in technology, the other is a difference in economics.

    • pydry an hour ago

      It has nothing to do with luddites.

      Software quality about speed of delivery and lack of bugs.

      If you're fine with software which gets a little bit harder to work on every time you make a change and which might blow up in unexpected ways, AI is totally fine.

      Ive yet to meet many AI champions who are explicit about their desire to make that trade off though. Even the ones who downplay software quality arent super happy about the bugs.

      • trevwilson an hour ago

        > If you're fine with software which gets a little bit harder to work on every time you make a change and which might blow up in unexpected ways, AI is totally fine.

        While the speed and scale at which these happen is definitely important (and I agree that AI code can pose a problem on that front), this applies to every human-written piece of software I've ever worked on too.

    • bitwize 2 hours ago

      Maybe kids will end up preferring to talk to bots, much like the generations after my own actually preferred digital compression artifacts in their music.

      • Herring an hour ago

        Can it get me a job if I get laid off (networking)? Can I crash on its couch for a while? It might displace tv/netflix, which yes is a huge market, but I don't think much more than that.

  • kxbnb 44 minutes 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.

    • j33dd 43 minutes ago

      Most people using LLMs dont have this craft...... which begs the question. Should they be using LLMs in the first place? Nope. But given that its rammed down their throat by folks internally and externally, they will.

  • jumploops 2 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...

    • danpalmer an hour ago

      > joined the industry circa 2013, and discovered that most of the big tech jobs were essentially glorified plumbers

      Most tech jobs are glorified plumbers. I've worked in big tech and in small startups, and most of the code everywhere is unglamorous, boring, just needs to be written.

      Satisfaction with the job also depends on what you want out of it. I know people who love building big data pipelines, and people who love building fancy UIs. Those two groups would find the other's job incredibly tedious.

      • mattgreenrocks an hour ago

        The right job for a person depends on whether they can rise above the specific flavor of pain that the job dishes out. BigTech jobs strike me as having an inextricable political element to them: so you enjoy jockeying for titles and navigating constant reorgs?

        The pay is nice but I find myself…remarkably unenvious as I get older.

      • strken 39 minutes ago

        Plumbing has certification and industry best practices, and its leaks generally affect a few blocks at most rather than spraying across the entire internet.

  • rednafi an hour 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.