Наткнулся на список критериев, предлагаемый Jon Bentley, которым должен следовать каждый ООП язык:
- Ортогональность (orthogonality) – соблюдать несвязанные свойства отдельно
- Универсальность (generality) – использование операций для многих целей
- Расчётливость (parsimony) – удаление невостребованных операций
- Полнота (completeness) – может ли язык описать все объекты реализуемой модели?
- Подобие (similarity) – реализовать язык, который смог бы подсказывать по возможности
- Расширяемость (extensibility) – гарантия того, что язык может развиваться
- Открытость (openness) – пользователи могут дополнять своими возможностями
Из-за краткости изложения список местами получился не однозначный, но вполне подходящий для общего представления.
Jon Bentley, “Programming Pearls – Little Languages”,
Communications of the ACM 1986, 29(8)