Why aren't you using D at work?
Chris via Digitalmars-d
digitalmars-d at puremagic.com
Fri May 29 04:14:55 PDT 2015
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.
More information about the Digitalmars-d
mailing list