The State of the GUI

Abdulhaq alynch4047 at gmail.com
Thu Oct 25 19:28:44 UTC 2018


On Wednesday, 24 October 2018 at 06:20:05 UTC, Adam Wilson wrote:
> I was reading the hijacked JAXLondon thread about GUI's and 
> started replying but decided against hijacking the already 
> hijacked thread again.
>
> I've been working with UX toolkits since the earliest days of 
> my career and it was one of the first things I looked for when 
> I started using D in 2011. Needless to say I wasn't impressed. 
> As a result I've done some fairly extensive research over the 
> years on, not just the effort required to bring one to D, but 
> also on what people are actually using.

I think I can contribute something useful to this too. I've 
worked with MFC, Visual Basic from 1.0, Paradox, Delphi (1,2,3, I 
actually paid for this with my own money, and it was worth it), 
SQLWindows, Oracle*Forms, ActiveX/COM/OLE2, Swing, Qt Widgets 
(not QML) (C++ and Python), wxWidgets, JavaFX, 
DHTML/Javascript/CSS, Android UI and probably others I've 
forgotten.

>
> At this point in time HTML/CSS/JS is by far the most prevalent 
> UX toolkit in use today and not a single modern website uses 
> the native widget theme. The bare minimum is Bootstrap.

Yes, because the web is close to a universally available 
platform, running everywhere. No one who knows Qt or JavaFX would 
choose the dogs breakfast of accidental software 
DHTML/Javascript/CSS/Ajax etc. if Qt or JavaFX was equally 
universally available/distributable on all platforms.

>
> I think this is a key point. The theme itself is now part of a 
> brand and using the native toolkit would be a branding 
> disaster. American Express, Facebook, or Google aren't in the 
> business of showcasing Microsoft's, GNOME's, or Apple's 
> branding, they want their apps to showcase their own brands.
>

What has a companies brand got to do with a widget theme? Anyway, 
it doesn't matter. BTW JavaFX has excellent CSS based 
widget/scene graph node themeing.

> Somewhat unusually for Microsoft they recognized this shift in 
> industry early and starting with WPF in 2006 they have allowed 
> you to completely customize the look of widgets. WPF actually 
> began as an (however misguided) attempt to improve on the UX 
> capabilities of HTML/CSS. They continued this direction with 
> Silverlight and most recently, UWP. UWP is intended as the 
> long-term replacement for the Win32 UX API's and Microsoft is 
> no longer developing the Win32 API's, it's
> just bug fixes now.

Many many years of MS chopping and changing their recommended UI 
development platform (Silverlight is a great example) have taught 
me not to build on MS's latest and greatest UI platform - 
whatever that is this month.

>
> I've never used GTK or QT, but my understanding is that both 
> have retrofitted some amount of theming into their toolkits but 
> neither approach the capabilities of WPF or HTML/CSS.

>
> So why doesn't D have ANY useful bindings UX library bindings?
>
> The answer, I think, is that almost every case, the UX toolkit 
> in question was designed for a specific language, Qt->C++, 
> GTK/MacOS/Win32->C, SWT->Java, WPF->.NET, etc. and these 
> toolkits are often deeply integrated with the languages they 
> are implemented in.


Qt works brilliantly from python too, not just C++. It could 
easily be used from D and other languages too, if there was a 
binding. How come no one has mentioned Calypso in these two GUI 
threads? The Qt binding is just about complete with Calypso, as 
far as I can tell.

Russel also suggested creating a binding a la sip/PyQt. I started 
something based on the same architecture as PyQt in 2014, it's 
probably crap, but it's not that far off providing something that 
works. I stopped because Calypso looked so good.


>
> The way I see it. We either pull together around a unified 
> vision for a UX toolkit written in D from the ground-up or we 
> wait (im)patiently for a benevolent corporate benefactor to 
> appear. It's that simple.
>

No, Phil Thompson wrote PyQt on his own. Something similar for 
D/Qt is not impossible, I have (had) a working core to prove it. 
Calypso is much better, but frankly, no one seems interested. 
It's more fun to bikeshed about writing an entire UI toolkit from 
scratch.

> I do have a vision for a non-native, WPF-like, UX toolkit 
> written entirely in D. I estimate that it will take a minimum 
> of three extremely dedicated, multi-disciplinary, individuals 
> about three to five years to complete with the help of a 
> constellation of secondary contributors. I have a rough design 
> sketched out and I'd be happy to post it here but this message 
> is already getting to long.

>
> I firmly believe that a non-native, cross-platform, UX library 
> will open D up to a whole new market of users that are 
> desperate for something better than what they have now.

If you seriously want a good UI toolkit for D then write a 
wrapper for Qt. It's very feasible. it would be tremendously 
useful. Writing something even half as good as Qt? I admire your 
ambition but there is simply no chance of it happening. None.

BTW, an aside, I was very surprised that for a large family of 
applications, JavaFX is even better than Qt. Just an aside for 
those who have C++/Python/Java as potential options for their 
next masterpiece.

Abdulhaq




More information about the Digitalmars-d mailing list