Looking for a language to hang my hat on.

Chris Wright via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Nov 16 16:33:43 PST 2015


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.


More information about the Digitalmars-d-learn mailing list