Learning With D

Walter Bright newshound2 at digitalmars.com
Wed May 25 01:58:42 PDT 2011


On 5/25/2011 12:04 AM, Russel Winder wrote:
> On Tue, 2011-05-24 at 14:56 -0700, Walter Bright wrote:
>> On 5/23/2011 11:30 AM, Russel Winder wrote:
>>> Yes and no.  To those that "get it", it is simple and straightforward.
>>> Experience shows that very few people actually "get it".  Syntax is a
>>> factor but not the only one.  The very nature of the concept stumps some
>>> people.
>>
>> I suspect that those people who never get it are people who fundamentally do not
>> know how a von neuman architecture computer works. I came to C from writing
>> embedded systems in assembler language, and C was immediately obvious to me.
>
> Or Harvard architecture for that matter :-)
>
> I completely agree with the direction of you point but would put it
> slightly more abstractly.  In order to be able to use a programming
> language effectively and efficiently you must have an operational
> semantics for the language.  This need not be the actual semantics of
> the processor executing the code, it just has to be consistent with it
> or else you are doomed to write broken code.

Interestingly, before I learned assembly I programmed in Basic and Fortran. 
While my programs worked, I really had no idea how the underlying machine 
worked. I was completely baffled by it.

When I learned to program a 6800 microprocessor, suddenly all the lights came on.

While learning assembler isn't going to help much with, say, comprehending 
monads, I venture to say that writing effective C programs without knowing 
assembler is like trying to drive a race car without knowing how a car works. 
You can probably get it around the track, but you have no hope of winning, or 
even being competitive.

(Test pilot Chuck Yeager remarked in his autobiography how being intimately 
familiar with how his airplane worked saved his life many times.)


More information about the Digitalmars-d-announce mailing list