← Back to context

Comment by selcuka

12 hours ago

For those who don't want to visit X:

    Most people's mental model of Claude Code is that "it's just a TUI" but it should really be closer to "a small game engine".
    
    For each frame our pipeline constructs a scene graph with React then
    -> layouts elements
    -> rasterizes them to a 2d screen
    -> diffs that against the previous screen
    -> finally uses the diff to generate ANSI sequences to draw
    
    We have a ~16ms frame budget so we have roughly ~5ms to go from the React scene graph to ANSI written.

This is just the sort of bloated overcomplication I often see in first iteration AI generated solutions before I start pushing back to reduce the complexity.

Usually, after 4-5 iterations, you can get something that has shed 80-90% of the needless overcomplexification.

My personal guess is this is inherent in the way LLMs integrate knowledge during training. You always have a tradeoff in contextualization vs generalization.

So the initial response is often a plugged together hack from 5 different approaches, your pushbacks provide focus and constraints towards more inter-aligned solution approaches.

Implementation details aside (React??), that sounds exactly like “just a TUI”…

  • Also React?? One of the slowest rendering front-end libraries? Why not use something … I don’t know … faster / more efficient?

Interesting. On first glance that seems over engineered. I wonder what the reason is for doing it that way?

  • If you don't do it that way then resizing the terminal corrupts what's on screen.

    • It's possible to handle resizes without all this machinery, most simply by clearing the screen and redrawing everything when a resize occurs. Some TUI libraries will automatically do this for you.

      Programs like top, emacs, tmux, etc are most definitely not implemented using this stack, yet they handle resizing just fine.

How ridiculous is it that instead of a command line binary it's a terminal emulator, with react of all things!

  • Ok I’m glad I’m not the only one wondering this. I want to give them the benefit of the doubt that there is some reason for doing it this way but I almost wonder if it isn’t just because it’s being built with Claude.