Maybe I'm taking crazy pills, but I swore there have been very similar comments I've seen as the current top post by weakfish:
> Maybe I’m taking crazy pills, but I’m still stuck on “why the hell does a TUI need to run in terminal React by way of JavaScript”
> The fact that Anthropic felt the need to buy a runtime so they could make their TUI better speaks more to the quality of engineering than anything else IMO.
> If rewrites are so easy, why not rewrite CC in a native language? Would’ve been a hell of a lot cheaper.
It turns out, there's some similar sentiments in the last year ish:
Maybe because the 1st thing any experienced technical person would think about? It's like rebuilding and optimizing the racing track to make F1 run faster.
I have ~24 years of experience coding and the LAST thing I think about when opening claude code is "why is this written in react".
Tell you what I sometimes think about though: The fact it has clickable links and complex formatting rules for markdown, the most interactive and highest-quality clickable interface I've ever seen in a terminal, and somehow manages to work. That actually blows my mind.
THEN, I'm reminded that it's written in React, and I think "Huh, guess that does make it a ton easier than using ncurses or something."
You’ve been writing code for 24 years and you don’t know that clickable links are a terminal emulator feature and not a Claude Code feature? Or that “markdown formatting” is just ansi escape codes, and possible with things other than React that don’t bring so many downsides?
It sounds like you completely missed the point I was making: that actually implementing such a highly dynamic TUI application normally requires a significant amount of state tracking and it is significantly easier to write such apps using a functional, descriptive UI framework instead of something like ncurses.
Take it from someone who, in those 24 years, has written UIs in jquery, react and ncurses (and yeah I've tried out Ink and it's great).
"all the downsides that come with that" yeah well, while you're stuck implementing your app in the Best Possible Library, millions of people are happy using claude code and it's crazy useful.
CC is not even that complex of a TUI. It’s certainly not as complex as many of the GUI programs I use daily. And yet it’s by far the buggiest and worst performing. I don’t understand the desire to make excuses for this. The reason people use it is because it’s the only way they can afford to use Opus and Fable. If Anthropic let people use their subs with other harnesses their market share would plummet.
If they could migrate an entire runtime to Rust why can’t they migrate CC? It’s not as if React is the only way to do declarative UI.
There are fantastic TUI frameworks for Rust, like Ratatui[0] (there are a lot more options, this is an example). You can write beautiful TUIs in native languages, without ncurses or C or C++.
Go has such frameworks, same with C# (which you can AOT compile) and so on. You're not stuck between javascript and C.
Yes I also used Bubbletea. I don’t know about ratatui but honestly I think the hate for react is very blind. It’s not like CC is shipping an embedded web browser. It’s a framework on top of an embedded language that has seen a crazy amount of optimisation.
Okay and as someone who would rather just straight up use cursor than claude code, I'd rather have my software not crash out on me every 5 minutes. What sort of self respecting dev purposely uses broken software? Even opencode (use it on nonwork computers) is fully better at this point.
It's not disingenuous, claude code has over 5k issues that are ignore plus thousands of more that were just silent closed.
This is a product by a company worth supposedly $1trillion and they can't even make one of their starship products not shit the bad within 5 minutes? These are the same engineers telling us for the last 3 years that coding is solved?
Like it's pathetic, and it's pathetic you're falling for it too. Have some standards, good grief.
Perhaps. The thing I was trying to highlight more is comments (particularly disapproving ones) about the intersection of JavaScript (especially React, apparently), TUIs, and LLMs.
I just thought it was interesting. I'm a fan of TUIs, both positive and negative about JavaScript (the modern language is quite nice, given you avoid the historical warts, in my opinion - the ecosystem is unfortunate), and I think the best description for how I feel about LLMs is that I'm bearish. Also Simon is a fantastically prolific and intelligent person though, even though LLMs are not my cup of tea.
https://news.ycombinator.com/item?id=48960912 is a recent comment by someone I also respect related to how LLMs recreate human-like content (Widgets, really), making actual human-created content feel fake.
Sometimes it sure does feel like ELIZA is the main news source these days.
It's because rewrites are almost always a bad decision. Best case, it's a naive decision made by people who don't know better, worst case it kills the product (who here uses netscape?).
So, from the start, people will be skeptical of a "we rewrote xyz in Rust" because it rarely works out. But there's a lot more to this, in fact it's a little bit loaded with "tech bro" ideas:
- Rewriting in Rust
- Rewriting using AI
- Making terminal apps in JS
- Zig (a lot of people's dear language) is involved somehow
This attracts every single skeptical developer. The only thing missing is maybe blockchain, if that was still cool. It just hits all the "what? why?" spots.
I was already writing a comment, when I realized that what I wanted to write had already been said by the top comment. I suppose that's why comments read so similarly.
I don't want to edit this to change the narrative, but I wanted to clarify that I'm not not a fan of all of the technologies or people related to this. As far as compan{y,ies} go, though, well..
A hint would maybe be good. You could highlight the first letter and a direction, for example.
The share functionality could be improved. Sharing the score and time to the specific puzzle would be nice.
Also I came back to this thread to comment that this is the most engaging, fun, and satisfying word puzzle game I've maybe ever played. My only complaint is that there aren't more puzzles!
It's so interesting to me how people consider writing bash scripts to be some sort of absurdist gimmick. I've made some scripts like this for blogging, as well as many other things.
It's often not the best choice. There are situations where, I'd argue, it is. One of the main reasons, in my experience, is for very lightweight servers. I don't want python or node or anything. I want to run a web server with 128mb of ram and a 1gb disk. Somewhat niche, but it's useful to just use the base system.
The other useful thing about it is knowing your shell in general. Even if you're not on the infrastructure team, being comfortable knowing how to navigate a system is both fun and sometimes critical. You never know when you'll need it, and it's an interesting look into your tools.
It's akin to saying "why know how to use a saw when you can use a chainsaw" or "why know how to make a fire when you can use lighter fluid and a lighter?" Sometimes things come up. And it's fun to know how we got to where we are today.
Its very niche. This is a static site generator so you could run something a lot heavier and then rsync the output to the server. Even lighter on the server than running bash there.
It is also limited so you might have to add other things. The README suggests using markdown.pl for markdown support.
Another big reason, for me at least, is that the scripts are unlikely to degrade over time.
A process or workflow that involves a 3rd party service or application will have to be modified or reconsidered as the 3rd party's functionality changes, is updated, or disappears.
Probably my favorite thing about the author's posts is that it's all handwritten, vanilla code - as far as I can tell. It seems like all the HTML, CSS, and JS are just plain, standard, universal code. It's one of the few "advanced" sites that just works on an old iPhone 7, for example. So many modern sites that use modern frameworks just don't work anymore.
Also just a huge fan of using the existing infrastructure of browsers - even older ones - in effective ways. Browsers have been quite capable for awhile now.
Millions of people died when a possible solution of "hey, everyone, let's stay inside for a couple weeks" could've possibly effectively eradicated the virus does not seem like a great example of humanity's ability to cope with imminent global existential threats. The potential solution(s) to the massive brick wall we're speeding towards are far more inconvenient than "everyone just hang out for a minute." It's radical change to everything in society.
The comparison with Covid is also striking because the only reason a global "don't travel too much" solution couldn't work is due to the nature of capitalism. It's not like we couldn't feed everyone. It's just that some people with too much wouldn't gain as much for a little bit. Which is the same root cause of why solving climate change is impossible without radical change.
Unfortunately, I don't know the answer. I'm quite certain it's not to maintain the status quo, though.
We exist in a world where the exchange of goods and services is inherently oppressive. Some people draw the line at working for Northrup Grumman, some at RJR, some at Meta, some at Starbucks, and some at the local farm. I'm not one to judge where the line should be - I'm not even sure if there is a moral or ethical line that exists in the system.