From: James Cunningham Date: 2007-04-18T08:00:07+09:00 Subject: Re: IDEs, syntactic vs. semantic highlighting, etc. On 2007-04-17 17:06:22 -0400, Chad Perrin said: > On Wed, Apr 18, 2007 at 12:45:22AM +0900, Jeremy Tregunna wrote: >> On 16-Apr-07, at 8:53 PM, Chad Perrin wrote: >>> >>> That's really saying some awful things about Java -- not that I'm >>> all that surprised. Perl's OO is ugly as sin (and I'm a fan of Perl, >>> saying this). Sure, it's not as awful as PHP's and VB's OOP features, >>> but it's not exactly elegant by any stretch. >>> >>> I must agree that, judging by my own experience, Ruby really does get >>> object oriented programming substantially "right". >> >> Without hijacking this thread and making it about prototype >> languages, I really do find statements like this cute (not >> necessarily funny, but cute). While Ruby's Classes (and Smalltalk's >> too) are just objects, it seems weird to me to separate the two >> concepts. So any statement like that makes me wonder what kind of >> exposure to object-oriented languages one has--or rather, lack of >> exposure to many. > > That sounds slightly condescending. > > I haven't dealt with object oriented programming in a great many > languages. I've run up against it in C++, Object Pascal, Objective C, > PHP, Perl, Python, Ruby, and VB, at least. I may have forgotten a > couple. I happen to like Ruby's more than Obj-C's, which I tend to like > more than that of any of the rest of the languages I've mentioned (as > far as I recall -- I don't remember OOP in Object Pascal much, for > instance). I like the general structure of OOP in Python more than any > of the rest of them except Ruby, but I dislike Python in general, so it > loses out. > > Does that give you a clearer idea of where my comments are arising? It was incredibly condescending, for what it's worth, in addition to being wrong-headed. Prototype-oriented languages are overwhelmingly outnumbered by class-oriented OO languages. That's not to say that prototype-oriented languages aren't neat. IO[1] is one; TADS[2] is another, understandably not often considered (given its limited scope). I've been playing with IO quite a bit the past few days and, frankly, I'm just about in love it. (There are no classes, and no inheritance; objects are cloned from other objects and modified as necessary.) Best, James [1] http://www.iolanguage.com/about/ [2] http://www.tads.org/