Stop Slopware

1 day ago (stopslopware.net)

https://ficd.sh/blog/your-project-sucks/

It bothers me that so many programmers I know, here and in real life, seem to never actually have cared about the craft of software development? Just about solving problems.

I like problem solving too. But I also like theory and craft, and in my naïveté I assumed most of us were like me. LLMs divorced craft-programming from tool-programming and now it seems like there were never any craft-programmers at all.

It feels like the group I was part of was just a mirage, a historical accident. Maybe craft-painters felt the same way about the camera.

  • It's a false dichotomy. You can do both, depending on the project. Or even different areas in the same software. There are many things that just need writing and there's really no fancy craft in transcribing that new business rule, regardless how much you care - the difference is just who pushes the buttons for the same result.

    This reminds me of the Google/Oracle Java case where one of the example "copied code" fragments was some trivial code with null guards. Anyone could write this and end up with the same code. Human/LLM/whatever doesn't matter. That fragment just needed to exist.

    • Hear hear! I don't play video games for the same reasons, nor listen to music for the same reasons every time, and same with creating software.

      Most of the times, I write software not to write software, but to solve a problem somewhere, often times not related to software itself. Other times I feel like the UX of some dev tool is bad, and if I just quickly fix that, I can solve my problem faster, so down the rabbit hole we go, which is a different type of experience.

      Other times I'm focused on figuring out an elegant design/architecture for something that isn't problem solving, but more "neat piece of software", either a library or some other type that needs some sort of interface, be it library API or actual UI. Then I'll go into "craftmanship" mode and then most of the work actually happens away from the computer, mostly with pen and paper or whiteboards.

      I still think the latter is needed for improving the former, and high-quality and easy to maintain code is more important than ever, and if you only do the former, you'll get stuck at a ceiling while only doing the latter, you'll also get stuck if there isn't an actual need (at some level, "fun" can be a need) for it.

  • The craft is alive and well in embedded spaces.

    When I was growing up as a programmer I observed JavaScript and swore I would never, ever touch webdev. As I got older that list kept growing to include mobile, then Apple, then desktop in general.

    I like my little world of C where everything must be crafted with care or it just plain doesn't work.

    And it's not that there isn't any embedded slopware, but the constraints are so much tighter that you can't really get away with the same level of bad code on 1KB ram and 4KB flash that you can on a 32 core desktop CPU with practically infinite resources.

    • > world of C where everything must be crafted with care or it just plain doesn't work.

      I hope you track the progress so you're not surprised one day. The research side is way past embedded C and VHDL was of interest a year ago https://dl.acm.org/doi/10.1145/3670474.3685966 In embedded code, recent LLMs can do just fine with popular architectures. It's down to the spec and test harness whether embedded C works or not. The moat is not that big.

      3 replies →

  • Every now and then someone posts the "X programmers (implied good) hate AI, Y programmers (implied bad) hate AI!" and every time people come out of the woodwork to point out that, no, X programmers can also use AI to take out things they can delegate and focus on stuff that's cool. Case in point, Steve Klabnik, a programmer who nobody can say doesn't care about the craft, is working on a new language primarily with AI: https://rue-lang.dev/

    • It can be, yeah. I use it sometimes to shim libraries or write one-off scripts. But it's made me disgustingly introspective. Why do I do anything? Where do I draw my lines?

      An example. I've been writing a Lisp, and I'm using GNU Readline for text input. Later I found out that Readline can't be built for WebAssembly, and I decided to have Claude write a podunk replacement for it. I now have a bit of code in my Git, attached to my name, that I didn't write

      What did I lose by doing that? My goal wasn't "to write a Readline", that's why I was using it in the first place. But my goal also wasn't "to have a working Lisp interpreter" or even like "to know how a Lisp interpreter works". It was a desire to Know More. Surely I'd have learned something useful (in some form) by doing all the minutiae myself. Or would I have learned more by doing none of it and printing out the SBCL source to read over coffee?

      Sorry, I ended up rambling. I don't have any answers. I think I'm just butthurt by the "X, Y" sort of comments you mentioned and the solution is (as always) to touch grass

      1 reply →

  • > It bothers me that so many programmers I know, here and in real life, seem to never actually have cared about the craft of software development? Just about solving problems.

    Why?

    Intellectual curiosity is a good thing. When I first went to university, I thought I was going to be a physicist. It turns out my brain was really well wired for programming, being logical, rigorous, particular about detail, I like predictability, not a high risk taker without fully understanding and accepting the risks, etc.

    But when I first started off as a programmer, I wrote physics simulations for fun (not work). I'd write little games, I wrote neural nets and fuzzy logic (gives me a chuckle), back in the 90s when the field was new. All of this was "my thing", and I barely cared about the code I wrote to achieve this. I absolutely loved it, because coding was a tool to explore my intellectual curiousity.

    I could say the exact opposite, that I feel a bit sad that people care more about the characters they type on a screen than the concepts they explore.

    As I morphed into a professional software engineer, I grew to understand the importance of high quality code and engineering (I mean architecture decisions). I have had a long, successful career by refining my craft. I care about the quality I produce for my future self and others, and the success of the product as a result of this quality.

    But at the heart, I am still just an intellectually curious person, and one day I may stop working professionally and at that point, I think I'll love using AI to write code and help me explore concepts. I very much look forward to it in fact.

  • The one engineer in my life who cared about the craft of software development also refused to have a color profile pic and also did his zooms in black and white and thought Ruby was the only good programming language.

  • This is a classical, charming take on software developers, but we don't judge most professions that way.

    “It bothers me that so many cashiers don't care about the craft of service and payment point connection.”

    “It bothers me that so many butchers don't care about the craft of choosing meat cuts and selling meat tailored to the customer.”

    We expect of developers craft, passion, after-work commitment, life-long learning, and so on, and so on. Many other professions are free of or lighter on such expectations.

    I agree that it's alienating to see sloppy, automated code crop up simply because people want to get paid. Code used to be this cool domain… But I'm not shocked, since our society evolved towards commoditising absolutely everything.

    Even thoughtful messages to loved ones are now available through LLM-hallucinated apps. We're done here, pack up your expectation of humanity staying, ahm, human? Disheartening.

  • I used to be intrigued by _software craftsmanship_, but I mainly saw people using it to practice heavy gatekeeping. Be it on the job, in code reviews, in job interviews...

    Furthermore, given how they behave in a cult-like way, it feels like they are straight-up delusional.

    People working as consultants for big retail chains, talking all day long about "the craft". Nobody cares. They sell trash. They don't put marble in their store. They don't want fancy software. Furthermore, if, by trying to force "the craft" to their peers, all they do is making the life of others miserable... Just stop. Please.

    Now my approach is as follow:

    if stakeholders are only interested in two things (how-much it cost, when it's ready), which is 99% of the case at $JOB, then make something that does the job and that won't make you hate yourself if you have to maintain it in a year

    if I'm the stakeholder, like creating internal tooling that nobody asked for but that will solve issues, then yes, I do things as good as I want them to be

    same for working on FOSS on my personal time

    • The one issue that stands out is that, by optimising for cost and time now, you might build unmaintainable messes for later. Therefore, later the cost and time goes up.

      EDIT: child commenter is right, my bad.

      2 replies →

  • I quit my big-tech job 4 years ago and it feels like that was just in time. I don't think I would enjoy the current way. I still program a lot, but as a hobby, and still thoroughly enjoy the craft. I sometimes ask chatgpt for a function name, but mostly stay away from ai. I do realize that I'm less and less employable as a software engineer though.

  • The customers these days are willing to pay for programs full of bugs that require enormous amounts of resources, so the craft no longer generates profits.

  • Personally I think of custom houses vs tract homes as an analogy.

    People won't care that much if their daily life software is developed by artisan developers, offshore coders or ai. They will just need to get things done and won't be able to tell who wrote the code.

    That said, I still think there will be a spec, and that spec will mostly be written by humans.

  • The craft has, unfortunately, died by a a bunch of tech companies who promised you the craft, but in really were all about making money ASAP, disregarding the craft.

    Nowadays, the craft can be practiced at your home, by yourself.

  • There’s room for both types of people in any trade. Some photographers obsess over the equipment, some only care about the photos. Carpenters with tools. Musicians with instruments & gear. Every craft has people who care about the how and those who focus on the product.

    I’ve always enjoyed the craft of software engineering, though even I admit the culture around it can be a bit overly contemplative .

    Nevertheless, there is room for both personalities. Just hang out with likeminded people and ignore the rest.

    • Caring about craft in programming is more like a photographer caring about light and composition and creativity and taste than a photographer caring about equipment.

      2 replies →

    • > Just hang out with likeminded people and ignore the rest.

      Or find ways to integrate with the rest, challenging one another to facilitate growth.

      1 reply →

  • I need to say as someone who also really really cares about the craft. About doing things right. LLMs have been a massive boon to me, because they're the only entity in this world that seems willing to work with me to get things right.

    If something is working but it is ugly, sketchy, or I feel there may be a more apt abstraction or generalization of the problem, every other human being on the planet has persistently turned that situation into an exhausting argument. If the code works, it works, right? And all this shit I talk about is pointless because it works. And I have to fruitlessly construct an argument that would appeal to someone who cares nothing other than a complete ticket.

    LLMs are at least not needlessly combative and incurious as to think that every approach but the first one we try is a pointless waste of time.

  • I've had a two hour long discussion with a super llm about a somewhat complex event loop processing task. It could not manage. I even restarted the session a couple of times. Then I did it manually and showed it a working version using a simple state machine. "That's brilliant!" (no, it wasn't brilliant)

    I am really worried for the next generation of programmers fully dependent on llms.

  • I like programming as a craft, but the kinds of coding I do for fun and the kinds of coding I do for profit look very, very different. So, for my work programming I use AI a lot more than I do in my own time.

    After all, my work (for the moment) is just about pushing features to keep the PMs happy ¯\_(ツ)_/¯

  • After a certain point, I think "craft" becomes a meaningless and self-flattering scapegoat, similar to how people use "taste" or "courage" as an excuse to make boneheaded decisions. Most software customers aren't buying software because it's tasteful or impressively crafted, but because it fills a gap in their workflow. People who obsess over polish often end up missing the forest for the trees.

    Plus, code-based meritocracy flat-out doesn't exist outside the FOSS circle. Many of the people you know are clocking-in at a job using a tech stack from 2004, they aren't paid to recognize good craftsmanship. They show up, close some tickets, play Xbox during on-call and collect their paycheck on Friday.

    The people who care might be self-selecting for their own failure. It's hard to make money in tech if your passion for craft is your strongest attribute.

> if you’re doing this for your own learning: you will learn better without AI.

This is not the distinction I would want to tell newcomers. AI is extremely good for finding out what the most common practices are for all kinds of situations. That's a powerful learning tool. Besides, learning how to use a tool well (one that we can expect professionals to use) is part of learning.

Now most common practices and best practices are two different things. They are often the same, but not always. That's the major caveat for many fields, but if you can keep it in mind, you're going to do OK.

  • It is a great learning tool for people who are willing to learn and put in the time and effort. Ask good questions, double check everything, read documentation and make sure they understand everything before they move on. It's a tremendous tool if used correctly. People who just hit tab or past everything Claude generates will get worse. The benefits of "the old way" is that even the people who didn't want to put in the effort where making some improvement if only by friction and time spent.

  • It’s all in how you use it. If you want to learn you can just tell it to walk you through the code or write a tutorial with examples and exercises or give you programming problems to solve or use the socratic method or recommend the best human written tutorials and books or review your code and suggest more idiomatic techniques or help you convert a program from one language or paradigm to another and a million other ways.

    I like the AI written tutorial method, both Opus 4.5 and Gemini 3 are good at this. You just have to put the effort in to copytype, make changes, ask questions and put what you’ve learnt into practice. AI code review is also great for discovering alternatives you don’t know about.

  • This is like telling people to learn how to draw by only looking at the masters' paintings in person instead of tracing and imitating from possibly stolen but otherwise cheap books at home.

    I would say to at least just read what the AI does and ask it questions if you don't understand what it did. You can interactively learn software development from AI in a way that you cannot from a human simply because it won't run out of patience even if it will lie to you.

    The results depend mostly on how you use it.

  • It's also extremely good at describing what code is doing, architecture, extrapolating why something is done a certain way etc. Invaluable for me for learning how unfamiliar code works in unfamiliar languages

The blog post is actually much more rational than some of the comments here. There's a fine balance what I call fetishization of tools and just knowing your craft well. Sometimes, we want to use an abstraction even though simpler approach may be better because we are in hurry, want to learn new things or just dont care particularly.

Whose to judge if it works and ships on time? Well, the fool later down the road who has to maintain it probably. But I've never believed in gate-keeping or preaching without pragmatism - I rather put my energy in teaching what little i can and hope that joy of seeing things improve for better will motivate them towards learning. If not, well it's waste of time either way.

Why would any actual software engineer be against slopware?

When it inevitably all comes crashing down because there was no actual software architecture or understanding of the code, someone will have to come in to make the actual product.

Hopefully by then we will have realistic expectations for the LLM, have skilled up, and we as a community treat them as just another feature in the IDE.

  • Personally, I'd rather make something good instead of cleaning up a mess.

    But beyond that, I'm really not looking forward to trying to discover new good libraries, tools, and such in 5 years time. The signal to noise is surely dropping.

  • > someone will have to come in to make the actual product.

    My experience has been more that they expect you to fix the broken mess, not rebuild it properly.

  • > Why would any actual software engineer be against slopware? When it inevitably all comes crashing down [...] someone will have to come in to make the actual product.

    Why would a window maker be against breaking windows?

  • because a lot of us care about the software running out there being good quality, given how much of the world depends on it. i would very much rather not see it all come crashing down.

    • I think the problem is that, as a group, people who care about software quality/craft don't actually produce higher quality software. You'll get good quality and garbage software out of the craftsman and pragmatist groups at about equal rates. And folks in the craftsman group tend to have more and stronger opinions which isn't a good or bad thing except that having too many of them on a team can lead to conflict.

  • This just reads as copium to me. "Those hacks vomiting out slop.. pah, when they call me, the artisan, in to clean up their mess in a way God intended, then they'll see!"

    More realistic: AI assisted tooling will continue to improve as it has, the average code quality will rise as conventions and workflows improve and those who wait to be called in to clean up slop or whatever will wait forever, pushed by the wayside by those who can deliver great quality with the help of these new tools.

    • > will wait forever, pushed by the wayside by those who can deliver great quality with the help of these new tools.

      That sounded a lot like the "have fun staying poor" argument from the peak cryptocurrency days.

      2 replies →

If i had to give advice to young programmers, it would be this: be comfortable with set theory and notation. It’s interesting that once you collect use cases, sketch the objects, and express everything in a set-theoretical fashion, the programs almost write themselves. You can even feed this set-theoretic notation directly to an LLM and get code in return. It’s a perfectly honest way to incorporate LLMs into your workflow.

> keep the commons clean [from the second link]

A glance at the r/python will show that almost every week there is a new pypi package generated by ai, with dubious utility.

I did a quick research using bigquery-public-data.pypi.distribution_metadata and out of 844719 package, 126527 have only 1 release, almost 15%.

While is not unfathomable that a chunk of those really only needed one release and/or were manually written, the number is too high. And pypi is struggling for resources.

I wonder how much crap there is on github and I think this is an even larger issue, with the new versions of LLMs being trained on crap generated by older versions.

  • Storage is relatively cheap. Packages with only one release and little usage in the wild will be a rounding error in cost. A few years ago, Pypi required an over million dollars equivalent in CDN traffic per month. Storing a million of small dead packages is not worth the concern.

    • While my research was very shallow, the issue is with the practice. And I didn't look at how large those packages are.

      It might not be a storage problem right now, but the practice of publishing crap is dangerous, because it can be easily abused. I think it is very easy to publish via pypi a lot of very heavy packages.

  • Same on r/rust. Post after post with a new project that does something groundbreaking.

    Until you look at the source code and notice it's all held together by Duct tape.

I'm not sure if I am just losing my mind at this point, but all this slop everywhere is starting to be funny.

I honest to god am in teams chats at work with high up the food chain architects and leaders (and plain old devs) and people are pasting chatgpt responses either as evidence backing up their claims of how something should be done, or as an actual response to another person as if they typed it themselves.

I have people sending me documents they "put together" that are clearly chatgpt generated, tables and emojis included.

Is this progress?

I don't think we should shame beginners for using AI. Instead, we should encourage them to try working manually and/or learn fundamentals.

Also, public communities have been overrun with low-quality beginner posts for longer than AI. Moreover, you can't convince all beginners to stop using AI, because some are malicious and/or socially inept. Moreso than shame or encouragement, we need a filter for low-quality projects (perhaps a combination of AI flagging and manual review). That would benefit both the beginners and the people who shame them because they're bothered.

> if you’re doing this for your own learning: you will learn better without AI.

I'm certain that's not true. AI is the single biggest gift we could possible give to people who are learning to program - it's shaved that learning curve down to a point where you don't need to carve out six months of your life just to get to a point where you can build something small and useful that works.

AI only hurts learning if you let it. You can still use AI and learn effectively if you are thoughtful about the way you apply it.

100% rejecting AI as a learner programmer may feel like the right thing to do, but at this point it's similar to saying "I'm going to learn to program without ever Googling for anything at all".

(I do not yet know how to teach people to learn effectively with AI though. I think that's a very important missing piece of this whole puzzle.)

I'm a BIG fan of these three points though:

  rewrite the parts you understand
  learn the parts you don’t
  make it so you can reason about every detail

If you are learning to program you should have a very low tolerance for pieces that you don't understand, especially since we now have a free 24/7 weird robot TA that we can ask questions of.

  • I think it's a pretty small generosity to implicitly extend what the author is saying to "you will learn better without generating your code". I don't know if that's what they meant, but AI is certainly a good tool for learning how things work and seeing examples (if you don't blindly trust everything it says and use other sources too).

    • That's fair. I also just noticed that the sentence before the bit I quoted is important:

      > AI overuse hurts you:

      > - if you’re doing this for your own learning: you will learn better without AI.

      So they're calling out "AI overuse", and I agree with that - that's where the skill comes in of deciding how to use AI to help your learning in a way that doesn't damage that learning process.

  • I think the parallel is photobashing. I've seen art teachers debating how early a student should start photobashing. Everyone knows it's a widely adopted technique in the industry, but some consider it harmful for beginners.

    Needlessly to say there is no consensus. I err on the side of photobashing personally.

  • It cannot be understated how much of a boon AI-assisted programming has been for getting stuff up and running. Once you get past the initial hurdle of setting up an environment along with any boilerplate, you can actually start running code and iterating in order to figure out how something works.

    Cognitive bandwidth is limited, and if you need to fully understand and get through 10 different errors before anything works, that's a massive barrier to entry. If you're going to be using those tools professionally then eventually you'll want to learn more about how they work, but frontloading a bunch of adjacent tooling knowledge is the quickest way to kill someone's interest.

    The standard choice isn't usually between a high-quality project and slopware, it's between slopware or nothing at all.

  • Rejecting AI as a learning tool looks to me like a very good policy in an academic setting.

    And the completely wrong decision in a hobby setting.

  • AI only hurts learning if you let it. You can still use AI and learn effectively if you are thoughtful about the way you apply it.

    I think that's very important.

    Never mind six months; with AI, "you" can "build" something small and useful that works in six minutes. But "you" almost certainly didn't learn anything, and I think it's quite questionable if "you" "built" something.

    I have found AI to be a great tool for learning, but I see it -- me, personally -- as a very slippery slope into not learning at all. It is so easy, so trivial, to produce a (seemingly accurate) answer to just about any question whatsoever, no matter how mundane or obscure, that I can really barely engage my own thinking at all.

    On one hand, with the goal of obtaining an answer to a question quickly, it's awesome.

    On the other hand, I feel like I have learned almost nothing at all. I got precisely, pinpointed down, the exact answer to the question I asked. Going through more traditional means of learning -- looking things up in books, searching web sites, reading tutorials, etc. -- I end up with my answer, but I also end up with more context, and a deeper+broader understanding of the overall problem space.

    Can I get that with AI? You bet. And probably even better, in some respects. But I have to deliberately choose to. It's way too easy to just grab the exact answer I wanted and be on my way.

    I feel like that is both good and bad. I don't want to be too dismissive of the good, but I also feel like it would be unwise to ignore the bad.

    Whoa hey though, isn't this just exactly like books? Didn't, like, Plato and all them Greek cats centuries ago say that writing things down would ruin our brains, and what I'm claiming here is 100% the same thing? I don't think so. I see it as a matter of scale. It's a similar effect -- you probably do lose something (whether if it's valuable or not is debatable) when you choose to rely on written words rather than memorize. But it's tiny. With our modern AI tools, there is potential to lose out on much more. You can -- you don't have to, but you can -- do way more coasting, mentally. You can pretty much coast nonstop now.

    • > Never mind six months; with AI, "you" can "build" something small and useful that works in six minutes. But "you" almost certainly didn't learn anything, and I think it's quite questionable if "you" "built" something.

      I think you learned something critically important: that the thing you wanted to build is feasible to build.

      A lot of ideas people have are not possible to build. You can't prove a negative but you CAN prove a positive: seeing a version of the thing you want to exist running in front of you is a big leap forward from pondering if it could be built.

      That's a useful thing to learn.

      The other day, at brunch, I had Claude Code on my phone add webcam support (with pinch-to-zoom) to my https://tools.simonwillison.net/is-it-a-bird is-it-a-bird CLIP-in-your-browser app. I didn't even have to look at the code it wrote to learn that it's possible for Mobile Safari to render the webcam input in a box on the page (not full screen) and to have a rough pinch-to-zoom mechanism work - it's pixelated, not actual-camera-zoom, but for a CLIP app that's fine because the zoom is really just to try and exclude things from the image that aren't a potential bird.

      (The prompts I used for this are quoted in the PR description: https://github.com/simonw/tools/pull/175)

      > Can I get that with AI? You bet. And probably even better, in some respects. But I have to deliberately choose to. It's way too easy to just grab the exact answer I wanted and be on my way.

      100% agree with that. You need a lot of self-discipline to learn effectively with AI. I'd argue you need self-discipline to learn via other means as well though.

  • A robot TA that gives the wrong answer 50% of the time isn't very helpful.

    • Right, but this is a TA that gives a wrong answer more like 10% of the time (or less).

      I think it's possible that for learning a 90% accuracy rate is MORE helpful than 100%. If it gets things wrong 1/10th of the time it means you have to think critically about everything it tells you. That's a much better way to approach any source of information than blindly trusting it.

      The key to learning is building your own robust mental model, from multiple sources of information. Treat the LLM as one of those sources, not the exclusive source, and you should be fine.

  • You need to choose another field if it takes you 6 months to hello world

    • Don't speak like this to people. Also, don't put words in people's mouths (they didn't say "hello world").

    • I deliberately didn't say "hello world", I said "build something small that works" - I'm editing my post now to add the words "and useful".

  • The author probably meant "coding without AI", not "learning without AI".

