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