5 ms·
> 500k lines of code Isn't it a simple REPL with some tools and integrations, written in a very high level language? How the hell is it so big? Is it because i
by ernst_klim 6mo ago
> 500k lines of code
Isn't it a simple REPL with some tools and integrations, written in a very high level language? How the hell is it so big? Is it because it's vibecoded and LLMs strive for bloat, or is it meaningful complexity?
- fragmede 6mo agoHow many LoC should it be, for that kind of program?
- troupo 6mo agoIt's a TUI API wrapper with a few commands bolted on. I doubt it needs to be more than 20-50kloc. You can create a full 3D game with a custom 3D engine in 500k lines. What the hell is Claude Code doing?
- spiderfarmer 6mo agoComments like these remind me of the football spectators that shout "Even I could have scored that one" when they see a failed attempt. Sure. You could have. But you're not the one playing football in the Champions League. There were many roads that could have gotten you to the Champions League. But now you're in no position to judge the people who got there in the end and how they did it. Or you can, but whatever.
- boomskats 6mo agoI don't think this is warranted given that the comment you're criticising is simply expressing an opinion explicitly solicited by the comment it's responding to.
- troupo 6mo ago> Sure. You could have. But you're not the one playing football in the Champions League. The only reason people are using Claude Code is because it's the only way to use their (heavily subsidized) subscription plans. People who are okay with using and paying for their APIs often opt out for other, better, tools. Also, analogies don't work. As we know for a fact that Claude Code is a bloated mess that these "champions league-level engineers" can't fix. They literally talk about it themselves: https://news.ycombinator.com/item?id=47598488 https://news.ycombinator.com/item?id=47598488 (they had to bring in actual Champions League engineers from bun to fix some of their mess).
- spiderfarmer 6mo ago"Even I would have scored that goal" == "I would never ever have created a bloated mess like Anthropic" You just repeat the same statement. That bloated mess is what got them to the Champions League. They did what was necessary to get them here. And they succeeded so far. But hey, according to some it can be replicated in 50k lines of wrapper code around a terminal command, so for Anthropic it's just one afternoon of vibe coding to get rid of this mess. So what's the problem? /s
- troupo 6mo ago> Even I would have scored that goal" == "I would never ever have created a bloated mess like Anthropic" Since you keep putting words in my mouth that I never said, and keep being deliberately obtuse, this particular branch is over. Go enjoy Win11 written by same level of champions or something. Adieu.
- sarchertech 6mo agoIt’s more like “Player A is better than Player B” coming from a professional player in a smaller league who is certainly qualified to have that opinion.
- vardalab 6mo agoYes, exactly. I like this analogy. I am surprised the level of pearl clutching in these discussions on Hacker News. Everybody wants to be an attention sharecropper, lol.
- criley2 6mo agoHonest question: Why does it matter? They got the product shipped and got millions of paying customers and totally revolutionized their business and our industry. Engineers using LOC as a measure of quality is the inverse of managers using LOC as a measure of productivity.
- raincole 6mo agoIt doesn't. LoC is only meaningful when you use it to belittle others' code.
- ulbu 6mo agohehe, belittle (to make smaller)
- troupo 6mo ago> Honest question: Why does it matter? Because it's unmaintainable slop that they themselves don't know how to fix when something happens? https://news.ycombinator.com/item?id=47598488 https://news.ycombinator.com/item?id=47598488
- deleted 6mo ago[deleted]
- sumtechguy 6mo agoIt will be exactly that. But that is a 'them' problem. I can look at it a go 'that looks like a bad idea' but they are the ones who have to live with it. At some point someone will probably take their LLM code and repoint it at the LLM and say 'hey lets refactor this so it uses less code is easier to read but does the same thing' and let it chrun. One project I worked on I saw one engineer delete 20k lines of code one day. He replaced it with a few lines of stored procedure. That 20k lines of code was in production for years. No one wanted to do anything with it but it was a crucial part of the way the thing worked. It just takes someone going 'hey this isnt right' and sit down and fix it.
- neurostimulant 6mo agoJust check the leaked code yourself. Two biggest areas seem to be the `utils` module, which is a kitchen sink that covers a lot of functionality from sandboxing, git support, sessions, etc, and `components` module, which contains the react ui. You could certainly build a cli agent with much smaller codebase, with leaner ui code without react, but probably not with this truckload of functionality.
- cogman10 6mo agoThey are doing some strange "reinvent the wheel" stuff. For example, I found an implementation of a PRNG, mulberry32 [1], in one of the files. That's pretty strange considering TS and Javascript have decent PRNGs built into the language and this thing is being used as literally just a shuffle. [1] https://github.com/AprilNEA/claude-code-source/blob/main/src/buddy/companion.ts#L16 https://github.com/AprilNEA/claude-code-source/blob/main/src...
- neurostimulant 6mo agoWell, at least that confirms they weren't lying when they said all recent updates to claude code were made by claude. You certainly won't do this stuff if you were writing the code yourself.
- hombre_fatal 6mo agomulberry32 is one of the smallest seedable prngs. Math.random() is not seedable. If you search mulberry32 in the code, you'll see they use it for a deterministic random. They use your user ID to always pick the same random buddy. Just like you might use someone's user ID to always generate the same random avatar. So that's 10 lines of code accounted for. Any other examples?
- hombre_fatal 6mo agoSoftware doesn’t end at the 20k loc proof of concept though. What every developer learns during their “psh i could build that” weekendware attempt is that there is infinite polish to be had, and that their 20k loc PoC was <1% of the work. That said, doesn't TFA show you what they use their loc for?
- sarchertech 6mo agoI think that’s why the author was comparing to to a finished 3D game.
- hombre_fatal 6mo agoI guess because you see 3D stuff in a 3D game instead of text, people assume that it must be the most complex thing in software? Or because you solve hard math problems in 3D, those functions are gonna be the most loc? It's a completely different domain, e.g. very different integration surface area and abstractions. Claude Code's source is dumped online so there's probably a more concrete analysis to be had than "that sounds like too many loc".
- sarchertech 6mo agoIt is a different domain but that wasn’t your argument. Your argument was that someone was comparing it to a POC when in fact they were comparing to a finished product. Also a AAA game (with the engine) with physics, networking, and rendering code is up there in terms of the most complex pieces of software.
- hombre_fatal 6mo agoThey just claimed that you can build a 3D game in 500k loc, thus Claude Code shouldn't use so many loc. They/you didn't render the argument for that. For example, without looking at the code, the superstition also works in the opposite direction: Claude Code is an interface to using AI to do any computer task while a 3D game just lets you shoot some bad guys, so surely the 3D game must be done in fewer loc. That's equally unsatisfying. You'd have to be more concrete than "sounds like a lot".
- gbibas 6mo ago[dead]
- forgotpwd16 6mo agoOther notable agents' LOC: Codex (Rust) ~519K, Gemini (TS) ~445K, OpenCode (TS) ~254K, Pi (TS) ~113K LOC. Pi's modular structure makes it simple to see where most of code is. Respectively core, unified API, coding agent CLI, TUI have ~3K, ~35K, ~60K, ~15K LOC. Interestingly, the just uploaded claw-code's Rust version is currently at only 28K. edit: Claude is actually (TS) 395K. So Gemini is more bloat. Codex is arguable since is written in lower-level language.
- ernst_klim 6mo agoWell FFmpeg is roughly 1500k, but it's C+Asm and it's dozens of codecs and pretty complex features. SBCL is around 500k I guess. I'm not saying that this is necessarily too much, I'm genuinely asking if this is a bloat or if it's justified.
- spiderfarmer 6mo agoI don't know if you're mindlessly repeating the HN trope that JS/typescript/Electron is bad and that all bloat can easily prevented, but if you're truly interested in answers to your questions: RTFA.
- carterschonwald 6mo agoyeah its honestly full of vibe fixes to vibe hacks with no overarching desig. . some great little empirical observations though!i think the only clever bit relative to my own designs is just tracking time since last cache ht to check ttl. idk why i hadnt thought of that, but makes perfect sense
- deleted 6mo ago[deleted]
- samusiam 6mo agoI just checked competitors' codebases: - Opencode (anomalyco/opencode) is about 670k LOC - Codex (openai/codex) is about 720k LOC - Gemini (google-gemini/gemini-cli) is about 570k LOC Claude Code's 500k LOC doesn't seem out of the ordinary.
- johnisgood 6mo agoAll of them are really, REALLY bad.
- surajrmal 6mo agoBad by whose definition? They work really well in my experience. They aren't perfect but the amount of hand holding has gone down dramatically and you can fix any glaring problems with a code review at the end. I work on a multimillion line code base which does not use any popular frameworks and it does a great job. I may be benefiting from the fact that the codebase is open source and all models have obviously been trained on it.
- oblio 6mo agoAt least Gemini and Claude constantly break down with scrolling in various Linux terminals, something which was solved by countless TUIs decades ago. I think a lot of the people prasing Claude & co are on Macs.
- johnisgood 6mo agoMost of their issues have been solved a long time ago, with 1000x less code. It is depressing at this point. I really had no clue IT was in the shitters this much. I knew it was theatrical but I had no idea that it was by this much.
- geodel 6mo agoAll these AI tools teams have most valid excuse "We are just a bunch of people who only know Javascript/typescript/NodeJS. Please bear with us while we resolve 10,000 open issues."
- ale 6mo agoThere’s probably a subconscious incentive to make a tool that’s “complex” because the underlying LLM also is complex.