As a practitioner I also inherently believe in well written software but as a lifelong learner, things change, and evolve. There is absolutely no reason why software today has to be written like software of yesterday.

There is no need to be so prescriptive about how software is made. In the end the best will win on the merits. The bad software will die under its own weight with no think pieces necessary.

On the other hand, code might be becoming more like clay than like LEGO bricks. The sculptor is not minding each granule.

We don't know yet if there's long term merit in this new way of crafting software and telling people not to try it both won't work, and honestly looks like old people yelling at clouds.

  • > There is absolutely no reason why software today has to be written like software of yesterday.

    I get what you're saying, but the irony is that AI tools have sort of frozen the state of the art of software development in time. There is now less incentive to innovate on language design, code style, patterns, etc., when it goes outside the range of what an LLM has been trained on and will produce.

  • > In the end the best will win on the merits.

    The last six decades of commercial programming don't exactly bear this out...

    The real lesson is that writing software is such a useful, high-leverage activity that even absolutely awful software can be immensely valuable. But that doesn't tell us that better software is useless, it just tells us it is not absolutely necessary.

  • Software engineers are desperate to have their work be like machining aircraft parts.

    It’s a tool. No one cares about code quality because the person using your code isn’t affected by it. There are better and worse tools. No one cares whether a car is made with SnapOn tools or milled on HAAS machines. Only that it functions.

    We know there is no long term merit to this idea just looking back at the last 40 years of coding.

