Live data from Hacker News

If you're going to vibe code, why not do it in C?

stephenramsay.net

581–590 of 626 posts

Re: If you're going to vibe code, why not do it in C?

#581
post #286

Earlier quoted context omitted.

Some ( partial ) counter points: - I think given public available metrics, it's clear that this isn't translating into more products/apps getting shipped. That could be because devs are now running into other bottlenecks, but it could also indicate that there's something wrong with these studies. - Most devs who say AI speeds them up assert numbers much higher than what those studies have shown. Much of the hype arou…

> - Most devs who say AI speeds them up assert numbers much higher than what those studies have shown. I am not sure how much is just programmers saying "10x" because that is the meme, but if at all realistic numbers are mentioned, I see people claiming 20 - 50%, which lines up with the studies above. E.g. https://news.ycombinator.com/item?id=45800710 and https://news.ycombinator.com/item?id=46197037 > - Prior to LLM…

> if at all realistic numbers are mentioned, I see people claiming 20 - 50%

IME most people claim small integer multiples, 2-5x.

> all the largest studies I've looked at mention this clearly and explain how they try to address it.

Yes, but I think pre-AI virtually everyone reading this would have been very skeptical about their ability to do so.

> My current hypothesis, based on the DORA and DX 2025 reports, is that quality is largely a function of your quality control processes (tests, CI/CD etc.)

This is pretty obviously incorrect, IMO. To see why, let's pretend it's 2021 and LLMs haven't come out yet. Someone is suggesting no longer using experienced (and expensive) first world developers to write code. Instead, they suggest hiring several barely trained boot camp devs (from low cost of living parts of the world so they're dirt cheap) for every current dev and having the latter just do review. They claim that this won't impact quality because of the aforementioned review and their QA process. Do you think that's a realistic assessment? If and on the off chance you think it is, why didn't this happen on a larger scale pre-LLM?

The resolution here is that while quality control is clearly important, it's imperfect, ergo the quality of the code before passing through that process still matters. Pass worse code in, and you'll get worse code out. As such, any team using the method described above might produce more code, but it would be worse code.

> the largest study in the link above explicitly discuss it and find that proxies for quality (like approval rates) indicate more improvement than a decline

Right, but my point is that that's a sanity check failure. The fact that shoving worse at your quality control system will lower the quality of the code coming out the other side is IMO very well established, as is the fact that LLM generated code is still worse than human generated (where the human knows how to write the code in question, which they should if they're going to be responsible for it). It follows that more LLM code generation will result in worse code, and if a study finds the opposite it's very likely that the it made some mistake.

