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