On Friday, 29 May 2015 at 10:05:08 UTC, Paulo Pinto wrote:
On Friday, 29 May 2015 at 09:33:25 UTC, Kagamin wrote:
On Thursday, 28 May 2015 at 14:38:51 UTC, Manu wrote:
I expect I'm not alone. Please share the absolute blockers
preventing
you from adopting D in your offices. I wonder if there will
be common
themes emerge?
If you're interested in enterprise point of view, our
ecosystem is build around .net technologies, it gets the job
done, so it's usually hard to come up with a case for D. There
is a small utility, which updates database in a multithreaded
fashion and doesn't share code with the rest of the project,
but it needs database connectivity for mssql and oracle and
again D can't show any advantage in such use case.
Same here.
Our customers live in Java and .NET world. They also tend to
choose the technology stack themselves.
C++ only appears into the scene when there is the need for some
OS integration or performance boost. So just as JNI, P/Invoke,
COM component.
Also there are native compilers for both eco-systems around the
corner. .NET Native on one side and the AOT support is being
discussed for Java 10 (ignoring the commercial options).
For the customers doing mobile projects, we tend to go with a
mix of platform SDKs and some web help.
Overall, for the amount of C++ code that gets written, D would
hardly make any difference and cannot compete with the
eco-systems being used from business case point of view.
I'm using D at work successfully. However, what is lacking that
makes it hard to convince others:
1. [medium priority]
No standard GUI ("Look Ma, there's a button that says 'Hello,
world!', if I press it!"). You can work around that, because you
can still call D from any GUI either as an executable, a socket
or interface to D (via C). Still, people love GUIs. I hope
dlangui can help here.
2. [high priority]
Uncertainty regarding ARM (iOS/Android). Deal breaker, show
stopper. Was worrying a few years ago, but is just bad now in
2015.
3. [constant priority]
Learning resources, learning curve. As mentioned in a comment
above: you have to know D well to be able to make sense of error
messages etc. You need to know D "low-level" or D's internals in
order to take full advantage of it. A lot of concepts are
unfamiliar to people and/or not yet common ground (ranges,
templates, component programming), especially as inbuilt
features. The other day I needed startswith and ctypes in Python
and immediately got this:
https://docs.python.org/2/library/stdtypes.html
https://docs.python.org/2/library/ctypes.html
For D I get:
==> http://dlang.org/phobos/std_string.html
==> http://dlang.org/phobos/std_algorithm.html#startsWith
==>
http://dlang.org/phobos/std_algorithm_searching.html#.startsWith
uint startsWith(alias pred = "a == b", Range, Needles...)(Range
doesThisStart, Needles withOneOfThese) if (isInputRange!Range &&
Needles.length > 1 && is(typeof(.startsWith!pred(doesThisStart,
withOneOfThese[0])) : bool) &&
is(typeof(.startsWith!pred(doesThisStart, withOneOfThese[1..$]))
: uint));
bool startsWith(alias pred = "a == b", R1, R2)(R1 doesThisStart,
R2 withThis) if (isInputRange!R1 && isInputRange!R2 &&
is(typeof(binaryFun!pred(doesThisStart.front, withThis.front)) :
bool));
bool startsWith(alias pred = "a == b", R, E)(R doesThisStart, E
withThis) if (isInputRange!R &&
is(typeof(binaryFun!pred(doesThisStart.front, withThis)) : bool));
WTF? :-)
I know, we all know that, but still it puts people off, a simple
psychological issue. D smells of elitism and hackeritis. Python
and Java are more like "Hey, I can do it too. Look Ma, it prints
'Hello, world!'!!!" In other words, it doesn't make people feel
good about themselves, there's no immediate reward. This is
purely a marketing issue and has nothing to do with the language
itself. But even if people are free to chose a language, they shy
away from D.
And since we're talking about psychology, I think D is a language
you only come to appreciate after years of programming in other
languages. People won't adopt it as long as they feel comfortable
- or secure - in other languages, as long as they don't see an
immediate benefit in using D. I'm not sure if there's anything
the D community can do about this except for keeping on keeping
on.