Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^5: Perl as one's first programming language

by hardburn (Abbot)
on Apr 07, 2008 at 18:52 UTC ( #678807=note: print w/ replies, xml ) Need Help??


in reply to Re^4: Perl as one's first programming language
in thread Perl as one's first programming language

At the same time, Forth ties one to a model of programming pretty tightly (although writing an interpreter or translator in Forth isn't that complicated). Lisp has that drawback, too, though. Perl does not.

I don't necessarily consider that a benefit for what's intended as a first language, though. On the contrary, it tends to cause a lot of confusion.

However, I'm not convinced that binding so tightly to a single model is a benefit, either. Which is why I'd tend to suggest Ruby rather than Lisp.


"There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.


Comment on Re^5: Perl as one's first programming language
Re^6: Perl as one's first programming language
by mr_mischief (Prior) on Apr 07, 2008 at 19:12 UTC
    I think in a classroom setting or a mentoring setting the fact that a tool's more flexible than you are originally taught has little bearing on what one will learn. Learning a subset of a huge language like Ada or Java doesn't seem to be a particular drawback of those programs that use them (although I'd argue that both of those languages as a first have other drawbacks). Learning a very flexible language like Scheme or Common Lisp doesn't seem to be an issue, either.

    When one learns programming on one's own, it's much harder to say what would be a good thing. Perl (Ada, PL/I, PL/M) very well may be overwhelming due to language size. Perl, Python, and Ruby might be daunting due to the available programming models. Lisp, Rexx, Perl, and JavaScript might be intimidating because they all allow evaluation of arbitrarily complex programs from within a program. A good tutorial for new programmers would hopefully be as gentle an introduction to the syntax of the language as to the concepts involved.

    The biggest drawback one can have in an initial language, I think, is unusual verbosity. There are strictly typed languages with inference. There are languages which have a very declarative style of complex data structures without requiring the same for simple scalars. Languages exist in which input and output data must be pre-structured, and byte-oriented files are a pain with which to work. Since the first applications most people learn to use are not payroll systems and league sport box scores, forcing verbose data and variable declarations for the sake of performance and ease of language implementation are counterproductive, IMO, in a beginning language.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://678807]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (14)
As of 2014-08-01 14:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Who would be the most fun to work for?















    Results (22 votes), past polls