Sure, but the original comment was more like “flawed solution that exists” vs “decent solution that exists”, i.e. vibe-coding can't replace developers yet, not even mediocre ones, wasn't it?
P.S. Again, it all boils down to AGI not being with us yet. I guesstimate that AI writes at least 95% of my code, but given how often LLMs come up with inefficient or ineffective solutions, I'd never entrust my reputation to a vibe-coded app. Startups may have little to lose vs much to gain from a shorter time to market, but an established company?
Mmm... People may overlook a glitch here and there, but judging by reviews on app stores, it seems to me that people get very annoyed when things break, especially when it happens at the worst possible time.
As for AI fixing things... Sure, at least for a while. But in my experience, AI can hit a wall and start going in circles. It doesn't happen often, but it can happen. And when it does, what recourse will you have for fixing the tangled mess that vibe coding tends to produce?
Sure, but how confident can they be that it doesn't also do things they don't want?
Tests can't be exhaustive, whereas even a mediocre developer is likely to possess enough background knowledge to notice risks that a non-developer would not think to test.
Some people keep forgetting that we haven't reached AGI yet. These tools can still make serious and sometimes obvious mistakes. Not long ago, vibe-coded software could embed credentials directly. That particular blunder seems to have been addressed, but there is still no reliable way to tell an LLM to avoid every class of obvious blunder.
Yes, C# is becoming more and more complex, but IMO C++ is still in a class of its own. Just compare how many different, sometimes competing ways there are to initialize variables in C++, each with its own subtleties.
I guess we'll have to agree to disagree here. And of course, even if C++'s user base seems to be shrinking, it still works well for some categories of programmers.
Not really. C++ is on another level altogether: the code could be calling implicit conversion operators, the compiler could have instantiated some template code in an unforeseen way, and so on.
Years ago, I was really proficient in C++, but after a year of programming in C#, I realized that not once had the behavior of my code caught me off guard. In the following years, I only ran into quirky behavior a couple of times. I could finally program without the constant mental overhead of watching out for C++ pitfalls.
> y'know you can check if an operator has been overloaded
And there lies the problem with C++: to be sure, you have to check. C++ code can't be taken at face value -- the most innocuous-looking code could be a ticking bomb.
So, Greenspun's Tenth Rule seems to have come full circle: now, "Any sufficiently complicated Coalton program contains an ad hoc, slow implementation of half of OCaml." ;)
I've left out "informally specified, bug-ridden" because I guess that's not the case for Coalton, but kept "slow" for when Coalton is used on a slower CL implementation.
> The main difference between my workflow and the authors, is that I have the LLM "write" the design/plan/open questions/debug/etc. into markdown files, for almost every step.
>
> This is mostly helpful because it "anchors" decisions into timestamped files, rather than just loose back-and-forth specs in the context window.
Would you please expand on this? Do you make the LLM append their responses to a Markdown file, prefixed by their timestamps, basically preserving the whole context in a file? Or do you make the LLM update some reference files in order to keep a "condensed" context? Thank you.