On Tuesday, 13 January 2015 at 23:34:40 UTC, brian wrote:
I know this thread is a little old now, and I'm not the most
experienced programmer by a long shot, but I'll post my 2 cents
from the n00b persepctive.
A question first: ... what do people actually have working in D?
I find very few "working examples" of things I want to do. Or
things in general. That I can read and say "oooh that's close
to what I want, I can tweak it a little here and there".
Take a look at the official package registry, called dub:
http://code.dlang.org/
Eg.
I want a program to write tweets.
I can't just google "twitter example d" and find a nice starter
program to connect a write a tweet.
Do the same with "twitter example java" and you'll probably
have your problem solved within half an hour.
So in half an hour I have a java program, and not a d one. I'll
probably make changes to my java one and grow that, rather than
trying to rewrite it in D because I don't even know it will
work.
I don't think it's that unusual for a native compiled language:
can you find C++ snippets to write tweets? I doubt it. A
compiled languages is just not the tool people usually grab to
write such things. D would like to break out of that box and be
such a language, but it's probably not going to have a bunch of
code written for small jobs like that yet.
The same can be said when I try to do other things too:
Like parse a webpage.
Or connect to APIs.
(maybe I'm constantly looking for things that other's don't do,
but that's unlikely)
D would like to be good at all these things, and some of them are
enabled on dub. But as a newer language with a smaller community
than Java, obviously the amount of APIs covered is going to be
less right now.
So for me, it's getting easier to solve my simple programming
problems in other languages because I can find examples that a)
others have posted and b) others have the same issues I face.
I can't find those things in D nearly as easily (is this a
limit of searching the term "D" or dlang?)
try
solveMyProblem(close_to_exactly);
catch(Exception e)
writeln("this library sucks");
finally {
do it myself with exactly what i need and little more
}
I'd *love* to be able to do this, but if libraries don't work,
personally, I don't know where to start most of the time. What
if there isn't a library at all? html headers, oauth, blah
blah. I may as well build a rocket. I have plenty of projects
where I hit a wall (which I don't think is necessarily a
language thing, but trying to use D to get to something else/do
something).
This is the normal chicken-or-egg problem with a new language
like D, ie people want libraries or API wrappers to get their job
done easier but if they don't spend time writing them, they never
get done.
Also, maybe the D community doesn't put their code up for public
consumption as much as some other language communities. Could be
another reason for the disparity, but just a stab in the dark: I
have no idea if it's true.
So in summary, from my perspective I find it difficult to solve
the programming challenges I face, using D. Maybe that's a
skill thing.
Lack of working examples makes taking that first leap daunting.
Lack of connectivity (to the things I want to connect to) is
frustrating. Through googling, I'll be able to get something
running quicker in another language than continue trying to get
D to work.
If I find these issues, and I'm moderately intelligent, I'm
sure others have the same issues.
I love the language, but if someone wanted a language to learn,
I don't think I would recommend D. :(
I don't doubt that these issues exist, I just consider them
normal for a newer language.
As for recommending D, I think it depends on the type of user.
If they care at all about efficiency, I don't know that I'd
recommend a language other than D. If they don't really care how
fast their code runs and prefer to stay at a higher scripting
level, then the advantages of D fade compared to other languages.