On Nov 11, 2006, at 1:05 PM, Ross Werner wrote:
Java code tends to be very noun-oriented. In other words, you typically call component.paint() rather than paint(component), and you typically see functions like suggestor.suggest(foo) rather than just suggest(foo). My contention is that this noun-orientation is common to all object-oriented code, and is not specific to Java.

What makes component.paint() noun-oriented and paint(component) verb- oriented? Both are 'sentences' of one noun and one verb, combined with some punctuation. If this whole 'noun-oriented' thing is just about noun/verb ordering, I don't think it's really saying anything at all.

There are a lot of different ways to do 'object oriented' code, since as I said before, it's not a well-defined term. The Common Lisp Object System (which is very similar to Dylan's object system as well, if you think the parentheses invalidate CLOS) doesn't even list the noun first. If 'noun-orientation' is simply about noun/verb ordering, your assertion that it's common to all object-oriented code is therefore false, unless you go and make your definition of 'object oriented' be 'object oriented like Java is', in which case it is trivially true and rather meaningless.

Java is about objects interacting through pre-defined, statically enforced interfaces. The static types of the objects define how they may interact. In Smalltalk, there are no limitations on interaction based on static type; any object may send any message to any other object, and the ability to receive and respond to those messages is not tied to class hierarchies. In CLOS, method dispatch can be keyed on multiple objects rather than just what type the receiver is. The 'noun-orientation' of these languages varies widely, no matter which definition of 'noun-orientation' you pick.

Anyway, that's about all I have to say about this subject. I think the whole 'Execution in the Kingdom of Nouns' rant was lacking in depth to begin with, and it pretty much boils down to 'Steve Yegge thinks Java-style OOP programming is awkward'.

                --Levi

/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/

Reply via email to