The tools I AI slop/vibe code are more like when I'd use spreadsheets for everything rather than real software.

I'm not against taking the time to read the docs, learn to craft code, and ship beautiful projects, but I could have done that before and didn't then either.

The difference is that now I have a hundred small, internal tools that save my team time and energy.

I've been using Gemini / Antigravity to make a virtual pet for my kids using Love2D / lua. I never coded in my life and have no intention of learning (but I've been learning a lot about game systems and logic, which has been fun). The game is coming along very well and it looks very pretty (I'm a professional illustrator) and if I decide to publish it, no one will care the code is made in AI. It's very high effort, to be honest. You'd had to look into the code to know AI made it.

I now get why so many people are making AI art. I see their "work" as an illustrator and it is absolute slop, but I can see now how it might be fun and even liberating for people who don't make a living with it. So I now think twice before calling AI art "slop". Sure, it may be slop, but it's making a lot of people happy and probably opening up new carreer paths for people.

And yes, I've been affected financially because of this... but I get it.

  • Your point also touches on the idea that new things are being created that might well never have. Like your virtual pet. You might have been commissioned to illustrate such a thing but most likely not, and it wouldn’t have been “yours.” It reminds me of when desktop publishing, MIDI sequencers, or PowerPoint took off and people produced all sorts of things that were largely not of high artisanal quality but it was new stuff, people got personal value from it (as it was harder to spread stuff around pre-Internet) and the tools eventually matured into what all the pros now use anyway.

    That said, I concede the critics have many valid points and concerns and it’s going to be interesting to see how we navigate this flood of “stuff” at a scale never seen before. (I suspect it’ll end up like YouTube and video. Ultra long tail. Most stuff never seeing more than a few eyeballs and a smaller group getting the lion’s share of attention, as with most things. Did YouTube change TV and video production more generally? Yes! But it also didn’t destroy it..)

"Stop making software that is buried under heaps of noise" says the 1-page HTML document that somehow has 5 build dependencies listed on it's Git repository. I don't think I've ever seen anything so tone deaf in my life.

https://codeberg.org/ficd/stopslopware.net

  • Two are optional, and the other 3 are just for a small script to convert the one mardown file to HTML and push it live (of which one (awk) you likely already have on your system). It's actually pretty minimalist. Most tone deaf thing you've seen in your life seems a bit over the top.

    • > Two are optional, and the other 3 are just for a small script to convert the one mar[k]down file to HTML and push it live (of which one (awk) you likely already have on your system).

      None of which are needed. Why is an intermediate step needed?

      > Most tone deaf thing you've seen in your life seems a bit over the top.

      To complain about overcomplication via an overcomplicated project is a tad rich.

Sounds like you mostly want:

-to encourage people to develop more basic programming knowledge and skills (with AI or other manual methods) so they don't produce as much "slop"

-to catch "slop" being created and either discourage people from using it, or to get manual or AI review of the code to make it "decent", and volunteers working to clean it up or this could turn in to probably a whole industry (of people with some knowledge of how to create their projects, who want professional input or rewrites of their code)

So it sounds like a lot of "opportunity" to be made use of in some different ways

edit: another alternative might be creating "competing" functioning projects to "slop projects" where applicable (sometimes a good idea might exist, but it could be implemented better or in a complementary way by another project)

I suspect the effect of AI will be a sort of eternal September, but for software. It's a phase change in how a lot of software will be written and used. There are a lot of applications right now for software where crappy software that mostly gets the job done in a specific way is Good Enough. There's going to be a lot of software written by LLMs that maybe barely compiles and doesn't handle edge cases and has weird behavior but gets a small, specific job done. This is a good thing, since maybe the previous alternative was doing something manually, or not at all.

There will still be major, fundamental, foundational software work for serious engineers to do, but we have to admit that most software needed in the world is not that.

I find these really are not only condescending but also really miss the mark and ironically come off as really uneducated in my opinion, and that really is the most infuriating type of condescension. What you call slopware today is becoming less and less sloppy every six months as new coding models drop. In 2 years the “unmaintainable mess” is going to be far better and far more maintainable than anything the engineers behind these snide websites will make. Do folks realize you can also use the same coding models to ask questions and reason about the “slop” that these code models are writing that somehow is able to do something I would never have been able to do before? I don’t really care if it’s 100% accurate, hit it with a hammer until everything makes sense. Yell at Claude and learn how to wrangle it to get what you want, that skill is an investment that’s going to pay you back far more than following the advice of these folks, that’s my opinion.

Like “you will learn better without AI” is just a bad short sighted opinion dressed up in condescension to appear wise and authoritative.

Learn your tools, learn the limitations, understand where this is going, do the things you want to do and then realize “hey my opinions don’t have to be condescendingly preached to other people as though they are facts”

  • That is your belief, not a fact

    It has been years since "new models will perform less sloppy code, in 6 months"

    Current code is still dumb as hell. The emoticons is the part that works really well.

    • Opus 4.5 is not better and less sloppy by an order of magnitude than sonnet 3.7? Amazing how people can’t look at what’s happening right in front of them

Going all in on AI generated code has taught me more about project management than I learned in the last decade. I also have a much better perspective on what it’s like to be a client contracting a developer to build an app for them. The best part is the AI actually follows all of the processes that you ask it to. Today was the first day that I wrote code in over a week and I still ended up asking for some review from Opus and it went perfectly. At this point no one has an excuse for shipping slop if they can afford $20 a month.

My reflex is to call the website useless because the problem isn't usually software produced by individuals. My problem is the buggy messes that trillion dollar corporations produce.

  • Indeed, Adobe continues shipping their slop and by all accounts of those who keep using it continue to make it worse, this was all in motion well before modern AI tools. If anything, I bet AI tools are more likely to make things better. I read an anti-AI opinion recently where they had a sense that a small open source project was using AI (and were right, it was easy to see by noticing Claude in the commit history) but what tipped their sense was there were too many "professionalisms" in the code base. Oh no, more code that has documentation and tests and benchmarks, the horror! I also just can't take these "it's stinking up the commons" posts all that seriously -- like where have you been the last couple decades? The baseline seems as likely to improve as to degrade more than it already has. Even the spam of useless pull requests isn't new, the peak of that was probably with peak MOOC popularity some years ago when classes would require submitting pull requests to some open source project as an assignment.

  • I mean, look at Microsoft. They're a tiny little 5 trillion dollar company and their own cloud storage software can't reliably extract zip files compressed with their own compression software on their own flagship operating system.

    How dare some nobody in a third world country use AI resources to accelerate the development of some process that fixes an issue for them and occasionally ask you to buy them a coffee when a poor sad pathetic evil worthless hateful disgusting miserable useless 5 trillion dollar company that actively hates you does the same thing with worse results that makes your life more miserable while lining their pockets with every penny in the entire world?!

If man-made software was high quality, this problem would resolve itself , because “slopware” would be easily distinguishable.

The best way to resolve this is to write man-made software that’s good quality.

It’s just a tool

If you are an experience software developer, AI lets you fly and build things much faster.

If you are a new software developer, I don't see how you grow to develop taste and experience when everything is a <ENTER> away.

I think we are the last generation of engineers who give a fuck tbh.

[flagged]

  • This is a shitpost straight out of 4chan, and it's the top comment after an hour. Do I need to be worried about HN?

    And before anybody gets high-and-mighty, I know because I write these too. On 4chan.

    • Hacker Reddit is socially acceptable nu-/g/. And the quality of nu-/g/ is terrible!

      10 points for the first person to admonish me with newsguidelines.html. As old as the hills... ;-)

  • This is a bit more complex that you make it sound, and I'm wondering this is on purpose.

    - Submission based magazines, who pay their writers, like Clarkesworld for example, are being flooded with LLM generated submissions. Those have been automated by people who hit every magazines multiple times with the hope that one makes it through and make a few bucks. This made the work of reviewer absolute hell, their volume of work multiplied by 10.

    - The same is true with music, fake bands are being created and the music submitted to streaming platform with the hope that it will generate some kind of passive income

    - Etsy shops are absolutely filled to the brim with bad AI slop, the whole platform became barely usable anymore

    The same thing is absolutely true with software. You make is sound like it's a few hobbyist that are using AI tools to solve problems and that evil engineers are gatekeeping them because they want to be the only one mastering the arcane arts, but that's overly simplistic and frankly, intellectually dishonest, even if you set aside the fact that at some point one of those vibe coders is going the bite more that they can chew and expose their users, the vast majority of them is looking at making money easily, that means flooding the market with subpar software in hope to generate some money. Just browse a few of the vibe coders subreddits or discord channel to see that it's mostly what is being discussed.

    And, I know I'm not the only one that noticed that over reliance on LLMs has some bad consequences on people, especially juniors. Yes it can be used properly in a productive way, but a lot of people don't bother. Make fun of people who are worried about it all you want, but for all the good gen AI will bring, there absolutely will be an enshitification of about everything. I won't even talk about the golden opportunity it is for scammers and malicious agents. I don't know if it'll be worth it, possibly ? But there will be a price to pay.

    • It would help if the form included a mandatory checkbox stating, "As the author, I declare that I created the submitted work myself without the use of AI." The terms and conditions would state that authors would be banned forever if it was discovered that they had lied.

  • This attitude is of course very common and I just don’t understand it. Like when I read news from the other political party - it’s just confusing to me.

    Are they scared for their jobs? Angry that their hard earned skills are getting devalued? Genuinely concerned about copyright violations in LLM training? Or just don’t want the world to change? (Kids get off my lawn!)

    • The site describes a specific subset of issues very tersely. Can't you simply disagree with those, rather than imply they are never stated?

      Regardless, what's confusing about the list of problems you gave? Are you implying they are somehow un-real in all contexts? The reference to political news is also confusing.

      1 reply →

  • If AI tools produced good code that was well-designed, nobody would fucking care. Maintainers of repos want good submissions that solve issues, they don't care if you wrote it on a notepad first or generated it in 5 minutes, if it fixes the thing, and is of good quality, it would be accepted.

    AI submissions are getting hate because the code isn't good and isn't designed well and the person submitting it would also know that, if they understood what the LLM wrote. Hell, maybe they could even re-architect it into something worth submitting in the first place.

    I use AI tools semi-frequently, to get answers, to riddle problems, all kinds of stuff. However if you just punch directions into ChatGPT and copy/paste the answer, you are not growing as a dev, you are not learning, and yeah your code is probably shit. Not sorry.

    Edit: And I feel it's an under-observed point that AI-dependent devs constantly try and hide the fact that they are doing exactly that: copying from ChatGPT, because they also know it's shit and they will be judged. So just... STOP DOING IT.

    • Using Claude to submit PRs to huge open source projects is stupid, for sure.

      But if I need a quick tool, like a secret Santa name picker, I’ll just have Claude build it, push it to a repo, link the repo on some PaaS and have a working, deployed app in 20 minutes. No ads, no accounts & no signing up to random websites. I can build it exactly like I want it and include fun Easter eggs for my family.

      Building it myself would take 2-3 hours, and the code quality would be drastically better, but that just doesn’t matter.

      1 reply →

  • Code meritocracy matters. There's a reason Linux is used by billions but slopware isn't.

  • the issue is false advertising.

    you'll understand the first time you lose half an hour evaluating a library that has all the old signs of competent design and even the trivial examples don't work and you realize the project was generated and you've had your time completely wasted

    • In the new world, increasingly you’ll be better off writing your libraries from scratch than pulling in external dependencies. Less supply chain risk. Less bloat from features you don’t need. Sure complex mature libraries aren’t going away. But for many simple tasks the balance is shifting.

  • Most of these people are either:

    Students

    Activists

    Hyper opinionated and “principled” engineers (that won’t touch AI)

    University professors

    Engineers working with Linux and Free software who hate AI.

    They all secretly use ChatGPT when it launched and still do.

You can't be serious.

> When you publish something under the banner of open–source, you implicitly enter a stewardship role. You’re not just shipping files, you’re making a contribution to a shared commons. That carries certain responsibilities: clarity about purpose, honesty about limitations, and a basic alignment with the community’s collaborative ethos.

(from the second link)

You're not just writing angry screeds, you are producing slop prose and asking us to spend our time reading it.

How is this not an implicit repudiation of your entire argument? Are you not hurting yourself by avoiding learning how to write better?

  • I'm going to give the author the benefit of the doubt here. Not all "you're not X, you're Y" was written by an LLM.

  • That assertion is also highly debatable. To me no part of releasing software under a free license implies a "stewardship role."

  • I can't tell what you're referring to. The quote reads well.

    • It invokes a couple of classic "LLM writing red flag" tropes. But they're ones that are reasonably appropriate in context.

      I have caught myself on occasion rewriting to avoid looking too much like an LLM. But I've also introduced em-dashes to my writing — here's a gratuitous example just for fun — simply because the LLM slop writing discourse prompted me to research the X11 input system.