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.

Reply via email to