Andy Roonie meets Perl vs. Ruby... (I couldn't resist)

If you’re not really object oriented programming, perl’s OO
system is good enough (I think most casual OOP programmers are
using it for namespace cleanliness and a cheezy way to carry
around something akin to global variables).

I think this is exactly wrong. If you really know what you’re doing
Perl 5’s OOP facilities are quite powerful and flexible. If you’re
a casual OOP user, you’ll be confused as hell. With Ruby “casual”
OOP is free and “real” OOP is as easy as it possibly could be. Perl
6 will narrow this gap considerably though perhaps Parrot will
narrow the library gap (if it will be possible to call modules
written in one language with a Parrot runtime from another???).

<andy_roonie>

Real quick, Perl OO is nothing more than (most of the time, though
they can be array’s/scalars too) a hash with two magic variables that
say what type of an object it is (read: Perl module name space), and
what type of object it’s inherited from (read: fall back Perl module
name space) and that’s about it. Perl OO is by and large a hash with
a quick shorthand to method name spaces. It’s ugly, a kludge that was
grafted on top of an awk replacement, and is as bastardized of an OO
implementation as one can find in any language anywhere and I wager
few diversified engineers would disagree.

As for Perl 6, I think it’s a technological or linguistic Zeppelin:
it’s dated, dangerous, and just waiting to go down in flames. Java’s
taken the Perl world by storm these days now that Java’s VM is
“better” (compared to where it was 4 years ago) and many Perl folk are
tired of cleaning up old, broken, hacked together, one-liner-ish code
that seemed clever to the writer but is an abomination of engineering
or development when reflected upon not more than 3 weeks after
inception (plus or minus a few weeks depending on how full the
engineer’s head is). As I’ve heard on IRC, “chmod 333 *.pl: you don’t
loose any of the readability after you’ve written the file.”

Most developers use $, and @, and love hiding behind the obfuscation
(read: job security). The Perl culture even seems to endorse and take
pride in the obscurity that the language provides. I know there are
some Perl coding wizards in the crowd reading this saying, “that’s not
so!,” but remember, you’re the exception: think about other peoples
code and the modules you rely on. In my Perl days, everything was
‘use strict;’, ‘-w’ compliant, and read like a decent C program. I
know now, I was among the few exceptions. If the value of OO is in
making systems readable and maintainable, then few could disagree with
the fact that Perl is a failed attempt at OO programming.

I remember an interview with Larry Wall saying that Perl would never
see a version six and he would do everything he could to oppose such
an effort. Someone with purse strings at O’Reilly likely got a hold
of him. By most people’s measurements, Perl 6 should be a different
language, but it isn’t. Changing syntax, breaking compatibility,
changing the underlying C API’s, and breaking existing code is
essentially a new language (I know, it’s a gross understatement).
Kind of a shame that Perl, as it stands, couldn’t be left alone to rot
and dissolve in the corner as a triumph of hackery and all that could
be wrong with engineering: something to only be mentioned in the
computer history books.

Frankly, I can’t wait till the lightning storm comes to town and
lights the massive new Perl Zep on fire. If Perl’s lucky, after the
fallout and exodus of people, all that’ll be left is Parrot and maybe
a Perl5 syntax compiler for Parrot. A whole lot of good that will do.
Community pressure lead to the preservation of the ugliness and
horrific maintainability nightmare that spawned the engineering effort
in the first place. Ironic that one of Larry Wall’s original
statements of Perl will come true even if the version number will be
different: Perl6 == Perl5.

When it’s all said and done, I’m quite pleased that languages evolve
and come and go, I just get annoyed with the ones that don’t die
quietly, or whine about the good old days. Life moves on, get a grip.
For at least the next decade (if elegance prevails, hopefully longer),
I’ve found my language of choice and it doesn’t have a super trendy
name, nor is it ruled by a money grubbing corporation with a trumped
up marketing budget, and I don’t associate this language with going to
Starbucks or, for that matter, going to the bathroom after it runs
through me (after all, coffee is a diuretic). Call me crazy, but I
prefer not associating certain morning rituals with programming, thank
you very much. For me, engineering is, and should always be an
elegant and clean methodology that gets applied to a problem.
Granted that’s not always the case, it is at least the goal. Ruby is
powerful, under stated, non-offensive, provides what I need at my
finger tips, and has actually started making working through problems
fun again.

Going back to Parrot, I place higher chances of Matz finishing Rite
(Ruby + VM) than I do of Parrot actually taking flight. It’ll be
interesting to see if Perl dirigible gets paired down to a paper
airplane that gets thrown by hand. I for one, can’t wait to see it’s
nose crumple as I have nothing to loose when the exodus happens: I’ve
already moved on from the fame that was Perl and have embraced my new
mode of transportation. Ruby’s slick, fast, and feels like driving a
new BMW after years of a beat up, run down Mustang. Sure there’s
something retro about putting big tires on a Mustang and tricking it
out with a new engine, but what’s the point? I have a life outside of
my car and don’t want to spend every night tuning it up or getting my
fingers dirty. Instead I’d rather spend it with my girlfriend or out
on a beach staring at the stars: life is more than the sum of the 1’s
and 0’s that we programmers play with during the day. Come time for a
challenge and without any real prep, I can hop in my M5 and it will
out pace a 'stang any day of the week. If you have to out pace the
'stang, wouldn’t you rather be doing it in leather, with a smooth
shifting car, that’s quiet, has seat warmers, lumbar support, and a
killer Bose speaker system?

Ruby’s not perfect mind you, but it has the elegant design and
ingenuity behind it that makes me believe that one of these days,
it’ll get there. What really excites me about Ruby and its future is
that it will do so elegance and with class. ::shrug:: I don’t know
about you, but I think wings and a vertical take off would be damn
slick on a BMW, don’t you? With that said, until the next computer
genius comes along and invents something even more slick
(transporter???), I’m going to stick with my shinny new BMW.

PS And for those interested in having the beverage language carried
over to the car analogy, I associate Java with large, ugly, gas
guzzling SUVs (which get spanked by even non-tweaked Mustangs).

</andy_roonie>

···


Sean Chittenden

<andy_roonie snip=‘true’ />

So, Sean, what do you really think?

For what it’s worth, I’ve been told that Parrot is essentially
feature-complete and should be alpha-ready by the end of the summer. As it
is, there is a BASIC interpreter written in Parrot byte-code available
today.

James

Sean Chittenden wrote:

Frankly, I can’t wait till the lightning storm comes to town and
lights the massive new Perl Zep on fire.

Flame wars are even lamer.

Tobi

···


http://www.pinkjuice.com/

That’s great news. Who’s working on the
Ruby-Parrot thing?

Now all we need is to manufacture
a chip that runs Parrot code natively…

Hal Fulton

···

----- Original Message -----
From: james@rubyxml.com
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Tuesday, June 25, 2002 3:16 PM
Subject: RE: Andy Roonie meets Perl vs. Ruby… (I couldn’t resist)

<andy_roonie snip=‘true’ />

So, Sean, what do you really think?

For what it’s worth, I’ve been told that Parrot is essentially
feature-complete and should be alpha-ready by the end of the summer. As it
is, there is a BASIC interpreter written in Parrot byte-code available
today.

<andy_roonie snip=‘true’ />

So, Sean, what do you really think?

heh. I associate no longer using Perl with having ones back popped
into place after it had slowly gone out over the course of several
years: you never realize how painful it was to have it out of place
until its finally set strait. I woke up this morning w/ an email from
the ba-rb and had to scratch a comedic and technical itch that was
left over from my back being out of place.

For what it’s worth, I’ve been told that Parrot is essentially
feature-complete and should be alpha-ready by the end of the
summer. As it is, there is a BASIC interpreter written in Parrot
byte-code available today.

That’s excellent to hear! I think Parrot has promise, but that the
perl6 syntax that’s going to be the prob. Accommodating everyone’s
requests isn’t going to be easy, esp with existing code around.
::shrug:: Any-who, I hope a few of you enjoyed it, it was fun to
write. :slight_smile: -sc

PS This wasn’t intended to start a flame war or upset anyone: if it
did, I apologize and please feel free to delete.

···


Sean Chittenden

<andy_roonie snip=‘true’ />

So, Sean, what do you really think?

For what it’s worth, I’ve been told that Parrot is essentially
feature-complete and should be alpha-ready by the end of the summer. As it
is, there is a BASIC interpreter written in Parrot byte-code available
today.

There’s also a forth interpreter and a few toy languages … Perl5/6,
Python, and ruby have all yet to be written …

-pate

···

On Wed, 26 Jun 2002 james@rubyxml.com wrote:

James