Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: Notesfiles; site ea.UUCP
Path: utzoo!watmath!clyde!burl!mgnetp!ihnp4!inuxc!pur-ee!uiucdcs!ea!mwm
From: mwm@ea.UUCP
Newsgroups: net.lang
Subject: Re: Gotos in programming languages - (nf)
Message-ID: <5400005@ea.UUCP>
Date: Fri, 1-Jun-84 16:42:00 EDT
Article-I.D.: ea.5400005
Posted: Fri Jun  1 16:42:00 1984
Date-Received: Wed, 6-Jun-84 05:41:40 EDT
References: <1979@mit-eddi.UUCP>
Lines: 50
Nf-ID: #R:mit-eddi:-197900:ea:5400005:000:2033
Nf-From: ea!mwm    Jun  1 15:42:00 1984

#R:mit-eddi:-197900:ea:5400005:000:2033
ea!mwm    Jun  1 15:42:00 1984

/***** ea:net.lang / mit-eddi!nessus /  8:29 am  May 30, 1984 */
And for a final brash statement:

If in an introductory programming course, you teach anything other than
an object oriented programming language, such as Lisp, CLU, or Smalltalk
(sorry folks, Pascal does not count), you are brain-damaging your
students almost as much as if you taught them Basic.
-- 
				-Doug Alan
/* ---------- */

Depends on what you mean by "object-oriented" (aren't buzz words
wonderful?).  I intend to use the terminology laid down in a SNot paper (I
don't have it handy - I'll post the reference later (I promise!)), like so:

Data Encapsulation: Programming constructs that allow you to hide the
	insides	of data structures and user routines from the outside
	world. Example: Modula II.

Data Abstraction: Data encapsulation with the added ability to use the
	encapsulated object with different types. Example: CLU.

Object-oriented Language: A language where all functions and structures
	have to be encapsulated. Example: Smalltalk is to strong.
Concurrent
	Euclid is about right.

[Disclaimer: The above are being quoted from memory, and any errors or
deficiencies are solely my fault.]

By these definitions, LISP isn't object-oriented, and CLU allows you to
write as if it were object-oriented. LISP is a problem because it isn't a
single language. What variant were you refering to in the above? Surely not
LISP 1.5?

To comment on the statement: If you meant that teaching languages that
don't support data abstraction (such as C), then I agree. Data
encapsulation just isn't sufficient. If you mean truly object-oriented,
then I disagree. Having free-standing (non-encapsulated) functions is like
goto's: If the language has all the right constructs, then you don't need
them; if it doesn't, then there are occasionally times when you do.

Since I don't know what "all the right constructs" are in this case, I
still want free-standing functions. If you know what the right constructs
are, please let the rest of us in on it!