On Sunday, 14 December 2014 at 08:37:36 UTC, Manu via
Digitalmars-d wrote:
Sadly, I failed to create a new commercial D user this week,
and I'm really disappointed.
It was rejected for exactly the same practical reasons I've
been saying forever.
There were a few contributing factors, but by far the most
significant
factor was the extremely poor Windows environment support and
Visual Studio debugging experience.
I find exactly the same issue for every developer that I'm moving
from C++ to D under Windows: the bar is very high here.
We were trying to use vibe.d, and we encountered bugs.
We are using Vibe also here in Milan: it's maintained since a
long time, and it has plenty of adopters, but... it's just too
big.
Sönke is doing a remarkable job, but, for example, I've a mail
server in production using vibe with an assert turned into an
hard exit && restart: I was simply unable to debug it.
And it's also very picky about what compiler to use to have a
proper build, at least, lately.
Actually I'm on a branch trying to have it run with master, as I
need async-socker and C++ support for a product... *sigh*
We were unable to build Win64 code (vibe.d doesn't support
Win64 it seems), and the 32bit compiler produces useless OMF
output. We
couldn't link against any of our existing code which was a
serious inconvenience, but they were understanding and we
worked around it.
I tend to agree about debugging, we also need to keep a Win32
application live, and it's a mess.
I know that there's some improvement over that lately, but
practically we are developing and debugging it in linux and just
running the unittests in Win32.
Regarding Vibe, why aren't you using linux for such a job? I
think that's the right tool for that kind of services, and life
is more easier in that land.
The real trouble hit when vibe.d's WebSocket support didn't
work as
advertised; it crashed in various circumstances, and debugging
was impossible.
vibe.d uses exceptions everywhere, which caused an office full
of
C/C++ programmers to explode with terror, and Visual Studio
completely craps itself when there are exceptions being thrown.
Yep, I can understand, and the documentation does not help a lot,
I would say.
I think vibe is simply too ambitious: it should take the road of
being split, with some pieces being somehow absorbed by Phobos
(like the new concurrency).
I'm planning to switch to Etienne package for simple socket
applications...
We tried the VS debugger, and also Mago. Both presented
different
kinds of issues, which lead to people seriously questioning the
quality of the ecosystem, if 2 out of 2 available debug tools
don't work, and for different reasons.
We had to revert to running without the debugger, and trying to
printf() debug, but that proved to be a massive waste of time,
and caused enough distaste to the other engineers that it
shattered
whatever confidence I had built up in D. The decision was made
to abandon ship and revert to node.js, which satisfied our
needs within a couple of hours.
That's the point...
I can simply impone to adopt D, because I've the power of doing
that, but trying to evangelize bottom-up it seems to me a via
crucis...
The result was a bunch of die-hard native C programmers,
initially
excited to use a native language to write a webserver, instead
saying stuff like "wow, node.js just worked! that's amazing,
javascript is awesome!"... and then mocking me about my D
language thing.
*sigh*, but hey: I really hate Javascript (but I'm using it with
Meteor...)
They then made HUGE noises about the quality of documentation.
<snip>
I don't agree here: just go with books.
Thanks to Ali, Andrej, Philippe and Adam for covering well that
field.
It's painful to accept the truth in that statement. Go and try
and
learn any other trendy language today. The homepage looks
modern,
there has been professional design, testing, and there are
instructional videos recorded by a professional voice actor
with that trendy bloody upbeat ukulele music in the background
that's in all tech videos these days...
I think we need a budget for presentation, and we need to pay
money
and hire some professionals to make the content. Is there a
kickstarter campaign here? I'll contribute for sure.
I disagree here: the most beautiful advertising for D are
concrete success stories out in the wilds.
So first, it needs to stop loosing commercial adopters: why they
dropped it, that's the most valuable feedback for the D community.
And, IMHO, in THAT specific case, it was:
- debugging experience must be top class
- async-io as a "basic" operation, choosing vibe as the
'de-facto' most suitable solution, it's not available for neither
the big-two, Lin/Win (OS X is a no-go platform for D until the
support to ObjC will be merged).
---
/Paolo