Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Teaching Perl

by Jenda (Abbot)
on Sep 05, 2012 at 07:12 UTC ( [id://991751]=note: print w/replies, xml ) Need Help??


in reply to Teaching Perl

I think he misses THE biggest obstacle. All these youngsters had been told for years that they are being taught the end of all languages, the one and only language they are ever gonna need ... and now, two weeks into their work life they are forced to learn another language and next to nothing they learned holds. You are hurting their pride.

"There's the fact that Perl is interpreted, not compiled." ... erm ... especially compared to Java, compiled to some intermediate code and then interpreted and/or Just In Time compiled to actual machine code, this statement really causes a chuckle.

"the fact that in Perl execution just starts at the top of the page, not in public static void main(String[] args)." And the absolutely pointless boilerplate required by Java doesn't end there.

"You use $var[0] to get information out of an array called @var, which is different from a scalar called $var." Yeah, a huge deal. The sigil is not part of the variable name, but rather specifies what is it you want to obtain. "I want the 0-th scalar from variable named 'var'." How long does it take to explain that? Two minutes? Show them slices and ask them to write equivalent code in Java!

"Perl has no boolean data type" - Perl has no integer or float or string data type either. It has scalar, array and hash and when it comes to scalar the values get converted between strings, numbers and booleans as needed.

"You can't put a list inside another list." How do you put a list inside another list in Java? Exactly? Speaking about literals, yeah, in Perl you can't write @foo = ( (1,2,3), (4,5,6));, you have to use @foo = ([1,2,3], [4,5,6]); well ... as far as I can tell in Java, if you wanted an array of array you'd end up with something like Int[][] foo = new Int[][]{ new Int[]{1,2,3}, new Int[]{4,5,6} };, but yeah, Perl is complicated. Now imagine you dared to want an ArrayList of ArrayLists. Yes, you have to explain that they have to store references in arrays and hashes. In Java you have to explain the difference between value and reference types. How much time did they spend on that?

"Creating elementary nested data structures is difficult, as is getting information out of them." I'd really love to see an explanation of this nonsense. With comparison to Java pretty please!

Jenda
Enoch was right!
Enjoy the last years of Rome.

Replies are listed 'Best First'.
Re^2: Teaching Perl
by ambrus (Abbot) on Sep 05, 2012 at 07:38 UTC
    I think he misses THE biggest obstacle. All these youngsters had been told for years that they are being taught the end of all languages, the one and only language they are ever gonna need ... and now, two weeks into their work life they are forced to learn another language and next to nothing they learned holds. You are hurting their pride. [Jenda's reply]

    I think that's exactly what Sam says in the article.

    Right out of the gate, there's an unavoidable culture shock which comes from learning Java and then learning Perl.

    […]

    It's like being a child: When you're at the very beginning of your life, and you've seen very little of the world of software engineering, the few things that you have seen fill your whole mind up and heavily colour all of your future experiences.

    There's even the fact that - shockingly - Java isn't the number one all-purpose solution to all conceivable problems.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (9)
As of 2024-03-28 09:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found