On Sunday April 26 2009, John F. Sowa wrote:
> Dick,
>
> RHM> I finally understand that Class is the extension set of Concept.
>
> > Now, all of the "strange" properties of "Class" are obvious,
> > because "Class" is just a set.
>
> The word 'class' has created an enormous amount of confusion in
> computer all branches of computer science and related subjects. The
> problem is caused by three very different definitions of the word:
>
> ....
>
> 3. In object-oriented programming systems, people have adopted the
> word 'class' as a synonym for 'type'. That is an extremely
> unfortunate choice of word that should be outlawed. It creates
> an immense amount of confusion without any redeeming social
> value. (01)
That's really an oversimplification. (02)
In some languages, types and classes are synonymous or nearly so, but in
many languages, they are distinct, even if closely related. Java has
purely abstract (non-instantiable, implementation-free) types
called "interfaces," so-called "abstract classes" which have partial
implementations but are not instantiable and ordinary (concrete)
classes which are instantiable. Java also has "primitive types" such as
numeric and boolean types. All of these things have characteristics of
types. My understanding (entirely hearsay) is that in OCaml class and
type entirely independent formalisms. In Scala, about which I know a
little but am no expert, types and classes are also distinct though
closely entwined. My C++ is pretty rusty, but I think it might be valid
to say that its use of class is synonymous with type, though C++ also
has primitive types akin to those of Java. (03)
I know the world of software and programming is notorious for abusing
terminology and I wish it weren't so, but the problem is that (ab-)
uses of existing terms gets established without the awareness of those
who understand the proper or pre-existing use of those terms. Once that
happens, it's pretty hard to replace those new uses with something less
confusing to those who wish to operate across domains. (04)
Regardless of what a logical use of terminology would be, class and type
are going to remain a part of the nomenclature in programming and
programming language communities for a long time. They will continue to
have varying interpretations and degrees of distinctness. (05)
> ...
>
> John Sowa (06)
Randall Schulz (07)
_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx (08)
|