Web components are intentionally low-level, they’re not really meant to be used directly. You should see them more as performant, interoperable building blocks. Have you tried lit?
This circles back to the OP's point: they're not appropriate to use directly, so we layer a framework on top of them (Lit), and now we're just using another framework with one small piece swapped out.
Except for the hyphens, I don't feel any closer to the platform when I use Lit.
You can inspect a Lit component directly in Chrome, it’s just a custom element. No need for a browser dev extension. You can use this custom element from React or any other JS framework. You can also use this custom element in a server-rendered template, no need for any custom SSR setup. Feel close to the platform yet?
> Reading the code does not mean you understand the code.
Reading the code may not be enough to understand the behaviour of your program, but believing you can understand the behaviour of a program without at least reading the high level code is truly silly.
(by high level, I mean the code living in the higher layers - of course we don't often read the code of the generated assembly, or the interpreter, or the browser, but that's because they're reliable abstractions, unlike prompts!)
> believing you can understand the behaviour of a program without at least reading the high level code is truly silly.
have you ever used a library after only reading the README and documentation, or do you always pull the source and read through it before you think you understand it?
I would draw the difference here that a library is used by hundreds (of thousands) of people, and established across different scenarios. I don't read the boto3 library AWS provides, but I can trust them and the amount of customers enough to be certain enough that it behaves the way I expect it to.
The same can't be said with code we write in silos at our workplace or at home. It simply does not have the same test bench.
Yes, libraries aren't bug-free, but they give me a reliable abstraction tested in the field. Not rarely you dig into library code if you notice unexpected behavior.
If we could rely on our LLM or colleague written code, or own code, have run through the same amount of requests, sure I wouldn't need to review it, as my confidence can be north of 99.9999% it works correctly. But we can't.
I've used libraries before, where I call the API surface that they expose based on method names and parameter types, without reading all the source. Generally those libraries don't implement my software's entire problem domain area; they tend to implement things like "CSV parser" or "HTTP server". The important code, that I'm actively reading and writing, tends to be the code around those library calls.
This is different from building a product, which you only interact with via UI buttons/CLI/etc, without reading any code to understand how it conceptualizes that product's problem domain area.
People do that latter thing, and we call them "users", not "developers".
Of course. And then we fix the problem. It's no different here. The point is that reading the code first is absolutely not a requirement when adopting a new library.
It is not. But there’s an element of trust being involved. Something like libflac or libcurl, I don’t read the code. I read the doc which does outline the behavior of each function and the conceptual model. If something break, it’s quite often my code. Why? because their code is battle tested. Which is quite different from AI generated code.
That's because it's new. libflac and libcurl didn't come out as battle tested code. That takes time and...battles. And what are those battles if not people seeing issues with what those libraries are doing and fixing the code? There absolutely no reason that AI written code can't or won't become battle tested.
> There absolutely no reason that AI written code can't or won't become battle tested.
I can think of 2:
1. Low trust: I'm not going to trust some rando's AI-generated code/PR when I can make my own AI generated code. Maintainer will (rightly) not trust my awesome AI-generated PR because I'm a rando to them.
2. Fragmentation, if a lot of people are doing (1), they wont contribute to the same upstream codebase like they would in the past, which means each codebase only runs through a small subset of potential environments.
The interplay between 1 & 2 will result in a lot of siloed code, with no accounting for taste (i.e. sensibilities developed by maintainers)
Low trust is not a reason that code can’t be battle tested. All non battle tested code starts as low trust by default. AI written or otherwise. I’m not even sure what you mean by fragmentation tbh. This feels like a very vague argument in general.
But you’re right that it’s the hill climb of human trust that AI is going through right now. Some of us are just farther along than others. Some of us refuse to consider trusting AI out of fear, and not rational evaluation of its capability.
The battle tested part is the reason I suspect my code rather than theirs first. The trust part is in their engineering process. New project from OpenBSD or Debian, I’m ready to try. Random guy on Github, bring out the 10 foot pole.
Whenever there is a bug in a library or a hard to diagnose issue and there is no information on the internet about it, I tend to just dive right into the dependency source code for debugging.
I am sure OP cannot understand the Unix file API without actually reading every line of its implementations (on each different architecture)! Or any function for that matter , what does sort do?? Impossible to know without reading the source. And I’m sure after reading the source you will know every detail of how it works and will never forget it.
It's hard for me to understand how you could work on software and not understand the qualitative difference between the Unix File API and some code that an AI spat out 5 minutes ago.
Rails is the most cult-like, anti-learning, anti-choice and even anti-engineering technology I have ever used. It does NOT want you to make your own choices, it does NOT want you to decouple from the framework, it does NOT want you to grow. It’s frightening.
I mean, in an app that uses Rails by-the-book, you won’t even find a class instantiation. No call to new. You won’t find a class that does not inherit from a framework bass class either. The framework handles everything, don’t worry.
I did interviews almost weekly from about 2017-2024, when I was working in a Rails company.
About half the people had no idea how to use Ruby without Rails, and most of them would open a whole-ass Rails app to do a simple FizzBuzz (I would naturally provide assistance in maths).
A minority (only 3 or 4 people) were unable to create a Rails app, and had to run FizzBuzz in their employee's own app.
Those were people in Mid-Level and Senior positions in other companies, that had documentation proving as such, and also managed to pass an HR screening.
It's better that everyone is loud about it then everyone giving up and being silently irritated. At least if people complain it's possible to read the room
That risks not communicating the reason for the downvotes / flags to the submitter. I think the value of complaining loudly is signalling to those who think LLM write-ups are acceptable (some folks are acting in good faith without understanding why the content is unwanted).
Tbh, I still wonder why people even bother releasing such tools that were shitted out by an LLM in an hour or two, these are basically the modern equivalent of a hastily cobbled together 10-liner shell script (still useful, but not something you'd ever put up as its own Github project).
Everybody else can write such tools now by themselves in at most an hour, and they get a tool that's more personalized to their tastes. And why have a readme at all when it's just LLM mumbo-jumbo - that sort of mumbo-jumbo is written for LLMs to consume, not humans.
In theory, there is some value in deciding what the LLM ought to shit out, and checking that it works, and maybe even making a design decision or two to try and create something that would be relevant or useful for many people. And then others can possibly save an hour or two, and the data centre can save some water and electricity.
That's 6 more commits than I'm used to seeing for these sorts of efforts, honestly. (But I will cede that people might be doing all the changes locally and then pushing a single commit, without any real understanding of how version control works.)
If folks do this; I'd love for them to also be in the habit of shipping their prompts + harness configuration too. If we are moving to another code abstraction, then that becomes the source code to modify, adapt and extend.
I mean -- compilers used to annoy developers who knew how to hand-roll machine code, with bad outputs and inefficient algorithms, till the compilers got better than most of them...
I appreciate it when people say something is slop. Saves me from wasting my time looking at it.
How many slop ideas have come to the front page, never to be heard from again because the execution isn’t actually any good? I’m guessing most of them.
Just because the ReadMe is slop, doesn’t mean the code is slop. People are starting to make apps for themselves now and open-sourcing them so they’re not putting much thought into the ReadMe or distribution.
This just means ReadMe’s are less important now. I just have my terminal agent dig into the code and tell me what features are there. If the app is actually useful.
Even before AI, there were so many projects with subpar ReadMes, no screenshots, etc. But once you use the software, you realize how good it is.
Source: I maintain a massive collection of open-source alternatives and quality of open-source alternatives have increased a lot
For many new coders, LLMs are so good at writing the code, asking it to write the ReadMe sounds like a good idea. Clearly it’s the first impression your project makes so handwriting it is important.
Being turned off by the project because of the ReadMe is your prerogative. I’m just suggesting you dig into the code sometimes, the ReadMe is not the be all, end all.
> For many new coders, LLMs are so good at writing the code, asking it to write the ReadMe sounds like a good idea. Clearly it’s the first impression your project makes so handwriting it is important.
The point is that if they looked at the result they'd question themselves. And the fact that they don't is a violation of the social contract: I can hardly be expected to care about your work, if you don't.
Perhaps we should have README.md and README.ai the latter containing a bunch of stuff that humans don't want to read but agents can use to answer questions humans ask
You can produce good code and good projects with Claude doing all the work. This might even be an example of one, but the description on GitHub makes so little sense that I stopped reading before I figured out what it even does.
And every comment on HN calling out vibe-coded slop has this same complaint comment in turn. OP has an actual complaint, your complaint is just "stop complaining".
It’s not stop complaining as much as it is please contribute something of substance instead of venting hot air into a comment thread where everyone is already aware.
1/3 of articles warrantying such a comment means it is still important information. If it was 100% of the articles I would agree that it gives no information, but with 1/3 one cannot claim it does not contribute information.
The problem is that not everyone thinks like you. You're dictating what is and isn't a signal to others. OP left a comment to signal to people like me. It saved me a click.
I thought it was a fine informative readme, starts with the problem, outlines the core of the solutions, and some limitations. Everything I want to know in the first few paragraphs. No need to spend human time to improve it.
An llm response here would be more respectful than a downvote without a comment.
And it’s quite disrespectful to dismiss a project that may have taken a lot of time and thought, even with agents, to build, and just dismiss it because the readme was created by an agent.
You can do this if you hold its hand a lot. Claude by default will do insane levels of abstraction for small things. Also make Python docstrings 3x longer than the actual code.
Did I even tried to pretend the article wasn't generated with Claude's help?
I even shared the initial prompt in some comment in this thread. I don't understand what is the matter with also using AI help with generating articles. I still reviewed the article and put all the ideas I wanted to discuss in that article. I don't see why people are often complaining about this. The article content is much more important than how it was generated.
reply