On Monday, 29 May 2017 at 16:08:11 UTC, Russel Winder wrote:
A few thoughts not entirely random but without a well thought out storyline, prompted by a couple of recent threads here.

I like the comment from DConf that D should be the successor to Vala for writing GObject-based code. We have GtkD and in it GStreamer. Writing programs in C with them is a real pain in the a### and using C++ is only a little bit better. Having a number of exemplar applications showing how good D is for this sort of application would be a big win. I have been steeling myself to rewrite Me TV in D for two years, but there is always another problem that means leaving it in C++ is easier.

Would writing a mixed C++/C app be viable in your case (provide core logic in D and interface with external stuff using C++, combine via C++ interop)?


GObject code requires RAII and C does not provide it. And the C++ wrappers do a poor job because of all the dynamic runtime behaviour the C++ wrapper model badly. D should be able to cover this ground easily.

Well, yeah, C has no builtin concept of objects (you can hack it in, of course) and without object lifetimes, no RAII.


My biggest problem of the moment is libdvbv5 and librtlsdr. DStep seemingly cannot help as yet, and wrapping manually is a pain, and there is no GIR files for these. Thus D is a non starter whereas C++ can just use the C header files. This inability to get past the inertia is a huge barrier. Seriously, I end up with C++ because the manual wrapping hill is too steep.

Doing this manually sucks, yeah, but I wouldn't say it's too steep in general. As an experiment I ported an old application from python to both C++14 (with all the new shiny things), as well as D. In C++14 it took me about a week to get everything right. In D two days. And that included writing bindings for C API things.


And… if the application is written in C++ or C there might be others willing to join in. As soon as the application is written in D, there appears to be no audience of people willing to get stuck in to help evolve the application. So here is the real barrier: writing GtkD/GStreamerD applications is less attractive because everyone in the universe expects such applications to be written in C or C++.

Yeah, that is a problem with D not having a large community. But personally, I much prefer an understandable, easily maintainable code base in D over whatever Lovecraftian nightmare you end up with C or C++. Even at the cost of low external input.


Each person trying to reach over the barrier tends to be an island to themselves as no-one else seems to give a #### about the problem that person is interested in. The isolation of the people trying to get D some traction is arguably the biggest barrier to traction for D. It's the "no-one does it because no-one does it" problem.

If everyone in the D community got interested in and just supplied moral support and advice for everyone else, even though the application was uninteresting, there might be the possibility of serious traction. Which then becomes a self-fulfilling prophesy.

And both of these paragraphs are why I fairly regularly check digitalmars.d.learn to see if someone needs help I think I can provide.

Reply via email to