> and all the other stuff that C++ frameworks are terrible at, but which is a doddle in HTML/CSS/JS
This is very interesting. I know that coding string-related stuff with C/C++ can be incredibly tedious and error prone (even hard security-wise). But all the stuff in the web-related stacks/libraries in other languages, is either already somehow being transcompiled to C to execute, or could be relatively easily ported/reused by directing an LLM/agent to do it
Do you think that could work to make C/C++ better at this? What things would you import/copy from elsewhere?
Strings are trivial in C++. Drawing 2D graphics is fine, many libraries do it. Creating old-fashioned component frameworks (like Qt, JUCE, etc) is easy. I implemented all those things on my own, decades before AI.
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.
Thank you for the insightful explanation
> 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.
I guess this is the main issue. Either you end up reimplementing a browser (which will def have a ton of issues), or you embed a browser and you end up with bloat anyway
You don't need a full browser or a full HTML implementation. You just need enough HTML support for markdown converted to HTML and wxWidgets has that level of support for HTML backed in. I've never seen an LLM generate HTML without it being explicitly told to do so, so I don't know where this notion comes from that full HTML/CSS/JS support is needed to render LLM text outputs.