OT - Re: GPL Java

Levi Pearson levi at cold.org
Sat Nov 11 21:17:04 MST 2006

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


More information about the PLUG mailing list