[net.micro] OOPS

vax2:kurt@fluke.UUCP (05/23/83)

Object Oriented Programming is nothing more or less than a way to look at
problems in programming.  It turns out that an important class of
programming problems has a natural solution in an object oriented style.
For example, a computer system may conveniently be modelled as a set of
objects which represent the hardware subsystems of the modelled computer.
The modules that compose compilers can also frequently be expressed as
objects that communicate, although in some cases the comparison to real
physical objects is somewhat strained.  In fact, an object oriented model
can be usefully employed in most programming tasks if the programmer is
used to thinking in this way.

Object oriented programming is not the last word in programming.  There are
certainly programming problems where the concepts do not break up neatly
into objects.  Just as no single language is appropriate for every
programming application (no matter how often the DoD says otherwise), no
programming style is appropriate for every problem.

Object Oriented Programming primitives ARE a data abstraction facility.
There is no important difference (other than notation) in the facilities
provided by, say, Simula vs. Ada(TM).  You have only the difference between

    C :- A.ADD(B)         !  Simula complex add
    C := COMPLEX.ADD(A,B) -- Ada (TM) complex add

Adding messages to the other notions of object oriented programming is no
big thing either.  Except for certain multiprocessing applications, messages
are isomorphic to procedure calls and are generally implemented the same
way.

So, give us all a break.  "Object Oriented Programming" is like "My Favorite
Language."  We all know that it is a good thing.  People will discover just
how good it is when they are exposed to a problem whose solution is obviously
object oriented.  Since any reasonably modern language (more modern than
Pascal unfortunately) can be used in an object oriented fashion, they will
discover soon enough.  In a couple of years the notion of object orientation
will be as normal as the notion of structured programming and will be used
whenever it is useful.

Kurt Guntheroth
John Fluke Mfg. Co., Inc.

PS:   Isn't there a net.lang.* group for this discussion?
PPS:  Oh yeah. Ada is a trademark of the Department of Defence, makers of all
      those wonderful things that go bump in the night.

Smith%cmu-cs-c@sri-unix.UUCP (05/27/83)

From:  David Smith <Smith@cmu-cs-c>

You missed some important points of Ada.  Your example of complex
addition should be
	C := A+B;
The advantage of Ada's overloading capability (and Smalltalk messages)
is that the + operator is interpreted in the context of the types of
its operands.