112 lines?
That's not small, that's microscopic (unless each one is 1MB long - but each #included header file has to go on it's own line...)
Cosmoe is a modern C++ UI library, but it's also a new iteration of a project with roots in one of the most elegant GUIs ever written. Cosmoe pulls off several neat tricks. Although it's a newly announced project, it is surprisingly mature and complete, while being lightweight. Also, for a one-man project, it has pretty good …
I'm pinning this. Looks very interesting.
I have a few GUI apps that I maintain and they are mostly GTK. The direction that GTK is going, I have been seriously considering rewrites to something else.
Porting from GTK2 to GTK3 was a *massive* pain in the arse, especially since some stock controls that they use came with GTK2 were removed.
I'm sure a lot of people going through that process had to go through similar processes of having to implement those controls from scratch themselves, a monumental waste of my valuable time.
And Gtk 3 → Gtk 4 makes 2 → 3 look like a walk in the park.
The core dev cabal at least acknowledges that Gtk 4 was a painful migration, and claim that they've finally gotten things where they want them, so Gtk 5 is promised to be a much more gentle evolution of the toolkit.
Which is nice and all, but small comfort to many since there are still plenty of projects that haven't even made it off Gtk 3 yet. (Including the aforementioned GIMP — even in the wake of their big, 10-years-in-the-making 3.0 release earlier this year, still a Gtk 3 app.) Someday, when Gtk 5 actually exists (it isn't even really started yet) the transition from Gtk 4 may be relatively smooth, but nobody's even pretending that it will be any easier moving from Gtk 3 to Gtk 5 than it is moving to Gtk 4.
Heck, Qt 5 to Qt 6 was nothing compared to your average Gtk porting effort, and there are still tons of people who haven't given up Qt 5 yet. (Granted, a lot of that is about QML, since transitioning from Qt 5 + QtWidgets to Qt 6 + QML/QtQuick IS an endeavor on par with a major-version Gtk upgrade.) But at least for your troubles you actually gain something, there; for all its faults QML is apparently a pretty slick tool for GUI building. Creating interfaces in Gtk is not one tiny bit more comfortable or rewarding today than it was 20 years ago. Everything's changed, multiple times over, but little has really improved for all that change.
I'd just like to see better X11 performance without wheel re-invention to satisfy someone's "feel"... XLibre perhaps?
SO many ways that X11 could be improved on the inside to make it better/faster AND leverage its inherent client/server model... [we'll start with maybe making legacy X11 things load on demand]
And with no graphics showing what this toolkit looks like I suspect it's just another 2D FLATTY Micros~1-Windows-like BLAH-thing ... am I wrong?
(Wayland HIGHLY overrated)
And with no graphics showing what this toolkit looks like I suspect it's just another 2D FLATTY Micros~1-Windows-like BLAH-thing ... am I wrong?
No, you just misunderstand how the internet works.
Hint: the FIRST word in the SECOND paragraph looks different for a reason.
> SO many ways that X11 could be improved on the inside to make it better/faster AND leverage its inherent client/server model...
This.
There are a lot of angry, mostly young, people who think X11 is bad. X11 is not bad. X11 is fine. It does not do the shiny they want. I do not care about the shiny they want. I am perfectly happy for them to add the shiny as long as they do not take away the tools I use.
Saying that, there _is_ allegedly a lot of legacy cruft in X11. There is already a skeletal outline for X12.
https://wiki.freedesktop.org/xorg/Development/X12/
I want to see discussion about _that_.
> [we'll start with maybe making legacy X11 things load on demand]
Start wherever you like. Let's have a wiki page and a message board and start trying to nail down stuff that can go and what must stay.
X11 is not bad. X11 is fine.
It really isn't.
(PS... I am not young... first used X11 at uni in the mid-late 90s).
X11 is a networked windowing system that's not very good at being either a windowing system or a networked windowing system.
Despite being networked from the start it's slow. Compare this to remote dektop, which was a retrospective effort to network the GDI primatives. Remote desktop is usable over links that X cries over.
So it's not a very good networked windowing system..... but at least it's a good windowing system, right?
Well, no, not really. It doesn't actually do anything other than draw windows. It doesn't provide any consistant controls, or any controls at all. Leaving this all up to the 'Window Manager'. This was a concious design choice. (You could argue it fits the Unix 'do one thing well' approach.. but if you follow that logic then you should probably not be having the client/server stuff in there two, as that's also an abstraction that can be built with other tools... again see Winframe..)
Thing is, it's not the 70s anymore, so we can look back on this retrospectivly and see if it worked or not. And it didn't, to this day you can still launch stuff under X and have different windows with entirely different toolkits. (The fact this seems to be spreading to other platforms is not a good point in my eyes... especially in the context of things like accesability).
When I was doing my degree in the 90s the UI module was done using X, even then we were told that only madpeople and the insane actually program directly in Motif. That was the 29 years ago. (Motif was probably the most well known UI toolkit at the time).
Without the level of standardisation you have in a coherant desktop environment, think something like Mac OS or Acorns RISC OS where there's well defined things called 'Look and feel' and actual style guides, there's no consistant look and feel. This is important; just go read this very article to realise how important a well designed and consistant UI toolkit can be. People like Be got this right, NeXT got this right. The X11 people couldn't be bothered so rather than one consistant look and feel and toolkit you ended up with many. Something that still happens to this day.
I'm not making any commentary on alternatives (because you can have an opinion without having a side), but, from a jaded old developers point of view X11 is not 'fine'.
It may be the de-facto standard, but that doesn't make it well designed, and it doesn't mean the design descisions were right or shouldn't be critially apraised.
Also, as it's a complex bit of software, doesn't mean that it doesn't have good points too. (I was very impressed when I learnt it uses 64bit for colours for example... this was in the 90s). But overall, there's much better ways to skin that cat.
And no, before anyone asks... I have not designed and built my own windowing system, I know my limits. so please take my comments with that in mind. (I get in some peoples eyes you're not allowed to be critial of a thing unless you've done a thing... weirdly you are allowed to praise it though... ;) )
https://wiki.freedesktop.org/xorg/Development/X12/
I want to see discussion about _that_.
Hang on....... the main criticisms of wayland seem to be that it doesn't do [the essential but boring stuff] yet... so the solution is to 'start again'? That's fine, but you'll have all the problems with X12 that you have with Wayland until they reach feature parity. (Remember X11 took decades to get where it is now).
"There are a lot of angry, mostly young, people who think X11 is bad. X11 is not bad."
And just this morning I was pining for display postscript and NeWS. ;)
Plan 9's window system 8½ wasn't shiny enough for the angry young men† back in the early 1990s.
I recall building X11R4 and InterViews C++ Toolkit on Sun3 (M68k) workstations/SunOS 4.1 about that time and thinking X11 was a bit clunky and not exactly elegant.
(Was a bit like the recipe for rabbit stew... first catch your rabbit.‡ To get a C++ compiler you had to bootstrap and build the entire GCC/G++ toolchain.)
† slightly less inaccurate then than now.
‡ apparently not actually Mrs Beeton nor the earlier Hannah Glasse. Perhaps from a C14th Latin saying ~ first capture your deer before skinning it ?
There is already a skeletal outline for X12.
https://wiki.freedesktop.org/xorg/Development/X12/
I want to see discussion about _that_.
"Last edited Mon 18 Sep 2017 07:52:26 AM UTC" (And I guarantee the actual content is probably at least 10 years older than that.)
People have been talking about X12 since X11R1. The last pre-X.org release was X11R6, and that was back in the mid-1990s.
People looking to replace X11 with something better looked at X12. Then they decided to build Wayland instead.
They also finished the job and released an actual piece of software, whereas X12 still resolutely fails to exist. Primarily because, like flying cars, X12 might sound pretty neat... but once you really start to dig into it, it turns out to be a terrible idea that nobody should want.
X11 IS bad. What anyone thinks of Wayland shouldn't even be part of that conversation. It's objectively bad. It was bad back in the 1990s when it was last relevant, and 30 years of stagnation has not made it somehow better. It's terrible for video, really terrible for animation, clumsily accelerated at best... really, the only thing it has going for it is the inherently network-oriented client/server model. Which is both (a) of no interest to the 95% of users who will never have any need for that entire featureset, and (b) detrimental to its functionality as a local client display system, since every feature that can be seamlessly used over the wire is another feature that has to maintain abstractions that prevent it from taking full advantage of the local hardware capabilities.
(And I haven't even brought up security, which is effectively nonexistent both locally and over the wire. No, Xauth does not count as security.)