Say what you want but for modern UI localization and accessibility are part of minimum feature set. Those two massively increase complexity (UTF8, IME, Braile, Text to speech, etc.)
The big issue I'm talking about is cross OS UI Toolkit. Great your UI supports IME on Windows and Mac. Now do that for Linux, BSD, etc.
I'm talking about accessibility and localization as part of a GUI toolkit.
Take localization. Any doofus with CSV and regex can localize a binary. How do you localize dynamic things like "Hi (Sir) PJMLP, you have (0 unread messages)"?[1]
In JS I can always Intl.PluralRules. Where are my Plural rules in say C#'s Avalonia (or whatever GUI is hot in C# these days, I can't keep track)?
The issue isn't a checklist; it's a quality of availability [2]. The complexity there is essential, because languages are complex beasts, and mitigations for disability are getting better and hence more complex[2].
[1] Why is localizing this a problem? Some languages are language neutral, some have honorific speech, which changes other words, and some have different ways of counting (Hello Welsh. Nice that you have ordinals for zero, one, two, few, many, and more), some have genders, some don't, some have but don't use it in some cases, ad infinitum.
[2] There is a huge Mariana Trench in the quality of accessibility for software that offers a magnifying glass and software that offers text-to-speech.
Sure. Show me how Windows 3.* supported Unicode, i18n (internationalisation), l10n (localisation), a11y (accessibility), with special focus on CLDR plural rules.
Which will be interesting since Unicode 1.0 came around 1991. And CLDR in 2003. And Windows 3.x came in 1990.
I'm not saying it is impossible, just highly unlikely MSFT implemented those as early in 3.x. They could have taken part in those early efforts.
If you are so keen in Windows 3.x, remember before standards each OS did its own thing, and I can gladly show you the proprietary APIs used by Windows 3.x.
For someone using a GUI toolkit, there is a massive difference between "invent and integrate your own" and "it comes pre-installed".
I'm saying the reason modern cross platform GUIs are hard is that the developer and user preferences have changed. Developers want GUIs that come with many bells and whistles.
This raises the bar for minimal implementation from - "it will take one guy two weeks to implement" to "it will take a huge group decades of effort to implement."
And that's JUST the implementation. At any point, you also face an adoption cliff. Sure, your super layout engine (SLE) might automatically layout stuff, but Josh here doesn't know SLE, he knows CSS.
Yeah but whatever the browser provides, the OS can also provide. You don't have to reinvent a browser when you code outside of it. Anyway, this conversation had slipped out of the window. Web app UI programming tools still suck compared to what we had 25 years ago and say what you will, there's NO good reason for that.
Which OS? This is talk about cross-platform GUI toolkit.
My point was, "Why X language sucks at cross-platform GUI" is because X isn't JavaScript or TypeScript, and it's not backed by the huge corpo that is Google.
> Web app UI programming tools still suck compared to what we had 25 years ago
Funny. I can think of few examples, namely Flash, Dreamweaver, and Delphi, but that's more rose-tinted glasses than any objective metric. They all did a few things better than the modern web but failed in so many other ways.
Web didn't make massive regression in UI, it made minimum feature set huge.