in reply to Re^2: Popularity of Perl vs. availability of Perl developers
in thread Popularity of Perl vs. availability of Perl developers

I'm not so sure it's good to learn Miranda (or any other modern language) before C. It's painfull to go fourty years back in time. That's like teaching them chopping trees with a chainsaw first and then trying to teach them to use a hack. Yeah, you cut the tree down with both, but if you can do it in five minutes with a chainsaw, it feels stupid to spend an hour sweating with a hack. Sure sometimes hack is the right tool, but it should IMHO be taught first.

Jenda
XML sucks. Badly. SOAP on the other hand is the most powerfull vacuum pump ever invented.

  • Comment on Re^3: Popularity of Perl vs. availability of Perl developers

Replies are listed 'Best First'.
Re^4: Popularity of Perl vs. availability of Perl developers
by adrianh (Chancellor) on Sep 26, 2005 at 12:53 UTC
    I'm not so sure it's good to learn Miranda (or any other modern language) before C. It's painfull to go fourty years back in time. That's like teaching them chopping trees with a chainsaw first and then trying to teach them to use a hack.

    I disagree. I've found it far easier to instil good development practices with modern languages and then move people to languages like C, rather than waste inordinate amounts of time teaching people low level languages and then spend time breaking them of the bad habits they pick up.

      Maybe the difference is that you were teaching while I was learning. After learning ML having to cope with C, having to waste insane amounts of effort on things that are automatic elsewhere, having to circumvent type systems that are far far too restrictive to be of any use, having to free memory myself, being unable to do all the things I got used to ... that was painfull. And is one of the reasons why I never really learned C.

      Jenda
      XML sucks. Badly. SOAP on the other hand is the most powerfull vacuum pump ever invented.

        Maybe the difference is that you were teaching while I was learning

        I used the wrong word. I should have said I found teaching a more modern language first more effective rather than necessarily easier for the student (although I think it's often that too :-)

        Actually - it's not even "more modern" - it's higher level. I'd much prefer to teach Lisp over C as a first language too.

        C is a sneaky language is some ways, but learning it first only makes it worse in my experience.

        Learning C as a first language is painful since it can punish mistakes in such an arbitrary way. When something as simple as an off-by-one error can cause no problems on one run, a segfault on another, and a corrupt result on a third it can be hellishly difficult for a newbie to get a handle on what the heck is going on. Especially when adding print statements can make the problem go away.

        Coming to C as a second or third language means that students can separate out the general programming concepts from the C-ness. It also means that you can focus more quickly on more challenging projects that show the advantages of C as a language, and introduce them to tools that can make the development process less painful.