yitzle wrote:
>
> 1) If you are interested in learning to program for the sake of
> programming (vs getting XYZ done), Perl probably isn't the best first
> choice. (Not that its the last choice or anything, but not first.) I'd
> personally advocate C/C++ or maybe Java. Maybe make Perl a third
> choice ;)

I wonder why you say that?

I have been programming in C and C++ for twenty years and in Perl for ten years.
I also know a dozen other languages well, and have taught programming both in
class and privately. Unless someone needs to know another language for a
specific purpose I always recommend Perl, as most people - especially those who
have never come across a programming language before - find it more intuitive
than other languages.

The obvious advantages for a learning language are

- You write the code and run it: there is no compile/link/run cycle

- It has a built-in debugger if you need one

- Memory allocation is invisible, so there is no need to presize data structures

- It handles all of the complex ideas like references and object orientation in
  with simple syntax conventions, and gives intelligible warnings instead of
  memory access violations

- Finally, and above all, the Perl parser is highly oriented towards DWIM, which
  is ideally suited to people who learn programming

- Perl puts you in control, and is friendly. When I teach C I find myself
  apologizing for the language and brusque error messages. Programmers are
  slapped for knowing only 95% of the language, and there is always confusion
  over whether an error is a compile, link, or run time fault.

  In contrast my Perl students feel encouraged by the compiler's error
  messages, as if it was the next step on a treasure trail.

> 2) If you are still picking up Perl and want to get into OOP, its
> probably better to stick with Perl and learn OOP rather than starting
> in on Ruby. The best way to learn OOP IMHO would be to come up (or get
> someone else to) with some sort of OOP project and then go ahead and
> implement it.

I agree. Perl copies the way most languages implement object orientation but has
very loose boundaries so that a mix of OO and procedural programming works fine.
Most importantly, improper semantics often /do/ something instead of just
throwing an error; that lets you see call chains and data flow, which leads to
better understanding, even in faulty code.

Perl has everything in place to allow people to use encapsulation, modularity,
polymorphism and inheritance, but the mechanism is open and visible and that
helps people understand what they are dealing with in similar circumstances in
other languages.

> 3) Nope. Never did any Ruby.

And there is the problem with improper quoting. Please include just as much of
the post that you are responding to so that your own post makes sense in 
isolation.

Rob

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to