OOP — en kort historik

Lite kuriosa innan du går vidare: objektorienterad programmering är äldre än de flesta tror, och kommer inte från något av de språk man först tänker på.

Simula 67 — där det började

Simula, skapat 1967 av norrmännen Kristen Nygaard och Ole-Johan Dahl, var det första språket med klasser och objekt ungefär som vi känner dem idag. Det byggdes för att simulera verkliga system (därav namnet) — och begreppen som behövdes för det (objekt med eget tillstånd, klasser som mallar) visade sig vara användbara för nästan all programmering.

Smalltalk — där termen myntades

Alan Kay och teamet på Xerox PARC utvecklade Smalltalk under 1970-talet och myntade faktiskt själva uttrycket “object-oriented programming”. Smalltalk drev idén längre än Simula — allt är ett objekt, även tal och true/false, och objekt pratar med varandra genom att skicka meddelanden till varandra.

C++ — OOP möter C

Bjarne Stroustrup byggde C++ (första versionen 1979, kallades då “C with Classes”) genom att lägga klasser och objekt ovanpå C. Det gjorde OOP tillgängligt för systemnära programmering — och gjorde C++ till det språk som spred OOP-tänket brett under 80- och 90-talet.

Java — hanterad körning, brett genombrott

Java (Sun Microsystems, 1995) tog C++:s syntax men körde i en hanterad runtime (JVM) med garbage collection och utan pekare. “Write once, run anywhere” gjorde OOP till standardsättet att bygga företagssystem under 2000-talet.

C# — nästa steg i samma linje

C#, som du läser om i den här boken, kom 2000 och tog samma grundidé vidare — se Varför C# ser ut som det gör för hur C# specifikt byggde vidare på Javas och andra språks lärdomar.

TL;DR

OOP föddes i Norge (Simula, 1967), fick sitt namn i Kalifornien (Smalltalk, 1970-tal), spreds brett via C++ (1979) och Java (1995) — och C# är ett av de senaste stegen i samma över 50 år långa linje.