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.