[Haskell] Re: 20 years ago

Benjamin L.Russell DekuDekuplex at Yahoo.com
Tue Jul 14 02:14:44 EDT 2009


On Mon, 13 Jul 2009 16:35:06 +0400, Bulat Ziganshin
<bulat.ziganshin at gmail.com> wrote:

>The first widespead OOP system was a Turbo Pascal 5.5, released 1989.

Just for the record, Turbo Pascal was preceded by a *pure*
object-oriented language, Smalltalk [1], as described below:

>The Smalltalk language, which was developed at Xerox PARC (by Alan Kay 
>and others) in the 1970s, introduced the term object-oriented 
>programming to represent the pervasive use of objects and messages as 
>the basis for computation.... Smalltalk and with it OOP were introduced to 
>a wider audience by the August 1981 issue of Byte magazine.

The difference between a pure object-oriented programming language and
an impure one is that in the former, there is no difference between
values which are objects and values which are primitive types, as
explained below [2]:

>Smalltalk is a "pure" object-oriented programming language, meaning 
>that, unlike Java and C++, there is no difference between values which 
>are objects and values which are primitive types. In Smalltalk, primitive 
>values such as integers, booleans and characters are also objects, in the 
>sense that they are instances of corresponding classes, and operations 
>on them are invoked by sending messages. A programmer can change 
>the classes that implement primitive values, so that new behavior can 
>be defined for their instances--for example, to implement new control 
>structures--or even so that their existing behavior will be changed. 
>This fact is summarised in the commonly heard phrase "In Smalltalk 
>everything is an object" (which would more accurately be expressed as 
>"all values are objects", as variables aren't).

Most currently widespread programming languages that are termed
"object-oriented" aren't really object-oriented, but are really
procedural with object-oriented extensions.  For example, this is true
of such languages as C++ and Java.

Incidentally, there is an interesting paper [3] by Matthias Felleisen
presenting the thesis, as described in the synopsis [4], that "good
object-oriented programming heavily ``borrows'' from functional
programming and that the future of object-oriented programming is to
study functional programming and language design even more."

-- Benjamin L. Russell

[1] "Object-oriented programming - Wikipedia, the free encyclopedia."
_Wikipedia, the free encyclopedia._ 13 July 2009. 14 July 2009.
<http://en.wikipedia.org/wiki/Object-oriented_programming>.

[2] "Smalltalk - Wikipedia, the free encyclopedia." _Wikipedia, the
free encyclopedia._ 3 July 2009. 14 July 2009.
<http://en.wikipedia.org/wiki/Smalltalk>.

[3] Felleisen, Matthias. "Functional Objects, Functional Classes."
Invited talk at 18th European Conference on Object-Oriented
Programming, Oslo, Norway, 14-18 June 2004. 16 June 2004.
<http://www.ccs.neu.edu/home/matthias/Presentations/ecoop2004.pdf>.

[4] Felleisen, Matthias. "Functional Objects, Functional Classes."
College of Computer and Information Science, Northeastern University.
4 Aug. 2004. 14 July 2009.
<http://www.ccs.neu.edu/home/matthias/Presentations/ecoop2004.html>.
-- 
Benjamin L. Russell  /   DekuDekuplex at Yahoo dot com
http://dekudekuplex.wordpress.com/
Translator/Interpreter / Mobile:  +011 81 80-3603-6725
"Furuike ya, kawazu tobikomu mizu no oto." 
-- Matsuo Basho^ 



More information about the Haskell mailing list