How D could gain more traction?

XavierAP via Digitalmars-d digitalmars-d at puremagic.com
Wed Apr 15 02:39:06 PDT 2015


Hi people. I've followed D for many years, although I haven't 
used it for anything big or even have a good knowledge of Phobos. 
I currently work in C++ a lot, although I am convinced that in 
theory the only reason not to run away from C++ is being tied 
down to a large existing codebase; and yet I'm also convinced 
that I couldn't sell D to my team or manager. So why's that?

In my opinion the biggest and only mistake is to preach D to the 
C++ choir only. Of course some will say, we can't avoid this, the 
native choir is the only one D should or could preach to. Even if 
this is true or not, I said C++, not native, choir. Nowadays 
those two continue to be synonyms, but the point of D is that 
they shouldn't. More on this below.

All the many and severe flaws in the C++ language are fixed in D, 
but the shortcomings of the C++ standard library are not. Some 
will say there are no fundamental flaws in it that don't come 
from the language, and I agree. However it has the shortcoming of 
being too narrow. The D standard library has followed the C++ 
paradigm, but C++ is quite useless without Qt, Boost etc. The 
only reason why this hasn't caused more detriment to C++ is 
(besides these 3rd-party libraries being by now quite established 
and thus standard de facto), that there is no native alternative 
to C++, except D, which has the same library problem. I've heard 
people say that things such as Qt or whatever not belonging in 
the standard library because a cross-platform language should not 
assume the existence of a screen, mouse or keyboard in the 
device. That's good and all as a statement (embedded devices can 
implement only part of the standard library, as is the case in 
.NET and Java) but it's not even a purist point of view, it's 
just outdated. In theory and practice nowadays it makes almost 
less sense in comparison to assume the existence (or relevance) 
of a text console.

Nowadays a standard library should include classes or functions, 
not only for data structures, algorithms etc., but also for: GUI 
cross-platform creation, graphics, multi-threading at low and 
high level, SQL, XML, JSON, networking on all layers from raw 
sockets to TPC and HTTP, FTP, etc... etc.; and since the reason 
for native is performance, I would also throw in some advanced 
math (linear algebra, Newton-Raphson, etc.) If you don't agree 
that this should be included in a standard library, I think 
you're kind of still sitting in the C++ choir even if you prefer 
D.

At this point I would of course not propose to expand the std 
namespace. It would be as simple as dlang.org endorsing chosen 
existing libraries for these core functionalities, and afterwards 
some publicity work.

Otherwise try to convince a _business_ guy that switching to D 
will have any significant advantage (he will implicitly expect 
you to "prove it in advance"). These all-in-one solution standard 
libraries are in my opinion the main reason of the huge success 
of .NET, Java, Visual Basic 1-6, huge in absolute terms and 
certainly compared to D. In my company (SKF, 50k employees 
worldwide) they use C++ but they are expanding the use of WinDev! 
(I won't blame you if you don't know what the latter is, just 
google it.) Managers know only when a project is late.

Your thoughts?


More information about the Digitalmars-d mailing list