D in the ix magazine about "programming today"
Georg Wrede
georg at nospam.org
Mon Dec 21 17:41:19 PST 2009
Extrawurst wrote:
> "According to the language designers, D is inappropriate as a first
> language for beginners"
> - i strongly disagree to that
Agreed. People who think D is not suitable for a first language don't
seem to have the hands-on experience of several years of teaching
several different languages as university-level introductory CS classes.
The fact that D has some advanced level concepts (functional
programming, meta programming...) does by no means hamper its usefulness
as a first language. On the contrary, the lack of obscurity, lack of
abysmal compliler error messages, lack of context sensitivity in
semantics and expressions, lack of gratuitios baggage, and (thank god)
lack of pretentiousness, all help in making this an approachable language.
However, what really constitutes the case for D as the first programming
language, is its starightforwardness. The language student is presented
with a language that lets you study the issues at hand, virtually
ignoring any idiosyncracies introduced by the particular language. In
its time, Pascal was a stab at precisely that. And a stab worthy of a
lot of merit, at that. But times have changed, and a lot of languages
have come and gone, since.
At the end of the day, there are only two top-priorities, that a first
language should present:
- It has to be compiled to genuine executable code. The psychological
weight of "knowing" what your code does, as opposed to a diffuse wish
"associated with your code to be interpreted, depending on the
interpreter at hand [as opposed to actually disassembling the executable
and seeing for yourself the actual result!]", simply can't be
underestimated. (I've really seen the difference with my students -- and
how they've later fared in this arena.)
- The abstraction of the physical computer has to be as thin as
possible. (Currently, no [processor independent] programming language
comes even close to C.) This is absolutely essential, if we are to teach
computer programming as such (as opposed to just writing a particular
computer language!) to students who are expected to spend their entire
career developing computer programs and concepts. D makes a reasonable
effort at this, while the motivation for it has lately been virtually
diluted by languages such as Perl, Python, and some others, unfortunately.
More information about the Digitalmars-d-announce
mailing list