On Mon, 13 Jul 2009 16:35:06 +0400, Bulat Ziganshin <bulat.ziganshin@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^