Gotta give it to Claude Code developers: they are exceptionally brave. I would’ve been straight up embarrassed to show stats like this.

Reminder: Claude Code is a thin CLI client that reads input from your terminal, sends it to Antrhopic servers and prints back the response.

@[email protected] well, this made me laugh, thanks

@nathanael @nikitonsky

"Too Lazy to Learn ncurses :
an Ode to a Burning World"

@nikitonsky It's rather pathetic isn't it? You can see how little idea they have of how software works in the wider world.
@nikitonsky They occasionally boast that claude is entirely written with claude and idk, sometimes it’s easy to believe them.
@nikitonsky chances are high a LM came up with that brilliant solution
@nikitonsky I heard about this "game engine" design the other week and I've been unable to find anyone who can come up with a reason why they designed it this way. I'd love to hear the rationale behind it...

@dandb people discovering rendering for the first time: it’s like game engine!

It’s not like game engine, of course, by any means. Game engines would chew this load in 0.01 ms

@dandb @nikitonsky "we only know react and our slop machine only knows react and we are incurious and incapable of learning anything new"
@dandb @nikitonsky maybe it's just because they are really fucking stupid...
@nikitonsky They might be playing games, but I'm not having fun
@nikitonsky @Girgias that graph has to be trolling, right? How do you even get a terminal client to do no real work but use 68 GB of RAM‽

@odo mention of React should give you a hint

@nikitonsky @Girgias

@odo @nikitonsky @Girgias Not doing real work but wasting resources describes a lot of these LLM huckster developers, too.
@nikitonsky
> thin CLI client
ehhh 
@despicable_me what? Is it not?
@nikitonsky oh, it absolutely is in terms of features, I meant not thin with memory usage and stuff like https://github.com/anthropics/claude-code/issues/22543
Cowork feature creates 10GB VM bundle that severely degrades performance · Issue #22543 · anthropics/claude-code

Description After using the cowork feature, Claude Desktop becomes extremely slow - slow startup, UI lag, and slow responses. Performance degrades over time even during a single session. Investigat...

GitHub
@nikitonsky what is this witchery described in the tweet? Does it render and show GUI mockups in graphic mode or something?
@shuro nobody knows. It’s all vibe coded
@nikitonsky why on earth would you want React in a TUI?
@dandylyons @nikitonsky the main use of LLMs is to very easily do things nobody should want

@sanityinc
something something... digging a hole and filling it up... something something... rat race.

@dandylyons @nikitonsky

@dandylyons @nikitonsky
As a guess, because it's the language and tool you know.

The resource usage is completely ridiculous of course.

But if you squint a bit, it's a JS interpreter and some support libraries in a container. Switch JS+React -> Python+stdlib and the idea (not the implementation!) doesn't look quite as outrageous any longer.

@nikitonsky @siracusa you thought electron was bad, welcome to vibe coded everything
@vmachiel @nikitonsky @siracusa 😅 hey I think we’re gonna need more RAM, oh wait— 🤦‍♂️
@nikitonsky "We only suck a *lot* now, you have no idea how bad we used to be we were so much worse!" is... well, I suppose if that's what you've got to work with you do the best you can. I mean, I'm not sure that's a brag *I'd* make but that's just me.
@nikitonsky
Never came to my mind my #neovim is a small game engine 😀. Except the fact that the full setup with attached gopls, jdtls and node for Copilot eats less RAM than Claude Code itself.
@nikitonsky I think that is saying that the react stuff is client side.

@nikitonsky Www...what? Sorry am I reading this correctly? Claude Code - a command line app - renders its responses in *React* and then converts that to ANSI for the terminal to display?

Please tell me I miss understand

@gabesalkin no, this is correct
@nikitonsky The reporting is correct. The practice is laughably double-plus-ungood. @gabesalkin

@gabesalkin
It's okay, really. React != React-dom.

@nikitonsky

