julesrms
Joined 14 years ago
Joined 14 years ago
Agent UIs are all markdown, HTML, big scrolling lists, text flow, unicode chars, and all the other stuff that C++ frameworks are terrible at, but which is a doddle in HTML/CSS/JS.. You are a brave man!
Honestly, I just don't get the TUI obsession, other than the fact that people are multiplexing many remote sessions over ssh. So my aim with juggler was to have an architecture that could do all the multi-client remote sessions with a GUI/websockets/Y.js sync etc.
I make one (https://github.com/juggler-ai/juggler) and it'll auto-detect and use your claude CLI. I use that claude plan for 90% of my work, plus a bit of GPT, I just prefer to do it inside a nicer, less locked-in environment than claude.
There's really no moat around proprietary closed harnesses, it's trivial to jump between them, but people need to be aware that it's possible!
I'd be interested to hear whether the 'spec' stuff works or not. I've been pondering adding a plugin for juggler based on the fact that we're rubbish at writing specs: so instead, when you prompt it, it'd get the model to list the assumptions that it's making about the task. Then the user can spot and correct any incorrect assumptions, rather than expecting the user to provide correct specs. (Haven't actually tried this yet, just speculating)
But if:
- we're talking about compiled code, where the compiler has already squeezed out all the low hanging fruit in terms of performance
- it's running some kind of external process somehow watching the data flow around in memory, and is figuring out what code is doing what. This is at best incredibly expensive, even if happening in parallel
..then the chances of actually finding useful micro-optimisations that are also safe to patch while running without changing the memory layout and messing up.. is surely pretty close to zero.
I can only assume that it's not actually native code, and they've built some kind of python JIT engine which is finding efficient replacements for chunks of common python, where it starts off so slow that even the massive amount of effort required manages to pay off in a long enough run.
You say "think libc" - are you suggesting they could dynamically recompile bits of libc and do better than LLVM's link time optimiser already did it??
What I assumed was that you'd run this thing on some test runs, as a profiler step, and create an optimised binary. But you say they expect to run your code through an LLM all the time!?
The idea that you could run your code through an LLM (which must surely slow it down 100x at least), and then find enough missed optimisation opportunities to make up for that slowdown is nuts! (Or I've just misunderstood the whole premise!)
Honestly, the places in programs where you can get meaningful performance gain (that isn't already handled by your compiler) is all at the high-level big-O level, and that doesn't require runtime inspection.
Bullies love to force people weaker than themselves do pointless acts like this, just to reassure themselves that they have power over them. I imagine that once enough companies have capitulated to this nonsense, he'll then decide it should become "American Intelligence"
I've written a harness myself and fair enough, it's more complicated than you might expect.. but surely at this point the claude CLI is pretty stable, and this must mainly be a ridiculous amount of test churn.
Or maybe their team of clankers is just creating busy-work to make the humans think they're essential. That's not unheard of in the human behaviours that they're trained on.
The hard bit is when you have complex, responsive layouts involving text. (And styling it)
Something seemingly trivial like an agent-style chat containing markdown text blocks, where it's expandable and smoothly scrollable is insanely difficult. The only frameworks that do this well are browsers, and the amount of horrible, horrible logic hidden inside them to make it look easy is hard to believe.
And since in many agents you're also going to want to display actual HTML, unless you're going to embed a browser engine in your C++ library, that's just not doable.