On Sun, Oct 07, 2007 at 12:14:29PM +0900, M. Edward (Ed) Borasky wrote:
> Chad Perrin wrote:
> >Would you rather implement a complex object oriented application
> >architecture in Ruby or Perl, knowing Perl's obtuse OOP syntax and with a
> >benchmark-suggested 1.1% performance improvement for Perl, all else being
> >equal?  I'd look at the 1.1% performance improvement and say "So f-ing
> >what?  It's OOP.  Use Ruby."
> 
> Well ... I guess I don't think Perl's OOP syntax is all that bad. I can 
> read and write Perl OO scripts (now) and, as I've noted before, I am one 
> of several Perl programmers and one of only one Ruby programmers in my 
> general work neighborhood. I haven't tried Python yet -- I don't even 
> read Python -- so I wouldn't know how its object features compare with 
> Ruby's. But I'll also admit that if it were a mandated OO project, it 
> would be difficult to rule out Java for any "scripting language".

Perl's is bolted on and fugly.  I usually disagree when people say Perl's
syntax is inherently ugly -- it can lend itself to very elegant (and
readable!) code in the hands of someone who knows what (s)he's doing.  In
the case of OO Perl, however, I fear I must agree that it's just hideous,
and has a little more scaffolding cluttering things up than it should.

Python reads a bit like Ruby without Ruby's elegant idioms (such as
iterator blocks), with additional explicitness in cases like calls to
self, and (for me at least) a disconcerting tendency to make my eyes want
to run off the right-hand edge of the "page" and to find myself wondering
where the rest of a block of code went, even if it's actually complete as
written.  Python just generally looks inherently broken, like someone
left a messy, half-finished bunch of hacked-up clutter on the page.  It's
amazing how much an end-delimiter (or lack thereof) makes in readability
for me; with Python, I have to kind of reorder my brain just to get past
the fact that the code always looks broken and unfinished before I can
make sense of it.  I'm also mildly put off by the mixture of methods and
core functions -- which, in contrast to Perl's bolted-on OOP, makes
Python's non-OOP look bolted on (but less avoidable than Perl's OOP
stuff).

The general OO structure of it is roughly comparable to Ruby's in many
ways, though.

As for Java, I'd find it difficult to convince myself to use it for
anything where the benefits of the optimizing VM's long-running
performance characteristics weren't critical to the app.


> 
> >I've heard incredibly good things about Clean.  I've also witnessed
> >something like a meltdown on a mailing list because someone reached a
> >frustration saturation point dealing with the language.  I don't know if
> >that was more the language's fault, or the fault of the programmer's
> >background in something like Java.  I'm interested in giving it a look at
> >some point, but I have other stuff in the queue first.  It's probably way
> >back there around the level of Erlang and Forth for me -- both of which
> >are languages about which I've heard great things, but are well outside
> >the range of my aims right now.
> 
> Well, I already *know* Forth. :) Unless you're just a hard-core language 
> freak or want to get involved with embedded systems, you'd probably be 
> just as well off ignoring Forth.

I have some interest in embedded systems -- eventually.  I also like
learning things in general, and learning things that give me new
perspectives and help me broaden the way I think about problems in
specific.  What I've heard about Forth makes me think that'd be a good
one to add to the repertoire . . . some day.  Haskell's a bit further up
the list, though.


> 
> Besides, I'm only downloading Clean because the Vector Pascal download 
> site is down! :)

Whatever excuse helps you get up in the morning, I guess.

-- 
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
Ben Franklin: "As we enjoy great Advantages from the Inventions of others
we should be glad of an Opportunity to serve others by any Invention of
ours, and this we should do freely and generously."