Why I won’t use D for my next project
I used to follow the D programming language closely, I thought it has some really great ideas, and it could potentially replace C++,
I’ve had an idea for a new project for a while now, and I started working on a proof of concept, which I wrote in D, and while the language syntax is great, I’m afraid I’m going to have to switch to another language. Before I say why I won’t use D, I want to mention why I wanted to use D in the first place:
I considered using Python, but I want to create an application that’s usable by ordinary people who are not programming nerds. I know I can convert the project into a windows application with tools like py2exe, but that will create a huge executable; not a good thing.
C++ is too complicated, I just hate the language.
Java is too bloated and complicated, I hate the language, and its environment, and the monster that’s called Eclipse.
C is certainly a lot less complicated than C++, but it’s old and its age shows. Though still, I might end up using it.
D seems just perfect, the syntax is nice, build tools are nice, it should be able to produce a small executable, and working with it should be a pleasure.
BUT, here are the problems:
I put a lot of effort into creating an environment for programming in D on windows. I downloaded DSSS and Tango, and also Tangobos. I also downloaded gtkD since I want a GUI for this project of mine. Setting these things up to work together is not exactly a very easy task; but still it wasn’t too difficult on windows. Though still, it’s not a very easy or pleasant task.
Recently I switched to Linux, and setting up a D environment in linux proved to be quite the hassle, that I essentially gave up on it. While I was able to install dmd with no problem, I didn’t know how to install DSSS. I tried with apt-get, but the DSSS I got expects to find gdc, when I have dmd.
Why is it so hard to setup a development environment for D? This is a problem, not only because it will cause me a headache, but it could put-off many potential/would-be contributors.
Also, I was considering switching from GTK+ to Qt, however the QtD project is also difficult to install, even on windows.
Above all, one of the main reasons I love(d) D is because its syntax and features and build system should theoretically make working with it a pleasure; but … it’s not a pleasure at all!! So why even bother? If it’s gonna cause more pain than pleasure, then I might as well work in C++, at least it’s well supported.
Do I wish to see D succeed? Yes.
Would I love to contribute to its success? Sure!
Am I gonna make sacrifices for it as if it was my religion? No.
I didn’t really explain in detail why installing D and setting up its dependencies is complicated, but those who’ve worked with it should have a good idea of why that is the case.
My entire point is: why the hell, after 10 years of development, is it still so dam hard to setup a D development environment on linux? Stop thinking about crazy new features for D2 and work on making sure that D1 (the original D) is well supported across-platforms. The way I see it, D is slowly turning into vaporware.
While this is an exaggeration, it will eventually die if the author(s) don’t make it their priority to make D usable with the least amount of hassle that’s possible, instead of cramming new features into D2.