I've found https://github.com/casey/just to be very very useful. Allows to bind common commands simple smaller commands that can be easily referenced. Good for humans too.
It's not about cutting in to their margins, if they end up scaling up production it will take several years and cost an untold amount of billions. When the AI bubble pops, if there's not replacement deman there's a very real chance of them going bankrupt.
The other funny thing is thinking that the answer the llm produces is wrong. It is not, it is entirely correct.
The question:
> I want to wash my car. The car wash is 50 meters away. Should I walk or drive?
The question is non-sensical. If the reason you want to go to the car wash is to help your buddy Joe wash his car you SHOULD walk. Nothing in the question reveals the reason for why you want to go to the car wash, or even that you want to go there or are asking for directions there.
Sure, from a pure logic perspective the second statement is not connected to the first sentence, so drawing logical conclusions isn't feasible.
In everyday human language though, the meaning is plain, and most people would get it right. Even paid versions of LLMs, being language machines, not logic machines, get it right in the average human sense.
As an aside, it's an interesting thought exercise to wonder how much the first ai winter resulted from going down the strict logic path vs the current probabilistic path.
>you want to go to the car wash is to help your buddy Joe wash HIS car
nope, question is pretty clear, however I will grant that it's only a question that would come up when "testing" the AI rather than a question that might genuinely arise.
Literally the opposite though, as being able to see what it reads allows you to tell it to ignore certain files when you see it read the wrong one, and adjust the claude.md file to ensure that it does not read incorrect files given a specific input.
A lot of more senior coders when they actively try vibe coding a greenfield project find that it does actually work. But only for the first ~10kloc. After that the AI, no matter how well you try to prompt it, will start to destroy existing features accidentally, will add unnecessary convoluted logic to the code, will leave benhind dead code, add random traces "for backwards compatibility", will avoid doing the correct thing as "it is too big of a refactor", doesn't understand that the dev database is not the prod database and avoids migrations. And so forth.
I've got 10+ years of coding experience, I am an AI advocate, but not vibe coding. AI is a great tool to help with the boring bits, using it to initialize files, help figure out various approaches, as a first pass code reviewer, helping with configuring, those things all work well.
But full-on replacing coders? It's not there yet. Will require an order of magnitude more improvement.
It's fine at adding features on a non-vibecoded 100kloc codebase that you somewhat understand. It's when you're vibecoding from scratch that things tend to spin out at a certain point.
I am sure there are ways to get around this sort of wall, but I do think it's currently a thing.
You just have another agent/session/context refactor as you go.
I built a skribbl.io clone to use at work. We like to play eod on Friday as a happy hour and when we would play skribbl.io we would try to get screencaps of the stupid images we were drawing but sometimes we would forget. So I said I'd use claude to build our own skribbl.io that would save the images.
I was definitely surprised that claude threaded the needle on the task pretty easily, pretty much single shot. Then I continued adding features until I had near parity. Then I added the replay feature. After all that I looked at the codebase... pretty much a single big file. It worked though, so we played it for the time being.
I wanted to fix some bugs and add more features, so I checked out a branch and had an agent refactor first. I'd have a couple context/sessions open and I'd one just review, the other refactored, and sometimes I'd throw a third context/session in there that would just write and run tests.
The LLM will build things poorly if you let it, but it's easy to prompt it another way and even if you fail that and back yourself into a corner, it's easy to get the agents to refactor.
It's just like writing tests, the llms are great at writing shitty useless tests, but you can be specific with your prompt and in addition use another agent/context/session to review and find shitty tests and tell you why they're shitty or look for missing tests, basically keep doing a review, then feed the review into the agent writing the tests.
I’m using it in a >200kloc codebase successfully, too. I think a key is to work in a properly modular codebase so it can focus on the correct changes and ignore unrelated stuff.
That said, I do catch it doing some of the stuff the OP mentioned— particularly leaving “backwards compatibility” stuff in place. But really, all of the stuff he mentions, I’ve experienced if I’ve given it an overly broad mandate.
Yes, this is my experience as well. I've found the key is having the AI create and maintain clear documentation from the beginning. It helps me understand what it's building, and it helps the model maintain context when it comes time to add or change something.
You also need a reasonably modular architecture which isn't incredibly interdependent, because that's hard to reason about, even for humans.
You also need lots and lots (and LOTS) of unit tests to prevent regressions.
I've learned with LLM coded apps to break stuff into very small manageable chunks so they can work on the tiny piece and not get screwed by big context.
For the most part, this actually produces a cleaner codebase.
Where are you getting the 10kloc threshold from? Nice round number...
Surely it depends on the design. If you have 10 10kloc modular modules with good abstractions, and then a 10k shell gluing them together, you could build much bigger things, no?
I agree with you in part, but I think the market is going to shift so that you won’t so many need “mega projects”. More and more, projects will be small and bespoke, built around what the team needs or answering a single question rather than forcing teams to work around an established, dominant solution.
Hold up. This is a funny comment but thinking should be free. It’s when they are trying to sell you something (looking at you “all the AI CEOs”) that unsubstantiated claims are problematic.
Then again the problem is that the public has learned nothing from the theranos and WeWorks and even more of a problem is that the vc funding works out for most of these hype trains even if they never develop a real business.
The incentives are fucked up. I’d not blame tech enthusiasts for being too enthusiastic
It's not the public, the general public would like to see tech ceo heads on spikes (first politician to jail Zuckerberg will win re-election for the rest of their short lives) but the general attitude in DC is to capitulate because they believe the lies + the election slush fund money doesn't hurt.
I'm fine with free thinking, but a lot of these are just so repetitive and exausting because there's absolutely no backing from any of those claims or a thread of logic.
Might as well talk about how AI will invent sentient lizards which will replace our computers with chocolate cake.
I wonder if you can up the 10kloc if you have a good static analysis of your tool (I vibecoded one in Python) and good tests. Sometimes good tests aren't possible since there are too many different cases but with other forms of codes you can cover all the cases with like 50 to 100 tests or so
Don't you think it has gotten an order of magnitude better in the last 1-2 years? If it only requires another an order of magnitude improvement to full-on replace coders, how long do you think that will take?
Who is liable for the runtime behavior of the system, when handling users’ sensitive information?
If the person who is liable for the system behavior cannot read/write code (as “all coders have been replaced”), does Anthropic et al become responsible for damages to end users for systems its tools/models build? I assume not.
How do you reconcile this? We have tools that help engineers design and build bridges, but I still wouldn’t want to drive on an “autonomously-generated bridge may contain errors. Use at own risk” because all human structural engineering experts have been replaced.
After asking this question many times in similar threads, I’ve received no substantial response except that “something” will probably resolve this, maybe AI will figure it out
Who is responsible now when human coding errors leak user's sensitive information? I'm not seeing programmers held up as the responsible party. The companies who own the code are vaguely responsible, so it will be the same.
The bridge scenario is simply addressed: Licensed Engineer has to approve designs. Permitting review process has to review designs. Not sure it matters who drafted them initially.
So perhaps this is just semantics - when we say that “coders have been completely replaced”, to me that means all humans capable of reading/writing code are replaced. In the bridge analogy this is the Licensed Engineer who actually understands and can critically evaluate a system design/implementation in depth.
If the only point being made by “all coders are replaced” is that humans aren’t manually typing the code from their keyboard anymore, I don’t think there’s much interesting to argue there, typing the code was never the hard part.
You’re right, but on the other hand once you have a basic understanding security, architecture, etc you can prompt around these issues. You need a couple of years of experience but that’s far less then the 10-15 years of experience you needed in the past.
If you spend a couple of years with an LLM really watching and understanding what it’s doing and learning from mistakes, then you can get up the ladder very quickly.
I find that security, architecture, etc is exactly the kind of skill that takes 10-15 years to hone. Every boot camp, training provider, educational foundation, etc has an incentive to find a shortcut and we're yet to see one.
A "basic" understanding in critical domains is extremely dangerous and an LLM will often give you a false sense of security that things are going fine while overlooking potential massive security issues.
Somewhere on an HN thread I saw someone claiming that they "solved" security problems in their vibe-coded app by adding a "security expert" agent to their workflow.
All I could think was, "good luck" and I certainly hope their app never processes anything important...
Found a problem? Slap another agent on top to fix it. It’s hilarious to see how the pendulum’s swung away from “thinking from first principles as a buzzword”. Just engineer, dammit…
But if you are not saving "privileged" information who cares? I mean think of all the WordPress sites out there. Surely vibecoding is not SO much worse than some plugin monstrosity.... At the end of the day if you are not saving user info, or special sauce for your company, it's no issue. And I bet a huge portion of apps fall into this category...
> If you spend a couple of years with an LLM really watching and understanding what it’s doing and learning from mistakes, then you can get up the ladder very quickly.
I don't feel like most providers keep a model for more than 2 years. GPT-4o got deprecated in 1.5 years. Are we expecting coding models to stay stable for longer time horizons?
As someone living in the Nordics my experience already with central Europeans and especially so Americans is that these cultures are already much more high context than the Nordics. I guess up here we're all borderline autistic?
I've done business the other way around, Western Europe with Finland. I think it's just different context? There are unwritten customs and meanings in Finland as well, just different ones.
Even UK vs Netherlands is a significant difference in how things work in business deals and that's just a 45 min flight. Unspoken expectations are different on how the other side is supposed to behave.
I have observed the same across a bunch of linguistically Germanic countries (DE, AT, CH, NL, DK, NO, haven't been to SE, didn't observe it in IS), and I thought of it as "cultural autism." Apparently "higher context" is the politically correct way to say it. Now I know!
Danish and Norwegian are not linguistically Germanic. If anything, German has more old Norse influences. And dutch.. Well, dutch is the illegitimate child of england and germany.
>Danish and Norwegian are not linguistically Germanic
Where do you get that notion? My education (and some googling to refresh my memory) has Norwegian, Swedish and Danish classed as "North Germanic" according to comparative linguistics. That is one subset of the West Germanic languages which most of northern Europe speaks.
reply