Hello retard,
I'm not sure if bearophile or some other language advocate posted this
already, but:
http://www.reddit.com/r/programming/comments/c3p8e/
if_you_have_to_learn_just_one_programming_language/
"Here are my criteria for selecting (a non domain specific) language
to learn."
"It should provide high level of abstraction so that programmer
productivity is high. A fast running application written in C that
takes 6 months is — in most cases — not as useful as one that can be
completed in 1 month: programmer cost as well as time-to-market
considerations."
D is very close to C. The productivity is much lower than with other
modern scripting or hybrid-functional languages.
D is better than C++ (by a lot) and C++ is better than C. This is my opinion,
I will not debate it.
"Speed: It should be fast (should approach C in speed)."
DMD is much slower than Sun Javac/Jvm 7, GNU GCC 4.5, and LLVM.
That's an implementation issue, the result of some degree of immaturity and
is being addressed.
"Succinct: The language should not be verbose. This is very important.
Brevity is one reason why Python and Ruby are popular."
For example the lambda syntax is terribly verbose in D compared to
Scala or Haskell.
It's succinct enought for me. Being more succinct would add no value IMO.
"It should be a mature and time-tested language with active
development, user base and lots of applications."
D & DMD are unstable, badly specified, buggy and most dsource projects
are deprecated (D1) or dead.
D is immature and not time-tested, but than so is every language at some
point.
D1 is stable, D2 is being stabilized, DMD is buggy but improving. I'll grant
that the library situation isn't good but, again, time can change that.
"Platform agnostic: It should not favor or give advantage to one
platform."
DMD only works on 32-bit x86.
Yes, DMD only works on 32bit x86. D can be implemented on most any modern
processor as shown (or so I recall) by LDC and GDC.
"Code readability and maintainability: It should be relatively easy
for authors and others to maintain existing code."
Java 2-7 is very backwards compatible compared to D2.
I don't see that as a problem. If every major version is full of breaking
changes that could be a problems.
"Opensource is a fine model, but if the author doesn’t want to release
his/her creation under open-source he/she should be able to do so."
The official backend is non-free.
Irrelevant.
"Has a test framework that can generate and run tests."
The integrated unittest construct is a joke compared to JUnit et al.
IIRC JUnit is a library that is integrated into IDEs as well as the language
culture but not Java its self. Unless you want to show that the same CAN'T
be done for D, your point devolves to "D is immature".
All the points that have any value IMO devolve to "D is immature" (and that's
the only thing the OP said about it) so for the question of " If you have
to learn just one programming language today", yes D likely isn't it, but
nothing rules it out for a ways (maybe only a little ways) down the line.
--
... <IXOYE><