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).
This article was originally written by Pigsbig78 |