W wyniku tego, znacząco różna, aczkolwiek analogiczna terminologia jest używana do definicji obiektu oraz instancji.

W niektórych językach klasy i obiekty mogą być zaspokojone używając innych konceptów jak Cechy i Domieszki (programowanie obiektowe).

Programowanie klasowe kontra prototypowe W językach bazujących na klasach są one definiowane na początku, a obiekty tworzone są w oparciu o klasy. Jeżeli dwa obiekty „jabłko” oraz „pomarańcza” są utworzone w klasie „Owoce”, są w wyniku dziedziczenia owocami i możemy być pewni, że można się nimi posługiwać w ten sam sposób, dla przykładu programista może oczekiwać istnienia tych samych atrybutów takich jak „kolor”, „zawartość cukru” lub „czy jest dojrzały”. W językach prototypowych obiekty są pierwotnymi bytami. Żadne klasy nawet nie istnieją. Prototyp obiektu jest po prostu kolejnym obiektem, do którego podłączony jest inny. Każdy obiekt ma jeden „link prototypowy” (i tylko jeden). Nowe obiekty mogą być stworzone bazując na tych, które już istnieją i są wybrane jako ich prototyp. Możesz nazwać „jabłko” i „pomarańczę” dwoma różnymi obiektami, jeżeli istnieje obiekt „owoc”, a zarówno „jabłko”, jak i „pomarańcza” mają „owoc” za prototyp. Idea klasy „owoc” nie istnieje wyraźnie, ale klasa równoważna obiektu dzieli ten sam prototyp.