On Tuesday, 5 November 2013 at 06:21:34 UTC, H. S. Teoh wrote:
On Mon, Nov 04, 2013 at 06:12:33PM +0100, PauloPinto wrote:
On Monday, 4 November 2013 at 16:49:10 UTC, simendsjo wrote:
>On Monday, 4 November 2013 at 16:22:52 UTC, Gary Willoughby >wrote:
>>On Monday, 4 November 2013 at 15:58:48 UTC, Chris wrote:
>>>"Who D is Not For
>>>- As a first programming language - Basic or Java is more
>>>suitable for beginners. D makes an excellent second language
>>>for intermediate to advanced programmers."
>>>(http://dlang.org/overview.html)
>>
>>I'd argue against this. I think D would make a terrific first
>>language.
>(...)
>>
>>Something like C or D (i'd opt for D) should be any devs >>first
>>language. Simply to educate them in the basics.
>
>I would say that it really depends on the age too. D as a >first >language for an 18 year-old technically savvy person might >work,
>but for a 10 year-old?

Well I was looking at Z80 Assembly code at the age of 12.

I started programming Applesoft BASIC around that age too, and when I was 14 or so, I was programming in Motorola 6502 assembly language. When I was 16 one of my assembly programs was sold in a bookstore. Thereafter I moved on to Intel 8088 assembly language. It was only years later, in
college, that I learned C and C++.

I think BASIC introduced me to the concept behind imperative
programming, even if at the time it has almost no structured constructs and most programs were just GOTO spaghetti soup. Going from there to assembly language was actually not that much of a stretch, and with big
performance payoffs, too.

Of course, the world has moved on since those days, so nowadays we don't usually bother with that level of performance fine-tuning except in
performance critical bits of code.

But anyway, w.r.t. the OP, if I were to be in charge of designing a curriculum, I'd put assembly language as the first language to be learned, followed by a good high-level language like D. On this, I agree
with Knuth's sentiments:

        By understanding a machine-oriented language, the programmer
will tend to use a much more efficient method; it is much closer
        to reality. -- D. Knuth

People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like.
        Otherwise the programs they write will be pretty weird. -- D.
        Knuth


T

If someone doesn't know assembly, this book might help "Write Great Code, Volume 2: Thinking Low-Level, Writing High-Level".

http://www.amazon.com/Write-Great-Code-Volume-High-Level-ebook/dp/B008Z6ASGC/ref=sr_1_2?ie=UTF8&qid=1383644591&sr=8-2&keywords=thinking+low+level

At least one can get an idea of what's going on under the hood. My old man was programming with assembly for a while and told me that the suicide rate among assembly programmers was quite high.

He also told me about the rule of diminishing returns*. If with well written C program you can get 90% of assembly's performance, leave it at that. If you wanna get the remaining 10% and use assembly instead, the cost of it may not be worth the returns.

*(http://en.wikipedia.org/wiki/Diminishing_returns)

Reply via email to