[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" <firstname.lastname@example.org>
- To: Uche Ogbuji <email@example.com>
- Date: Wed, 23 May 2001 11:02:47 +0100 (BST)
On Tue, 22 May 2001, Uche Ogbuji wrote:
> > Aye. The fact that you can replace any part of the system by another part
> > implementing the same interface without having to delve into the original
> > source helps.
> Where does the mistaken idea come from that this is proprietary to OO
> systems? It precedes at least C++ and Smalltalk, since structured
> programming allows the same. It's also quite possible once you've moved
> beyond OO for modeling.
It's not unique to OO systems, it's just kind of automatic. If somebody
writes an OO system, unless they do something stupid you can swap your own
classes in for theirs by using polymorphism. Without virtual method
dispatch you can't do this particularly well (I guess you can use dynamic
linker tricks, but does that count? :-)
> You can, again, do this quite handily without messing with inheritance, as
> long as your tools allow you. OO tools largely restrict you to
> inheritance for black-box substitution. This is exactly one of the
> problems I have with it.
No! Polymorphism! The existing code relies on an object implementing a
given interface, and you can write other classes to implement that
interface and swap them in, you don't have to subclass the existing
> What you and Mike seem to be touting is common sense that needs no help
> from OO, and indeed precedes OO, and will survive it.
Many programming language features enforce common sense, because
programmers and software engineers don't have it. The antithesis is Perl!
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