This is as much of a rant as a question, for which I apologise.
Basically, I want to make small games that are quite GUI-heavy. Think XCOM, or old-school RPGs. And I want to use higher level languages, such as Python or C#, because life's too short to be writing in C++ if you don't really need to. Unfortunately, what I seem to be finding is that the game libraries and frameworks for any language other that C++ either have no GUI support or what they do have is shockingly bad.
My usual development environment of choice these days is Unity. It has a built-in GUI system, but this is pretty awful to use (unless you're a fan of immediate mode GUIs), lacks a lot of the really useful widgets, is very awkward to style, and renders really slowly.
Unity developers usually therefore resort to 3rd party libraries, but these too are awful in their own different ways. Take NGUI for example: if you want to be able to scroll one panel inside another, it needs to employ a separate shader and you need to place invisible barriers in the interfaceto stop the player from accidentally clicking one of the objects outside the clipped window. Ridiculous.
Another language I would like to use is Python. But pretty much the only modern game engine there is pyglet (or cocos2d, which is based on pyglet) and that doesn't seem to have any decent GUI library at all. kytten exists, but while having a decent selection of widgets, construction of dialogs is very 'fire-and-forget' and it's incredibly awkward to try and modify the GUI later. You end up needing to create the UI in reverse order so that you can hold references to the controls in the middle, in case you need to edit their values.
Yet when you look at C++, there seems to be a lot of decent GUI libraries available: CEGUI, GWEN, SFGUI, libRocket, Awesomnium, etc. It's obviously not impossible to write decent, usable, flexible GUI libraries. Just that nobody is apparently bothering when it comes to the other languages.
Is it any wonder that so many indie games are simple puzzle platformers, when we have 101 different choices for getting sprites onto the screen, and virtually no good options for getting text and dialogues on screen? Am I missing something? Are there some great options out there that I've overlooked? Or is this as big of a problem as I think it is?