This category is on programming languages and documents that partly or fully support the basic principles of object-oriented programming: extensive modularity usually embodied in objects, classes, encapsulation, data hiding, inheritance, polymorphism, message passing, etc. On this page, languages are arranged in three groups and levels: 1) Top group: issues spanning multiple unrelated languages. 2) Middle group: types or classes of languages. 3) Bottom group: specific languages, with their own directory category.
This category is on programming languages and documents that partly or fully support the basic principles of object-oriented programming: extensive modularity usually embodied in objects, classes, encapsulation, data hiding, inheritance, polymorphism, message passing, etc.
Class-based object-oriented languages are OO with classes. Instances of objects are made by inheriting a master class. The original one was Simula.
This category is for object-oriented languages that are class-based: class-based object-oriented languages, OO with classes.
Prototype-based languages are classless object-oriented languages, OO without classes. Instances of objects are made by cloning other instances. Usually, these languages have only one data structure, the associative array. Such languages are very flexible during runtime, and far simpler than class-based languages. The original one was Self.
This category is for prototype-based languages: classless object-oriented languages, OO without classes.
In Pure object-oriented (OO) languages, everything in the system is, consistently, an object, without exception: every class, instance, method, character, punctuation mark, etc. Consistency makes much programming easier to learn and do, faster, and more productive. In non-pure OO languages (C++, Java, etc.), some things are, inconsistently, not objects: classes, primitives (characters, punctuation), etc. Inconsistency makes much programming harder to learn and do, slower, and less productive. On this page, languages are arranged in two groups and levels: 1) Top group: types or classes of language. 2) Bottom group: specific languages.