Current state of GUI's

Shannon via Digitalmars-d digitalmars-d at puremagic.com
Thu Sep 3 20:36:36 PDT 2015


On Thursday, 3 September 2015 at 15:15:47 UTC, motaito wrote:

>
> Thanks for the details! I was afraid, of something like this. 
> To me D doesn't seam very competitive without a complete 
> toolset :( Given that D has been around for a while now I am 
> somewhat surprised it's not further along. I know it's a lot of 
> work and not easy to do but clearly there has been a need for 
> this for many years now. The resources I found were several 
> years old (not including that they must have been working on it 
> for a while before abandoning the project). It will be hard to 
> compete with something like QT.
>
> I was hoping for a cross platform solution that would deliver 
> good performance without the complexity of c/c++. But if there 
> is no built in solution QT seams a better option. I wanted to 
> avoid QT because of the added complexity and the QT-windows 
> tend to lag on a windows platform. This may go away with 
> updates and bugfixes though.
>

With D's relatively easy ability to link C libs, gtkD is the way 
I would've gone, IF I wasn't such a satisfied and long time user 
of Qt across BeOS-OS/2-BSD-Windows-OSX-Android-iOS-embedded Linux 
(did I miss any?).  The monumental amount of continual work 
involved in keeping a consistent professional interface blended 
into the "major" operating systems and adjusted to make the 
native user feel at home seems folly to attempt - though I do 
keep my fingers crossed for dlangui for a gui lib done the "D" 
way.

Anyway, though I have so enjoyed the huge part of Qt that is 
non-gui, and especially their model/view components where I can 
do all my model manipulation behind the scenes and practically 
hot-swap or connect multiple views to a model.

I've spent much of the last year building commandline 
applications with D running on the desktop and behind production 
web applications on aws servers. And I've found a novel way to 
relatively easily hook up thin Qt graphical interfaces on top of 
the commandline app that interacts with JSON via stdin/stdout as 
it does on servers.  In the Qt graphical interface I put, for 
example, a QTableView which I connect to a thin class that 
inherits QAbstractTableModel and implements four methods, three 
of which are 1 liners.  The other method simply connects to stdin 
and converts the JSON that it receives, from the D commandline 
app, into data for each (row,column) that the View calls for.  I 
actually embed the D executable into the Qt application, then 
extract and run it when the Qt app starts up.  I'm always amazed 
how un-noticably fast that is.

So, best of both worlds.  The D implementation is generally 
easier/more enjoyable for the actual guts of the tool, and I get 
a perfectly slick Qt user interface.

sorry, this is already too long.  I mean to open up and example 
repo/wiki with that pattern. RSN (Real Soon Now)

good luck.



More information about the Digitalmars-d mailing list