[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Picking the Tools -- Marrying processing models to data models
- From: "Al B. Snell" <alaric@alaric-snell.com>
- To: Uche Ogbuji <uche.ogbuji@fourthought.com>
- Date: Wed, 23 May 2001 17:38:27 +0100 (BST)
On Wed, 23 May 2001, Uche Ogbuji wrote:
> Note that you can do what I did above in languages that don't even claim
> to be OO. In LISP (not even CLOS), you do it with lambdas. In C you do
> it with function pointers. Both predate OO, so I don't see how you can
> say they are "emulating" OO.
Well, that comes down to Turing-complete languages being equivelant in
expressive power...
OO is just language support for a common pattern, that behaviour is bound
to bits of data, and you can substitute things for other things if they
both support the interface required for that role. You could do that
before; it's good practice to make things modular like that. OO is,
indeed, nothing more than that; we were doing it before we knew it by that
name and added explicit support in languages to make it easy to do things
that way :-)
I certainly agree that OO is not the be all and end all; things that
deserve the name "script" (a sequence of commands with relatively simple
control flow and a simple data model, usually defined by things outside
the script rather than the script itself) barely benefit from OO in the
script (but it's often nice if the script controls an OO system...).
And for larger software systems, I am thinking that, perpendicular to the
OO or not OO issue, expressing procedure bodies as state machines rather
than using while/if/case constructs might be a clearer way of expressing
behaviour and stuff. But that's still in the theory stage.
ABS
--
Alaric B. Snell
http://www.alaric-snell.com/ http://RFC.net/ http://www.warhead.org.uk/
Any sufficiently advanced technology can be emulated in software