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

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.

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

Replies are listed 'Best First'.
Re^6: Popularity of Perl vs. availability of Perl developers
by adrianh (Chancellor) on Sep 26, 2005 at 16:52 UTC
    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.