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.

Reply via email to