home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!charon.amdahl.com!pacbell.com!ames!agate!doc.ic.ac.uk!uknet!gdt!aber!aberfa!pcg
- From: pcg@aber.ac.uk (Piercarlo Grandi)
- Newsgroups: comp.object
- Subject: Re: FAQ Part 1 (of 2) [ polymorphism or latent typing? ]
- Message-ID: <PCG.93Jan27183122@csthor.aber.ac.uk>
- Date: 27 Jan 93 18:31:22 GMT
- References: <1993Jan22.194636.4631@dec254.uucp>
- Sender: news@aber.ac.uk (USENET news service)
- Organization: University College of Wales, Aberystwyth
- Lines: 44
- In-Reply-To: hall@dec254.uucp's message of 22 Jan 93 19: 46:36 GMT
- Nntp-Posting-Host: thor.dcs.aber.ac.uk
-
- >>> Regarding Re: FAQ Part 1 (of 2) [ polymorphism or latent typing? ];
- >>> hall@dec254.uucp (Phil Hall) adds:
-
- Hall> In <PCG.93Jan20002119@decb.aber.ac.uk> pcg@aber.ac.uk (Piercarlo
- Hall> Grandi) expounds:
-
- pcg> I would find it rather hard to agree with those who say that latent
- pcg> typing of variables is an essential aspect of an OO language, as
- pcg> IMNHO one can still apply the OO paradigm without it.
-
- Hall> Without "latent typing" there really is very little to distinguish
- Hall> object-orientedness.
-
- Uhmmm, I think this is too pessimistic, and the reverse may be truer.
- Weak/dynamic/latent typing is used to good effect also in many non OO
- languages, e.g. Lisp, and I think that it is not the discriminant for
- OO-ness; I think you have almost gotten there when you wrote later on:
-
- Hall> I guess OO can be defined as:
- Hall> My superior method for clustering functions and data.
-
- But not *any* superior method -- the OO method is _very_ specific and
- clearly defined. So I would think that you are not right on this:
-
- Hall> I would argue that languages without late binding are better
- Hall> refered to as modular languages; OO is a more restricted paradigm.
-
- Modular programming just states that better reuse is achieved
- clustering functions and data so that intermodule dependencies and
- connections are minimized, but does not give any guiding principle on
- how to achieve this.
-
- The OO method is to put into a cluster/module/class one and only one
- type/mode/data representation definition and all and only the procedures
- that know its internal details.
-
- Indeed from an abstract viewpoint a class is a module that only contains
- one data type and the related operations (this is what is achieved by
- default, for example, by the classic procedure/class and closure/object
- technology).
-
- This is what uniquely distinguishes OO-ness, and whether the language is
- pointer based, has latent typing, is compiled, interpreted, interactive,
- batch, or whatnot is basically irrelevant.
-