Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

I think that Perl's a horrible choice for a programmer's first language: it does too much for you. The Perl hacker doesn't have to worry about buffer lengths, array bounds, keeping track of allocated memory, and so on, which makes it easy to develop habits that don't address resource allocation. Fine if you're hacking Perl, not so fine if you start writing C later on.

I have some personal experience to back this up, if you'll indulge me. I've TAed labs for an introductory software engineering course at my university: this is a student's first introduction to writing software, rather than using a procedural language. It's also their first glimpse of C. For a long time, the first-year courses were taught in Pascal; recently, they switched to Java. Students who learned to program with Java had much more trouble keeping track of resources (file handles and heap memory, for the purposes of this course) than the ones who started out with Pascal, and their code was brittle as a result. I attribute this to Java's "convenience" features (growable strings, garbage collection, etc).

The problem with teaching programmers Perl as a first language is that they will almost inevitably go on to write C, and their C will be buggy and insecure. I'd like to see Comp. Sci. majors around the planet start with an elegant, sane assembly language (MIPS and 68000 asms come closest to this ideal, IME), then move to C, then move to safer, higher-level languages. Like Perl.

On the other hand, Perl makes an excellent first language for people who aren't going to be career programmers: it's easy to get a lot done with only a little knowledge, which means less lag time between starting to program and solving your problems.

The hell with paco, vote for Erudil!

In reply to Re: Learning Perl as a First (programming) language by FoxtrotUniform
in thread Learning Perl as a First (programming) language by japhif

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others avoiding work at the Monastery: (4)
    As of 2020-07-11 21:12 GMT
    Find Nodes?
      Voting Booth?

      No recent polls found