I'd love to know whether that story is actually true.
Some dude hears somebody tell a story about sth 20 years ago, puts it in a blog, and here we are on HN, nobody questioning whether it's actually accurate. Of course Raymond Chen isn't just any random person, but the more important it would be to actually check? I mean, who hasn't heard people tell stories from decades ago, including colleagues reminiscing about the good old times "before y'all were born" only to realize later that it was vastly exaggerated or even outright made up.
Anybody around here with some actual first-hand info or at least another source besides this blog entry? I'd love to hear!
It's like Mark Twain and the rules for reselling a slave in Missouri https://medium.com/p/fe48ea07ad20
"the free black man in Missouri could only remain in the state for 6 months before being taken and put on auction as a slave." only it turned out to be false, and evidently made up by Twain for reasons of fiction.
Never let the truth get in the way of a good story. That's my motto. Now let me tell you about the time that we dug up this dinosaur egg and hatched it.
I believe it because it's a plausible variant of what I call the "Fus Ro Data Loss" vulnerability: shouting at hard drives causes them to resonate in a way that affects their ability to access data.
it's terrible advice for actual programmers though because often 0 is a sentinel value with special meaning for systems that you don't have control over (sometimes because of pre-digital conventions that shouldn't be lightly fucked with).
This is usually done by PL's that want to avoid crashes at all costs, but "turning crashes into subtle logic errors" seems like a really bad idea.
"As mentioned before, this is not a post about what’s practically a good idea. All I’m arguing is that mathematically, we can extend division in this way without leading to a contradiction. Programming languages are different from mathematical formalisms, and should be different. I prefer that 1/0 is an error, because I’m not using my program to prove theories."
Please do yourself a favor and actually read it.
Besides, 0 as a sentinental value on disk or on the wire is fine, but once you have values in a programming language, use option types. This is not 1980s anymore, you don't need to use 0 or -1 or 0xffff to express something special which sooner or later just falls on your feet.
That sounds great, but that experience of the 15000 or so people in Wollishofen can't be provided for the half a million folks living in Zurich. That's the whole point of Verdichtung. That you get higher density in exchange for short distances. If everybody lived like Wollishofen does, then you'd have suburbia as far as the eye can see. In a sense, Wollishofen has the cake and gets to eat it too (because it's so close to the dense Zurich center but is itself only sparse). Which is nice for the small minority living there, but not a model that can really be applied everywhere.
That's the exact opposite of what the article is about. The desire to time optimize, to rush it cause "this is sooo sloooow, booooring" is what creates only an illusion of time efficiency but you might discover that if you actually give it the time, there is a whole world to discover. That's what the article is about.
I've always taken issue with youtube clips content creators automatically (?) cutting pauses between words or people listening to podcasts in 1.5x or 2x speed or even clips already being sped up. Folks, your brain can't keep up. It may feel great to rush through 10 hours of audio book in 5 hours, or dopamine-pushing even higher if you don't have pauses in that triggering tiktok clip, but it just makes you more and more superficial. Your brain needs time to process and reflect. The best speakers out there have a calm pace, not a rushing one. That's for a reason, and it's an excellent one.
And this my friends is the reason why (only) focusing on CPU cycles and memory hierarchies is insufficient when thinking of the performance of a system. Yes they are important. But no level of low-level optimization will get you out of the hole that a wrong choice of algorithm and/or data structure may have dug you into.
Let's say there is an architect and he also owns a construction company. This architect, then designs a building and gets it built from of his employees and contractors.
In such cases the person says, I have built this building. People who found companies, say they have built companies. It's commonly accepted in our society.
So even if Claude built for it for GP, as long as GP designed it, paid for tools (Claude) to build it, also tested it to make sure that it works, I personally think, he has right to say he has built it.
If you don't like it, you are not required to use it.
But here's the problem. Five years ago, when someone on here said, "I wrote this non-trivial software", the implication was that a highly motivated and competent software engineer put a lot of effort into making sure that the project meets a reasonable standard of quality and will probably put some effort into maintaining the project.
Today, it does not necessarily imply that. We just don't know.
Even with LLMs delivering software that consistently works requires quite a bit of work and in most cases requires certain level of expertise. Humans also write quite a bit of garbage code.
People using LLMs to code these days is similar to how majority people stopped using assembly and moved to C and C++, then to garbage collected languages and dynamically typed languages. People were always looking for ways to make programmers more productive.
Programming is evolving. LLMs are just next generation programming tools. They make programmers more productive and in majority of the cases people and companies are going to use them more and more.
I'm not opposed to AI generated code in principle.
I'm just saying that we don't know how much effort was put into making this and we don't know whether it works.
The existence of a repository containing hundereds of files, thousands of SLOCs and a folder full of tests tells us less today than it used to.
There's one thing in particular that I find quite astonishing sometimes. I don't know about this particular project, but some people use LLMs to generate both the implementation and the test cases.
What does that mean? The test cases are supposed to be the formal specification of our requirements. If we do not specify formally what we expect a tool to do, how do we know whether the tool has done what we expected, including in edge cases?
I fully agree with your overall message and sentiment. But let me be nit-picky for a moment.
> The test cases are supposed to be the formal specification of our requirements
Formal methods folks would strongly disagree with this statement. Tests are informal specifications in the sense that they don't provide a formal (mathematically rigorous) description of the full expected behavior of the system. Instead, they offer a mere glimpse into what we hope the system would do.
And that's an important part, which is where your main point stands. The test is what confirms that the thing the LLM built conforms to the cases the human expected to behave in a certain way. That's why the human needs to provide them.
(The human could take help of an LLM to write the tests, as in they give an even-more-informal natural language description of what the test should do. But the human then needs to make sure that the test really does that and maybe fill in some gaps.)
> If we do not specify formally what we expect a tool to do, how do we know whether the tool has done what we expected, including in edge cases?
You don’t. That’s the scary part. Up until now, this was somewhat solved by injecting artificial friction. A bank that takes 5 days for a payment to clear. And so on.
But it’s worse than this, because most problems software solves cannot even be understood until you partially solve the problem. It’s the trying and failing that reveals the gap, usually by someone who only recognizes the gap because they were once embarrassed by it, and what they hear rhymes with their pain. AI doesn’t interface with physical reality, as far as we know, or have any mechanism to course correct like embarrassment or pain.
In the future, we will have flown off the cliff before we even know there was a problem. We will be on a space ship going so fast that we can’t see the asteroid until it’s too la...
You never knew. There are plenty of intelligent, well-intentioned software engineers that publish FOSS that is buggy and doesn’t meet some arbitrary quality standards.
the implication was that a highly motivated and competent software engineer put a lot of effort into making sure that the project meets a reasonable standard of quality and will probably put some effort into maintaining the project
That is entirely an assumption on the part of the reader. Nothing about someone saying "I built this complicated thing!" implies competence, or any desire to maintain it beyond building it.
The problem you're facing is survivorship bias. You can think of lots of examples of where that has happened, and very few where it hasn't, because when the author of the project is incompetent or unmotivated the project doesn't last long enough for you to hear about it twice.
>Nothing about someone saying "I built this complicated thing!" implies competence, or any desire to maintain it beyond building it.
I disagree. The fact that someone has written a substantial amount of non-trivial code does imply a higher level of competence and motivation compared to not having done that.
Agree that just being hand-written doesn’t imply quality, but based on my priors, if something obviously looks like vibe-code it’s probably low quality.
Most of the vibe-code I’ve seen so far appears functional to the point that people will defend it, but if you take a closer look it’s a massively over complicated rat’s nest that would be difficult for a human to extend or maintain. Of course you could just use more AI, but that would only further amplify these problems.
If someone puts weeks and months of their time into building something, then I'm willing to take that as proof of their motivation to create something good.
I'm also willing to take the existence of non-trivial code that someone wrote manually as proof of some level of competence.
The presence of motivation + competence makes it more likely that the result could be something good.
We know. It is not difficult to tell them apart. Good taste is apparent and beauty is universal.
The amount of care and attention someone put into a craft is universally appreciated.
Also, I am 100% confident this comment was the output of a human process.
We can tell.
There is something more. It is obvious for those that have a soul.
Exactly. It's like looking at assembly that's been written by a person vs by a compiler. There's just no soul in the latter! And that's why compilers never caught on.
We know if we make the effort to find out. But what we really want to know is not whether AI was used in the process of writing the software. What we want to know is whether it's worth checking out. That's what has become harder to know.
Every single commit is Claude.
No human expert involved.
Would you trust your company database to an 25 dollars vibe session?
Would you live in a 5 dollars building?
Is there any difference from hand tailored suit, constructed to your measurements, and a 5 dollars t-shirt?
Some people don't want to live in a five dollars world.
Yes but there’s no evidence this is vibe coded or not. You’re cynically claiming it due to agent authorship. As if there is no legitimate use.
> No human expert involved
You don’t know this, you are just hating.
Besides the close review and specification that may be conducted with agents, even if you handwrite / edit code, it will say that it was co-authored by the agent if you have the agent do the commit for you.
What an outrageously bad analogy. Everyone involved in that building put their professional reputations and licenses on the line. If that building collapses, the people involved will lose their livelihoods and be held criminally liable.
Meanwhile this vibe coded nonsense is provided “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. We don’t even know if he read it before committing and pushing.
Even billion dollar software products have similar clauses, it doesn't have anything to do with vibe coding. To build and sell software no educational qualification is needed.
Quality of the software comes from testing. Humans and LLMs both make mistakes while coding.
As an autodidact, and someone who has seen plenty of well educated idiots in the software profession, I'm happy there are no such requirements... I think a guild might be more reasonable than a professional org more akin to how it works for other groups (lawyers, doctors, etc).
There are of course projects that operate at higher development specification standards, often in the military or banking. This should be extended to all vehicles and invasive medical devices.
Depends on the building type/size/scale and jurisdiction. Modern tract homes are really varied, hit or miss and often don't see any negative outcomes for the builders in question for shoddy craftsmanship.
Same with any OSS. Up to you to validate whether or not it is worth depending on, regardless of how built. Social proof is a primary avenue to that and has little to do with how built.
It is the new normal, whether you are against it or not.
If someone used AI, it is a good discussion to see whether they should explicitly disclose it, but people have been using assisted tools, from auto-complete, text expanders, IDE refactoring tools, for a while - and you wouldn't make a comment that they didn't build it. The lines are becoming more blurry over time, but it is ridiculous to claim that someone didn't build something if they used AI tools.
Do you take issue with companies stating that they (the company) built something, instead of stating that their employees built something? Should the architects and senior developers disclaim any credit, because the majority of tickets were completed by junior and mid-level developers?
Do you take issue with a CNC machinist stating that they made something, rather than stating that they did the CAD and CAM work but that it was the CNC machine that made the part?
Non-zero delegation doesn’t mean that the person(s) doing the delegating have put zero effort into making something, so I don’t think that delegation makes it dishonest to say that you made something. But perhaps you disagree. Or, maybe you think the use of AI means that the person using AI isn’t putting any constructive effort into what was made — but then I’d say that you’re likely way overestimating the ability of LLMs.
Could we please avoid the strawmen? Nowhere have I claimed that they didn't put work into this. Nowhere did I say that delegation is bad. I'd like to encourage a discussion, but then please counter the opinion that I gave, not a made-up one that I neither stated nor actually hold.
We all agree that crafting the right prompts (or however we call the CLAUDE.md instructions) is a lot of work, don't we? Of course they put work into this, it's a file of substantial size. And then Claude used it to build the thing. Where is a contradiction? I don't see the mental gymnastics, sorry.
Not sure why this is downvoted. For a critical tool like DB cloning, I‘d very much appreciate if it was hand written. Simply because it means it’s also hand reviewed at least once (by definition).
We wouldn’t have called it reviewed in the old world, but in the AI coding world we’re now in it makes me realise that yes, it is a form of reviewing.
I use Claude a lot btw. But I wouldn’t trust it on mission critical stuff.
It's being downvoted because the commenter is asking for something that is already in the readme. Furthermore, it's ironic that the person raising such an issue is performing the same mistake as they are calling out - neglecting to read something they didn't write.
It‘s at the very bottom of the readme, below the MIT license mention. Yes, it’s there, but very much in the fineprint. I think the easier thing to spot is the CLAUDE.md in the code (and in particular how comprehensive it is).
Again, I love Claude, I use it a ton, but a topic like database cloning requires a certain rigour in my opinion. This repo does not seem to have it. If I had hired a consultant to build a tool like this and would receive this amount of vibe coding, I’d feel deceived. I wouldn’t trust it on my critical data.
App migrations that may fail and need a rollback have the problem that you may not be allowed to wipe any transactions so you may want to be putting data to a parallel world that didn't migrate.
> App migrations that may fail and need a rollback have the problem that you may not be allowed to wipe any transactions so you may want to be putting data to a parallel world that didn't migrate.
This is why migrations are supposed to be backwards compatible
> Eh, DB branching is mostly only necessary for testing - locally
For local DB's, when I break them, I stop the Docker image and wipe the volume mounts, then restart + apply the "migrations" folder (minus whatever new broken migration caused the issue).
There was a recent wave of such comment on the rust subreddit - exactly in this shape "Oh you mean you built this with AI". This is highly toxic, lead to no discussion, and is literally drove by some dark thought from the commentator. I really hope HN will not jump on this bandwagon and will focus instead on creating cool stuff.
Everybody in the industry is vibecoding right now - the things that stick are due to sufficient quality being pushed on it. Having a pessimistic / judgmental surface reaction to everything as being "ai slop" is not something that I'm going to look forward in my behavior.
Why good faith is a requirement for commenting but not for submissions?
I would argue the good faith assumption should be disproportionately more important for submissions given the 1 to many relationship.
You're not lying, it indeed is toxic and rapidly spreading. I'm glad this is the case.
Most came here for the discussion and enlightenment to be bombarded by heavily biased, low effort marketing bullshit. Presenting something that has no value to anyone besides the builder is the opposite of good faith.
This submissions bury and neglect useful discussion, difficult to claim they are harmless and just not useful.
Not everyone in the industry is vibe coding, that is simply not true. but that's not the point I want to make.
You don't need to be defensive about your generative tools usage, it is ok to use whatever, nobody cares. Just be ready to maintain your position and defend your ideals. Nothing is more frustrating then giving honest attention to a problem, considering someone else perspective, to just then realize it was just words words words spewed by slop machine. Nobody would give a second thought if that was disclosed.
You are responsible for your craft. The moment you delegate that responsibility into the thrash you belong.
If the slop machine is so great, why in hell would I need you to ask it to help me? Nonsensical.
Your bias is that you think that because you can use a bike then my bike efforts are worthless. Considering that I often thrash out what I generate and I know I do not generate -> ship ; but have a quality process that validate my work by itself - the way I'm reaching my goals present no value to my public.
The reason this discussion is pathetic, is that it shifts the discussion from the main topic (here it was a database implementation) - to abide by a reactionary emotive emulation with no grace or eloquence - that is mostly driven by pop culture at this point with a justification mostly shaping your ego.
There is no point in putting yourself above someone else just to justify your behavior - in fact it only tells me what kind of person you were in the first place - and as I said, this is not the kind of attitude that i'm looking up to.
Justifiably, there is 0 correlation between something written manually and quality - in fact I argue it's quiet the opposite since you were unable to process as much play and architecture to try & break, you have spent less time experimenting, and more time pushing your ego.
And are we really doing this? Do we need to admit how every line of code was produced? Why? Are you expecting to see "built with the influence of Stackoverflow answers" or "google searches" on every single piece of software ever? It's an exercise of pointlessness.
I think you need to start with the following statement:
> We would like to acknowledge the open source people, who are the traditional custodians of this code. We pay our respects to the stack overflow elders, past, present, and future, who call this place, the code and libraries that $program sits upon, their work. We are proud to continue their tradition of coming together and growing as a community. We thank the search engine for their stewardship and support, and we look forward to strengthening our ties as we continue our relationship of mutual respect and understanding
Then if you would kindly say that a Brazilian invented the airplane that would be good too. If you don’t do this you should be cancelled for your heinous crime.
Also it looks like Santos-Dumont's plane was 2-3 years after the Wright brothers. He was doing airships before that though - lighter-than-air craft that rely on a large balloon.
Edit: So it looks like the Wright brothers had catapult but didn't actually need it (their claim-to-fame flights didn't use it), but did otherwise need a "dolly" (a wooden cart, not a catapult) because the plane didn't have wheels attached to it. Then also Santos-Dumont was declared first in Europe because he demonstrated it in Paris during a period bad reporting had people in Europe questioning the legitimacy of the Wright brothers' flight.
Indeed. There is a difference between "I have learnes by reading a lot of SO" and "I have copied the contents of this file verbatim from SO". Using Claude is very close to the latter without saying it.
> Literally every business is based on the idea of tacking on a margin onto someone else's work and profiting from it.
Hm? I am in landscaping. I mow people's lawns. Sure I didn't build the machinery myself, but the main value I provide is my time for the mowing. Nobody elses.
> Markets are based on imperfect information distribution at the end of the day.
Hm? I buy a lawnmower. I have information what the seller wants for it. I buy it. There are other brands. The one I buy is because I like it and its price. That's a market. Where is the imperfect information distribution here?
Some dude hears somebody tell a story about sth 20 years ago, puts it in a blog, and here we are on HN, nobody questioning whether it's actually accurate. Of course Raymond Chen isn't just any random person, but the more important it would be to actually check? I mean, who hasn't heard people tell stories from decades ago, including colleagues reminiscing about the good old times "before y'all were born" only to realize later that it was vastly exaggerated or even outright made up.
Anybody around here with some actual first-hand info or at least another source besides this blog entry? I'd love to hear!
reply