On Monday, 16 November 2015 at 22:39:17 UTC, Dan wrote:
I have been lurking on this site over the past few weeks trying to decide when (and if) to make the transition. Can anyone here who has already made that transition tell me how smoothly it went? Any major unexpected problems? Advice?

Your largest problem in the short term is documentation quality. It's improving, but it has a long way to go. It doesn't help that the standard library has such gems as:

auto joiner(RoR, Separator)(RoR r, Separator sep) if (isInputRange!RoR && isInputRange!(ElementType!RoR) && isForwardRange!Separator && is(ElementType!Separator : ElementType!(ElementType!RoR)));

Your largest problem in the long run will be libraries. I'm guessing the .NET BCL is larger than everything in the D standard library plus everything available via DUB. If you're using the language in a professional capacity, you'll eventually want libraries to help you connect to commercial stuff like Google or AWS APIs -- yeah, you're writing those yourself. Whereas with C++, Java, Ruby, C#, what have you, you've already got corporate library support by default. Even Go has first-party library support for AWS. D? Not even a community version.

This might change, but that's a gamble, and not one I'd take. For projects where you need specific libraries to exist already, D probably won't serve your needs. (It's definitely easier with C++ interop, but you'd still have to write bindings. htod doesn't exactly work on Linux.)

Random example: I wanted an embedded document database. There are a few hanging around. Guess how many have D bindings. I ended up going with LevelDB, which is just a key/value store, and hoping that I didn't need any indices -- LevelDB already has D bindings, whereas I didn't find any real embedded document databases with D bindings.

Similarly, there's a lot more choice in terms of libraries in other languages. So you know that, if the first library to do a thing doesn't quite meet your needs, the second might. I don't have that confidence in D. This is slowly getting better, and it's a lot easier with DUB than it was when I started using D.

Reply via email to