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. We were trying to use vibe.d, and we encountered bugs. 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. 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. 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. 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. What's the take-away here? Well, like I've been saying endlessly for years now, *first impressions matter*, and quality of tooling matters more than anything. They made comments about the installer, where VisualD's installer failed to remember the path that we installed DMD only moments earlier. They immediately made comments about goto-definition not working, and auto-completion not working reliably. They then made HUGE noises about the quality of documentation. The prevailing opinion was that the D docs, in the eyes of a not-a-D-expert, are basically unreadable to them. The formatting didn't help, there's a lot of noise and a lack of structure in the documentation's presentation that makes it hard to see the information through the layout and noise. As senior software engineers, they basically expected that they should be able to read and understand the docs, even if they don't really know the language, after all, "what is the point of documentation if not to teach the language..." I tend to agree, I find that I can learn most languages to a basic level by skimming the docs, but the D docs are an anomaly in this way; it seems you have to already know D to be able to understand it effectively. They didn't know javascript either, but skimming the node.js docs they got the job done in an hour or so, after having wasted *2 days* trying to force their way through the various frictions presented but their initial experience with D. I have spent months discussing D with other engineers, dropping little tidbits and details out to the floor here and there, getting people excited and jazzed to try something new, and quietly waiting for the opportunity to arise where I can suggest writing some new code in D. I have spent months where people are coming up to me most days asking about some shit thing in C/C++ and how D does it better, to which I usually have a good answer for them, and they walk away excited. ...the moment came. I've built confidence and excitement in these people, but when their first impression is a shambles, it completely undoes all that work, and almost completely shattered their confidence. I also feel personally hurt. I'm frequently putting my reputation on the line when I recommend D to organisations I work in, and all my colleagues. And in this case, I received a serious blow, and that's hard to swallow. I want to see flawless debugging put on the road map as top priority. We need a test environment for the windows installer and VS integration that is thorough and that we can depend on. It's 10 years overdue. We need to get this practical shit together if people are going to take D seriously! I think most importantly though, we need LDC! Assuming those other things come good, we need a compiler with a backend to produce the expected performance, and which integrates in a well known way with the ecosystem around it. Currently, I understand that the only outstanding issue with LDC for Windows is the debuginfo output? I think this is mainly with the LLVM crew, but is there anything we can do to help with this? One of the take-away quotes I think, was "D seems to be a language for people who actively want to go and look for it, and take the time to learn it. That's never going to be a commercial success." 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.