In many publications, these terms are used interchangeably and treated as synonyms, making the description hard to understand the concept of object-oriented programming in the context of programming in practice and design patterns. For example "...It (end OOP) is like a programming language model organized around objects rather than "actions" and data rather than logic. An "object" in an OOP language refers to a specific type, or "instance", of a class. Additionally, here we can find the term "a programming language model". My point is that a language is a set of alphabet, syntax, and semantics rules, but not a model. In this text snippet, the type is equivalent to instance for me.