One of those cases where “they should have built it with Rust” actually makes a lot of sense. Ratatui is right there..
@nikitonsky @siracusa 1.7 GB is still a disaster 🤷🏼‍♂️
@mikaeleiman @nikitonsky @siracusa exactly! They are so proud of it though 😂
@nikitonsky dwai coding is solved

@nikitonsky I'm aghast at the first one. What.

That's... That's the kind of shit you do to send graphics to some dinky MCU with an epaper screen so it vaguely looks like a Home Assistant dashboard, not... This shit.

I mean the second too but like the chain of X-Y problems leading to the first one just... What.

@KayOhtie @nikitonsky scene graph... SCENE GRAPH.... **ITS TEXT**...
@gabu @nikitonsky this is what happens when you can only write electron+react I guess

@gabu @KayOhtie @nikitonsky It's not as crazy as it sounds. Many TUI apps use libncurses to perform the same ANSI command optimization, as well as maintain a list of virtual windows including their positions (i.e. a scenegraph).

However, it's highly unusual that the scenegraph is constructed using React.

@kakurady @gabu @nikitonsky specifically, the idea of constructing something using react, and then flattening it to an image to then convert to ASCII to send back to the terminal.

That's where the absolute absurdity starts to really kick in. You can kind of use whatever the hell you want to actually assemble the output, but the idea of relying on flattening something to an image to then convert to ASCII is just beyond me. That's over-reliance on modern tooling to the point you can't do anything older.

@KayOhtie @gabu @nikitonsky I think their use of the word "rasterization" doesn't necessarily mean outputting to pixels, in the computer graphic sense. It probably just mean creating a buffer of terminal cells to be displayed, from a description of interface elements.

But I do also think there may be a delusion that the problem they are solving is unique and require a bespoke solution, while in truth this is a common problem for which there are existing solutions.

@kakurady @KayOhtie @gabu @nikitonsky

The guy from the billion dollar company is boasting about how his terminal app operates like a video game, to an audience of programmers.

I think it's fair to take his usage of computer graphics terminology at face value given the context.

Awesome looking suit, btw.

@nikitonsky The first one is so nonsensical to me I do not even understand what it should be doing
@Ripp_ @nikitonsky Imagine ncurses, but much more shittier.

@nikitonsky

> claude is a compiler
> claude is a vm
> claude is a game engine
> claude is my boyfriend
> "i know it's too expensive for this use case but it will GET SO CHEAP VERY SOON"

claude fans really love claude

@nikitonsky

That's the kind of trash we used to see in Flash.

@nikitonsky Oh so it's just ncurses with extra steps.
@nikitonsky Wait, isn't it just Electron? Is he just trying to describe how browser renderers work? Or did they actually go and write something bespoke on top of Electron?
@theorangetheme @nikitonsky it runs React in the terminal so it's as crappy implementation as it can be.
@nikitonsky It reminds me of when someone at MS wrote a blog post about how MS Teams now only took seven seconds to start up
@nikitonsky Fucking clowns ... 🤣

@nikitonsky this is literally the description of (n)curses, a library used since 1978 to make portable and efficient updates to a text terminal:

"The programmer sets up the desired appearance of each window, then tells the curses package to update the screen. The library determines a minimal set of changes that are needed to update the display and then executes these using the terminal's specific capabilities and control sequences [Wikipedia: curses programming library]"

That they used something like React for the "frontend" is both hilarious and sad at the same time...

@nikitonsky Couldn't the text rendering in the "game engine" be accelerated using a GPU ? In the "thin" client (thin because it doesn't run on a nuclear powerplant like the servers), of course. I'm sure Claude will agree

@nikitonsky

It seems they are using https://github.com/vadimdemedes/ink, at least according to that projects README. Which also lists Gemini and Copilot CLI as users.

I find that fact makes this even more bizarre, because they didnt even write the thing they seem to be bragging about here.

@nikitonsky As someone that writes "game engines" this elicits a hard eye roll.

People often make game engines out to be rocket science and yet they are often exercises in restraint or simply doing less.

This is the polar opposite. Someone polishing a turd and then patting themselves on the back by comparing it to something they seem to not understand.