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."