logoalt Hacker News

schnebbautoday at 11:23 AM4 repliesview on HN

This has happened to my side project too. There's so much going on in the code now that I can't possibly grok it to make changes safely by myself any more. But I think that's OK. Because I don't have to grok it anymore.

I've been crafting beautiful code for almost 20 years - that itch is scratched. Now I just want to be productive and build cool stuff. AI is helping me make a better end-product in a fraction of the time. As long as codex understands what's going on in the ball of spaghetti, there's no problem. Sure - if I was working in enterprise then this is no good. But for personal projects and small indie shops, it's fine.

AI is just a new layer on top of the stack now. In the same way high-level languages are a layer on top of writing machine code manually. You just need to let go.


Replies

doginasuittoday at 1:14 PM

Anything built this way will have a hard limit on the ability to scale in terms of functionality and load. Eventually it will get to a point where not even AI can work with it.

It is hard to me to fathom why anyone would find those limits acceptable, especially with years of experience writing code. It seems something like an experienced painter giving up on their art to doodle with crayons, and maybe that could be cathartic. Maybe you get experience with other aspects of your craft.

show 3 replies
adamddev1today at 12:09 PM

> In the same way high-level languages are a layer on top of writing machine code manually.

Another layer, yes, but NOT "in the same way." It is a new, different kind of layer. The other layers were deterministic, not probabilistic.

show 2 replies
ThePhysicisttoday at 12:37 PM

Interesting point about "letting go". I hear that quite a lot, which I find surprising. In IT, when new technologies like cloud computing emerge people always need to adapt their workflows, and for some that is challenging e.g. going from manually maintained servers to virtual machines or containers that are just spun up and down on demand. Maybe it is similar with AI, we gain new capabilities along one dimension like speed of development and we lose some capabilities along the way e.g. manual control of quality. And of course there are large financial incentives here as well, maybe they are larger than we have ever seen before and the change also happens faster. Cloud computing took probably multiple decades to be fully adopted (I think AWS became available in 2006 and we still see large corporations migrating to the cloud from their on premise setups today, though the adoption curve is flattening), LLMs have significantly higher adoption after only around 2-3 years of them becoming "production-ready". So naturally people struggle with how to adopt them and we need to figure out where they make sense and where not. That said it's precisely an engineers' job to figure that out, people that just see the upsides of this technology seem quite naive to me.

I can see this struggle it in my organization as well, in the last year there was a big push to adopt AI everywhere and tons of initiatives to automate processes and produce code and text and other artefacts with LLMs. Now it seems the pendulum is swinging back a little as people see that all of the LLM generated stuff shows all of these subtle quality degradations, and people get tired of managing it as they are suddenly confronted with tons of additional information they need to manage.

Given that models are still evolving and becoming better at a rapid pace I think that we will solve most of these issues in the near future, but for now I don't think the age of hand crafted code is over yet.

I have been thinking about that machine code analogy before as well, I don't think it really holds. Machine code is written in an automated way but following mostly deterministic rules that have been crafted through decades of manual optimizations and testing. AI generated code has nowhere near this level of scrutiny, testing and optimization behind itself. The fault rate of compilers and optimizers is incredibly small (I can't find any numbers but it must be on the order of ppm or ppb), AI generated code has fault rates that are even in the best case on the order of 99-99.99 % maybe (i.e. between one error per hundred lines and one error per ten thousand lines in the best case), try building anything complex using such a fault rate without manual correction and review. It's impossible. I have done it, I dabbled with writing a compiler, a database and even a simple web framework from first principles. I didn't get far, even though I had good mental models of these things and I carefully wrote RFCs and documents for the LLM, specified test cases etc... If you're lucky it will regurgitate some existing code or follow documented guidelines, but when you're on new territory these models won't be able to produce anything good. I would really like to see a single example of someone vibe coding a high quality library or tool with LLMs, I haven't found anything and no one can point me to a complex codebase (say 10,000 lines or more) that was generated using high level prompts that looks decent and doesn't have multiple glaring issues that appear when looking at it in detail.

show 1 reply
fatata123today at 11:46 AM

[dead]