As an analogy, when a physics experiment appeared to find that neutrino travel faster than the speed of light in a vacuum, the correct conclusion was that there had almost certainly been a problem with the experiment, not that neutrinos actually travel faster than the speed of light. That was indeed the explanation. (Note that I'm not claiming that "quality control processes cannot completely eliminate the effect of input code quality" and "LLM generated code is worse than human generated code" are as well established as relativity.)

Re: If you're going to vibe code, why not do it in C?

#582
post #469
post #393

Earlier quoted context omitted.

If we take the most popular programming languages and look at what their reference (or most popular) implementations are written in, then we get: C++: JavaScript (V8), Java, C# C: Python, PHP, Lua, Ruby Self-hosted: Go, Rust Far from archaic indeed. We're still living in the C/C++ world.

Java and C# compilers are selfhosted. Then depending on which JVM implementation we are talking about the actual JVM runtime can be Java, C, or C++, or a mix of them. Modern C compilers are written in C++. Rust uses LLVM, written in C++.

[deleted]

Re: If you're going to vibe code, why not do it in C?

#583
post #286

Earlier quoted context omitted.

> - Most devs who say AI speeds them up assert numbers much higher than what those studies have shown. I am not sure how much is just programmers saying "10x" because that is the meme, but if at all realistic numbers are mentioned, I see people claiming 20 - 50%, which lines up with the studies above. E.g. https://news.ycombinator.com/item?id=45800710 and https://news.ycombinator.com/item?id=46197037 > - Prior to LLM…

> I see people claiming 20 - 50%, which lines up with the studies above Most of those studies either measure productivity using useless metrics like lines of code, number of PRs, or whose participants are working for organizations that are heavily invested in future success of AI. One of my older comments addressing a similar list of studies: https://news.ycombinator.com/item?id=45324157

As mentioned in the thread I linked, they acknowlege the productivity puzzle and try to control for it in their studies. It's worth reading them in detail, I feel like many of them did a decent job controlling for many factors.

For instance, when measure the number of PRs they ensure that each one goes through the same review process whether AI-assisted or not, ensuring these PRs meet the same quality standards as humans.

Furthermore, they did this as a randomly controlled trial comparing engineers without AI to those with AI (in most cases, the same ones over time!) which does control for a lot of the issues with using PRs in isolation as a holistic view of productivity.

>... whose participants are working for organizations that are heavily invested in future success of AI.

That seems pretty ad hom, unless you want to claim they are faking the data. Along with co-authors who are from premier institutes like NBER, MIT, UPenn, Princeton, etc.

And here's the kicker: they all converge on a similar range of productivity boost, such as the Stanford study:

> https://www.youtube.com/watch?v=tbDDYKRFjhk (from Stanford, not an RCT, but the largest scale with actual commits from 100K developers across 600+ companies, and tries to account for reworking AI output. Same guys behind the "ghost engineers" story.

The preponderence of evidence paints a very clear picture. The alternative hypothesis is that ALL these institutes and companies are colluding. Occam's razor and all that.

Re: If you're going to vibe code, why not do it in C?

#584

Earlier quoted context omitted.

> Software development jobs must be very diverse if even this anti-vibe-coding guy thinks AI coding definitely makes developers more productive. As a Professor of English who teaches programming to humanities students, the writer has had an extremely interesting and unusual academic career [1]. He sounds awesome, but I think it's fair to suggest he may not have much experience of large scale commercial software devel…

That was such a strange aspect. If you will excuse my use of the tortured analogy of comparing programming to wood working, there are is a lot of talk about hand tools versus power tools, but for people who aren't in a production capacity--not making cabinets for a living, not making furniture for a living--you see people choosing to exclusively use hand tools because they just enjoy it more. There isn't pressure abo…

Another key difference is that wood itself has built in visual transparency as to the goodness of the solution - as it is pretty easy to figure out that a cabinet is horrible (I do get that there are defects in wood joining techniques that can surface after some time due to moisture, etc - but still, lot of transparency out of the box). Software has no such transparency built in.

The advantage of hand coded solutions is that the author of the code has some sense of what the code really does and so is a proxy for transparency, vibe coded solutions not so much.

I mean, it is 2025 and still customers are the best detectors of bad software over all quality apparatus to date.

Re: If you're going to vibe code, why not do it in C?

#585

Earlier quoted context omitted.

Following similar thinking, there's no world in which AI becomes exactly capable of replacing all software developers and then stops there, miraculously saving the jobs of everyone else next to and above them in the corporate hierarchy. There may be a human, C-suite driven cost-cutting effort to pause progress there for some brief time, but if AI can do all dev work, there's no reason it can't do all office work to r…

> if AI can do all dev work, there's no reason it can't do all office work to replace every human in front of a keyboard There are plenty of reasons. Radiologists aren’t being replaced by AI because of liability. Same for e.g. civil engineers. Coders don’t have liability for shipping shit code. That makes switching to an AI that’s equally blameless easier. Also, data: the web is first and foremost a lot of code. AI i…

> Coders don’t have liability for shipping shit code

What if you're shipping code for a therac-25?

Re: If you're going to vibe code, why not do it in C?

#586

Earlier quoted context omitted.

Why would I want to have an extra thing to maintain, on top of having to manually review, debug, and write tests for a language I don't like that much?

You don't have to maintain it. LLMs are really good at following direction. I have a custom agent that can take python code, translates it to C, does a refactoring job to include a mempool implementation (so that memory is allocated once at the start of the program and instead of malloc it grabs chunks out of mempool), runs cppcheck, uploads to a container, and runs it with valgrind. Been using it since ChatGPT3 - th…

There's always going to be some maintenance, at the very least the API changes for providers you mentioned, and then there's still the reviews and testing of the C.

A mempool seems very much like a DIY implementation of malloc, unless you have fixed size allocations or something else that would make things different, not sure why I'd want that in the general case.

For "non hacker style" production code it just seems like a lot of extra steps.

Re: If you're going to vibe code, why not do it in C?

#587

Earlier quoted context omitted.

> Rust doesn't prevent programs from having logic errors. Sure, but it prevents memory safety issues, which C doesn't. As for logic bugs, what does prevent them? That's a bigger question but I'd suggest it's: 1. The ability to model your problem in a way that can be "checked". This is usually done via type systems, and Rust has an arguably good type system for this. 2. Tests that allow you to model your problem in te…

Logic errors always stems from lack of understanding and inattention. The former is resolved by good communication and analytical skills. The other is just human nature, but we do have guardrails to help, like static analysis and tests. If used correctly. There are static tools available for C as well. What you get from Rust mostly is that the check is part of the syntax of the language as well and escaping from it i…

> Logic errors always stems from lack of understanding and inattention

Really? Never from limitations of the ability to express your mental model in a way that's formally verifiable? What a strong claim to make.

> There are static tools available for C as well.

For checking the semantics of the code itself? And why discount the fact that a tool being native means it's easier to adopt?

Re: If you're going to vibe code, why not do it in C?

#588
post #400
post #393

Earlier quoted context omitted.

If we take the most popular programming languages and look at what their reference (or most popular) implementations are written in, then we get: C++: JavaScript (V8), Java, C# C: Python, PHP, Lua, Ruby Self-hosted: Go, Rust Far from archaic indeed. We're still living in the C/C++ world.

I thought Rust still used LLVM (a C++ project) for the backend, did they already switch to Cranelift?

I believe they're talking about runtimes, not compilers.

Re: If you're going to vibe code, why not do it in C?

#589
post #303

Earlier quoted context omitted.

How's [0] or [1] for historical sources? It's not surprising that Google doesn't turn these up, the golden era of this complaining was pre-WWW. [0]: https://www.ee.torontomu.ca/~elf/hack/realmen.html [1]: https://melsloop.com/

Have you not noticed that the story you reference is so well know because... literally every single developer thinks people like Mel are crazy? Mel or Terry Adams are the exception to the rule... Having that image of greybeards only come if you have never worked with one in real life, sorry you are biased.

What? Mel is regarded as deserving massive respect, not as crazy. If a developer thinks Mel is nuts, they are coming from a perspective I don't understand.

And yes, the shift to higher level languages like C, FORTRAN, etc., was regarded by some as pandering to the new generation that didn't want to actually learn programming.

With some truth, in my opinion. I think higher level languages bring huge benefits, so I'm not bemoaning their existence. But it still weirds me out when there's a professional developer that doesn't have at least a cursory knowledge of assembly. AI programming assistance (which I'm sure will be very different than today's 'vibe coding') does seem like a similar state change. I certainly don't object to it in principle, it will probably be a large productivity improvement.

But I'm sure that with it, there will be the loss of fundamental knowledge for some people. Like digital artists who never learn the properties of real paint.

Re: If you're going to vibe code, why not do it in C?

#590
I'm trying to build a extremely simple exercise timer app for multiple platforms, and using Gemini and Junie, I Evaluated Rust+Tauri, Cpp+GT, SWIFT+SWIFTUI, Kotlin+MP, and Dart/Flutter, even though I started hating flutter, when started working with Jetpack Compose for KMP, I have to recognize that flutter is the best option for MP. Maturity, Ecosystem, UI+Backend in a single codebase, etc.
Post reply on HN