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