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

Reply via email to