[racket] Whither ProfessorJ

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Wed Jan 18 16:14:00 EST 2012

IMHO, a good perspective on OO is to think first that behavior emerges 
from the *interactions* of objects.  (Which perspective also has 
implications for OOPLs, IMHO.)

Very-very-very simple embedded systems, like their model of a 
coffeemaker (which doesn't even need to be an embedded system) make an 
example of this almost too easy.

More important than the ``objects'' here is the ``state modeling'', 
which predates OO in the discipline.

This coffeemaker example walks people through some of a process, but 
doesn't do a great job of convincing that this hairy-looking process and 
work product is better than a few lines of imperative code that one 
could just whip out.  You need the reader to either be an intelligent 
person who temporarily suspends judgment, or to be a Java grunt who 
always just goes through whatever motions they're told to go through.

Incidentally, embedded systems provide a particularly good example of 
needing to address concurrency issues in your OO model.

Raoul Duke wrote at 01/18/2012 03:32 PM:
> on the other hand, there exists a significant OO camp that - at least
> to my simple mind - makes a decent argument for starting with the
> behaviour/mu, not the data/nouns. small ex. cf. e.g.
> http://www.objectmentor.com/resources/articles/CoffeeMaker.pdf


Posted on the users mailing list.