If you have to learn just one programming language

BCS none at anon.com
Mon May 31 10:29:27 PDT 2010


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><





More information about the Digitalmars-d mailing list