On Sunday, 12 August 2012 at 03:30:24 UTC, bearophile wrote:
Andrei Alexandrescu:
- The language's superior modeling power and level of control
comes at an increase in complexity compared to languages such
as e.g. Python. So the statistician would need a larger
upfront investment in order to reap the associated benefits.
Statistician often use the R language
(http://en.wikipedia.org/wiki/R_language ).
Python contains much more "computer science" and CS complexity
compared to R. Not just advanced stuff like coroutines,
metaclasses, decorators, Abstract Base Classes, operator
overloading, and so on, but even simpler things, like
generators, standard library collections like heaps and deques,
and so on.
For some statisticians I've seen, even several parts of Python
are too much hard to use or understand. I have rewritten
several of their Python scripts.
Bye,
bearophile
For people with more advanced CS/programming knowledge, though,
this is an advantage of D. I find Matlab and R incredibly
frustrating to use for anything but very standard
matrix/statistics computations on data that's already structured
the way I like it. This is mostly because the standard CS
concepts you mention are at best awkward and at worst impossible
to express and, being aware of them, I naturally want to take
advantage of them.
Using Matlab or R feels like being forced to program with half
the tools in my toolbox either missing or awkwardly misshapen, so
I avoid it whenever practical. (Actually, languages like C and
Java that don't have much modeling power feel the same way to me
now that I've primarily used D and to a lesser extent Python for
the past few years. Ironically, these are the languages that are
easy to integrate with R and Matlab respectively. Do most
serious programmers who work in problem domains relevant to
Matlab and R feel this way or is it just me?). This was my
motivation for writing Dstats and mentoring Cristi's fork of
SciD. D's modeling power is so outstanding that I was able to
replace R and Matlab for a lot of use cases with plain old
libraries written in D.