Object-oriented programming language
An object-oriented programming language is one that allows or encourages,
to some degree, object-oriented programming methods.
See object-oriented programming for details about those methods.
Though Simula (1967), a language created for making simulation programs,
was probably the first language to have the primary features
of an object-oriented language, Smalltalk is arguably
the canonical example, and the one with which much of the theory of object-oriented
programming was developed.
These languages include "pure" object-oriented languages such as
Smalltalk and Ruby, which were designed specifically
to facilitate--even enforce--object-oriented methods;
languages such as Java, Eiffel,
and Python, which are primarily designed for
object-oriented programming but have some procedural elements;
and languages such as C++ and Perl,
which are historically procedural languages that have been extended with some
object-oriented features. Oberon (and its successor Oberon-2) include most of the functionality of objects (classes, methods, inheritance, and reusability) but in a distinctly original, and elegant, form.
Some languages include abstract data type support, but not all of the features of object orientation (eg, Modula-2 which provided excellent encapsulation adn information hiding). These are sometimes called object-based languages. PHP 4, for example, includes no provisions for
inheritance or
polymorphism, but does allow for a concept of "class", and thus enables the programmer to use unenforced versions of abstraction and
encapsulation.
This is often useful--inheritance and polymorphism are usually used to reduce code bloat, but abstraction and encapsulation are used to increase code clarity, quite independent of the other two.
Languages with object-oriented features
Referenced By
Computer programming language | Object-oriented | Object-oriented (programming) | Object-oriented programming | Object Oriented Programming | Object orientation | Object oriented | ProgrammingLanguage | ProgrammingLanguages | Programming Languages | Programming language | Programming methodology
|