The term "object-based language" may be used in a technical sense to describe any programming language that uses the idea of encapsulating state and operations inside "objects". Object-based languages need not support inheritance or subtyping, but those that do are also said to be "object-oriented". Object-based languages that do not support inheritance or subtyping are usually not considered to be true object-oriented languages.
Examples of object-oriented languages, in rough chronological order, include Simula, Smalltalk, C++ (whose object model was based on Simula's), Objective-C (whose object model was based on Smalltalk's), Eiffel, Xojo (previously REALbasic), Python, Ruby, Java, Visual Basic .NET, C#, and Fortran 2003. Examples of a language that is object-based, but not object-oriented are early versions of Ada, Visual Basic (VB), and Fortran 90. These languages all support the definition of an object as a data structure, but lack polymorphism and inheritance.
In practice, the term "object-based" is usually applied to those object-based languages that are not also object-oriented, although all object-oriented languages are also object-based, by definition. Instead, the terms "object-based" and "object-oriented" are normally used as mutually exclusive alternatives, rather than as categories that overlap.
Both object-based and object-oriented languages (whether class-based or prototype-based) may be statically type-checked. Statically checking prototype-based languages can be difficult, because these languages often allow objects to be dynamically extended with new behavior, and even to have their parent object (from which they inherit) changed, at run time.
|Object-oriented language||Object-based language|
|Object-oriented language supports all the features of OOPs (Abstraction, Encapsulation, Inheritance, Polymorphism).||Object-based languages don't support all the features of OOPs like polymorphism or inheritance.|
|Examples: C++, C#, Java etc.||Examples: VB (pre-.NET) etc.|
Ada 83 itself is generally not considered to be object-oriented; rather, according to the terminology of Wegner [Weg 87], it is said to be object-based, since it provides only a restricted form of inheritance and it lacks polymorphism.
Manage research, learning and skills at defaultLogic. Create an account using LinkedIn or facebook to manage and organize your IT knowledge. defaultLogic works like a shopping cart for information -- helping you to save, discuss and share.