[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