6 ms·
It'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 500
by troupo 7mo ago
It'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 7mo 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 7mo 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 7mo 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 7mo 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 7mo 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 7mo 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 7mo 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 7mo 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 7mo agoIt doesn't. LoC is only meaningful when you use it to belittle others' code.
- ulbu 7mo agohehe, belittle (to make smaller)
- dandellion 7mo agoMore code means more entropy, more room for bugs, harder to find issues, more time to fix, more attack surface, more memory used, more duplication, more inconsistencies... I bet you at some point we'll get someone reporting how AI performance deteriorates as the code base grows, and some blog post about how their team improved the success of their AI by trimming the code base down to less than 100k LOC or something like that. The principles of good software don't suddenly vanish just because now it's a machine writing the code instead of a human, they still have to deal with the issues humans have for more than half a century. The history of programming is new developers coming up with a new paradigm, then rediscovering all the issues that the previous generation had figured out before them.
- criley2 7mo agoThe history of programming is also each generation writing far less performant code than the one before it. The history of programming is each generation bemoaning the abstractions, waste and lack of performance of the code of the next generation. It turns out that there is a tradeoff in code between velocity and quality that smart businesses consider relative to hardware cost/quality. The businesses that are outcompeting others are rarely those who have the highest quality code, but rather those that are shipping quickly at a quality level that is satisfactory for current hardware.
- neurostimulant 7mo 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 7mo 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 7mo 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 7mo 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 7mo 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?
- mpalmer 7mo agoCheck out `print.ts` to see how "more LOC" doesn't mean "more polished"
- hombre_fatal 7mo agoOkay, I'm looking at it. Now what? This file is exactly what I'm talking about. Take the loadInitialMessage function: It's encumbered with real world incremental requirements. You can see exactly the bolted-on conditionals where they added features like --teleport, --fork-session, etc. The runHeadlessStreaming function is a more extreme version of that where a bunch of incremental, lateral subsystems are wired together, not an example of superfluous loc.
- mpalmer 7mo agoThe file is more than 5000 lines of code. The main function is 3000. Code comments make reference to (and depend on guarantees in connection with) the specific behavior of code in other files. Do I need to explain why that's bad?
- hombre_fatal 7mo agoBy real-world polish, I don't mean refining the code quality but rather everything that exists in the delta between proof of concept vs real world solution with actual users. You don't have to explain why there might be better ways to write some code because the claim is about lines of code. It could be the case that perfectly organizing and abstracting the code would result in even more loc.
- 7mo ago
- gbibas 7mo ago[dead]