On Saturday, 20 October 2018 at 09:25:58 UTC, Russel Winder wrote:
On Sat, 2018-10-20 at 08:52 +0000, Gregor Mückl via
Digitalmars-d wrote:
[…]
I periodically look at how I can make use of D for small
projects. Most often, I shy away because I want to build a GUI
and none of the libraries that I can find look mature and well
maintained enough to put my faith in. For C++ there's Qt,
which is *phenomenally* good (despite some warts), but there's
been at least half a dozen attempts at creating D bindings for
that, all in various states of completion/negligence.
GtkD works very well for me. But I guess GTK+ has a reputation
of not working on Windows and macOS. Once a reputation is
established it is nigh on impossible to refute.
Gtk is clearly working on Windows from a technical point of view.
Gimp on Windows is proof of that. But the look and feel are too
different from what Windows users expect in my eyes and I did
have a few unpleasant experiences with Gtk in the past. So I
personally do not have any real desire to use it. My encounters
with Qt were more involved and generally very pleasant and
successful. I want to stress that this is only my personal view
that I arrived at over the years. Any bias in it is purely mine.
Qt appears to be C++ battering ram against all other languages
other than Python. Go has failed to get a really good binding,
except perhaps to QML. D has failed to get a really good
binding to Qt or QML. I guess I should check out the Rust
binding, except that I am in the gtk-rs and gstreamer-rs camp
these days on all things GUI.
Qt did have very good bindings to Java in the form of Qt Jambi,
which was commercially developed back in the day by (then)
Trolltech. Unfortunately for me, they killed that product off
just as it reached 1.0. But a lot of the generator code was
reused for PySide which was started around that time. Qt really
depends on the code generated by the moc preprocessor. Even
though the generated code is not really all that complicated,
filling in the same gaps in bindings for other languages is quite
hard. I think that Python has such good bindings only because
both PyQt and PySide were commercially backed from the start. I
can't think of any other currently maintained language bindings
that have that luxury.
Even though web and mobile UIs seem to be the rage at the moment,
I believe a solid support for desktop UIs is very important for a
general purpose language, if it wants to be successful in the
market. D could be well suited for various kinds of applications
in that area, especially those that have complex logic with some
really performance critical parts and require rich user
interfaces. Productivity, CAD, DCC and data
processing/visualization would probably be among the extreme
categories here.
D has always had an excellent story in the "connect to C
linkage libraries", has any of the work in D on C++ linkage
over the last few years changed the landscape so that a D
binding for Qt and QML could be as good as the GtkD binding is
to GTK+?
[…]
Excellent question! All I know is that Binderoo and dpp are two
WIP projects that want to make binding to C++ easier. The authors
are active in the forum, aren't they?