• 0 Posts
  • 2 Comments
Joined 2 months ago
cake
Cake day: August 17th, 2026

help-circle
  • “troll” once meant someone deliberately setting out to get a negative emotional response from people on the internet. Now it can still mean that, but also “someone who is disagreeable” and “someone I have a negative emotional response to”.

    Words with a negative valence I think always risk this semantic drift, and hence “vibecoding” moved from “generating code using AI without looking at it” (which to many programmers is quite negative) to “any application of AI for software development”. “Slop” started as low quality AI generated content, and now it just means anything generated by AI.

    It makes sense that we’ve been speedrunning this, given the strong negative feelings enough people have about anything AI. If you think any application of AI is bad, of course everything is slop.

    “Vibecoding” now covers this vast gray area between not looking at the code at all to reviewing the shape, to reviewing every line as written by AI. That’s weird, but I think it’s the semantic shift again.

    I think we need new words to express the difference that are a bit more resilient against semantic drift. A word that expresses strong engagement with code that’s developed using AI, even though doing so has cognitive friction, to express what people do rather than don’t do. Then one may still reject all of it, but we will have words to distinguish between a case where people engage with code with an engineering perspective versus not at all.

    P.S. Before AI, almost nobody looked at all the code a project uses, because we reuse libraries and frameworks and programming language implementations and operating systems. For many projects moreover it’s always been so that not everybody on a team reads every single line that’s actually in the project’s repository. The difference is that all this code had a human provenance, not that people read every single line.


    score 1 · canonical


  • Many years ago I was using jQuery (as the web platform wasn’t uniform myself yet) and found myself frustrated with it. I wanted a better ability to reuse code patterns. I wanted to have loose coupling between different pieces of UI behavior.

    This is the bit that I find mostly missing from this analysis, though it touches on it a bit when it talks about React components as higher-level primitives. But to me, it’s not just about sharing components between developers, it’s also about the organization of an application.

    The “platform” doesn’t expose such concepts. It’s a grown set of pieces of APIs for a wide range of functionalities, and not everything is very consistent. When I want a reusable piece, I often need some kind of combination of these functionalities. The platform itself does not let me express this. Web components are a long-standing but not very successful attempt making it happen. Something like React, for all its flaws, does.

    We don’t typically tell people to “use the platform” when they want to draw graphics on the screen. It’s curious to consider why. We know that doing graphics requires a lot of different functionalities, from drawing pixels to mathematics to loading a file in a particular format. We know that there are plenty of options to do each. We know there are high level frameworks (like game engines) that take care of a lot of the things for you. How is the web browser different? I think this is because it inconsistently plays the roles of both higher level framework and providing low level functionality.


    score 1 · canonical