1 Answers
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 termed 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++ , Objective-C , Eiffel, Xojo , 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 , JavaScript, 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.
Sometimes, the term object-based is applied to prototype-based programming languages, true object-oriented languages that lack classes, but in which objects instead inherit their code and data directly from other template objects. An example of a commonly used prototype-based scripting language is JavaScript.