Wirtschaftsinformatik (Bachelor-Studiengang): Programmierung (1. Semester)
Sie sind hier: Startseite › Wirtschaftsinformatik › Programmierung Java (Kurs 1): Zur Geschichte objektorientierter Programmiersprachen
HB / CM, Kurs vom 01.04.2002 - 30.09.2002
Zur Geschichte objektorientierter Programmiersprachen
Simula 67
Der erste Vorläufer objektorientierter Programmiersprachen ist die Sprache Simula 67. 1967 von O.-J. Dahl (Universität Oslo) als Sprache zur Realisierung ereignisgesteuerter Simulationen entwickelt. Die Begriffe "Objekt" und "Klasse" tauchten erstmals auf.
Smalltalk
Die erste rein objektorientierte Programmiersprache ist Smalltalk (rein = "alles ist ein Objekt"). Wurde ab 1972 von Adele Goldberg (Leiterin eines größeren Projektes) am Palo Alto Research Center von Xerox entwickelt.
Dieses Projekt hatte zum Ziel, die Mensch-Maschine-Kommunikation für das Jahr 2000 vorauszuahnen. Angedacht wurden auch z.B. die Maus sowie Fensteroberflächen.
Smalltalk verfügt über eine (sehr) große Klassenbibliothek. Ab etwa 1980 kommerziell verfügbar.
In der Praxis hat sich Smalltalk jedoch nicht durchgesetzt. Die Idee war zu revolutionär, die Zeit "noch nicht reif". Smalltalk hatte Performance-Probleme, großen Speicherbedarf und keine statische Typisierung. Smalltalk wird heute oft als Ausbildungssprache eingesetzt (Fachhochschule Hamburg).
Object Pascal
Seit ca. 1985 gab es verschiedene Ansätze, die Sprache Pascal (Ausbildungssprache von 1972 bis 1995 an der FHTW Berlin) zu einer objektorientierten Sprache zu erweitern. Diese werden unter dem Begriff "Objekt Pascal" zusammengefasst (z.B. Delphi der Firma Borland).
Bildbeschreibung "Hybridsprachen": Objekt Pascal ist eine objektorientierte Sprache, Pascal eine prozedurale Sprache. Pascal ist eine Teilmenge von Object Pascal.
Hinweis: Sogenannte Hybridsprachen!
hybrid = vermischt, gemischt
Objekt Pascal hat sich in der Praxis nicht durchgesetzt, weil
- auch schon Pascal kaum von Bedeutung ist für die Praxis.
- sie oft nur für eine Rechnerplattform existieren (z.B. Intel Familie, Apple)
- oft nur ein Compiler-Hersteller existiert.
Eiffel
Die Sprache Eiffel wurde von Bertrand Meyer (Franzose) als firmeninternes Werkzeug von Interactive Software Engineering entwickelt. Seit 1988 kommerziell verfügbar. Es handelt sich um eine rein objektorientierte Sprache. Im Gegensatz zu Smalltalk ist sie statisch typisiert. Die Sprache Eiffel beinhaltet interessante Konzepte:
- Mehrfachvererbung
- Zusicherungen
- Vor- und Nachbedingungen
Aus Sicht der Objektorientierung ist das eine hervorragende Sprache, konnt sich aber (bis jetzt) nicht durchsetzen (anfangs nur ein Compiler-Hersteller). Heute gibt es vier Anbieter. Eiffel wird in der Ausbildung eingesetzt (z.B. Uni Stuttgart).
Oberon
Die Sprache Oberon wurde von Niklas Wirth und H. Mössenbeck an der Eidgenössischen Technischen Hochschule Zürich entwickelt und ist seit 1991 kommerziell verfügbar (Oberon-2). Als Weiterentwicklung von Modula-2 (und damit von Pascal) ist Oberon-2 auch eine Hybridsprache.
In der Praxis hat sich Oberon nicht durchgesetzt, weil dies schon Modula-2 nicht gelungen war und es nur 3 Compiler-Hersteller gibt (2 davon Unis, 1 Firma). Modula wird an der Fachhochschule Reutlingen als Ausbildungssprache eingesetzt.
Sonstiges:
Flavors, Loops, XLisp, Clos sind objektorientierte Erweiterungen funktionaler Sprachen (z.B. von Lisp). Anwendungen nur in Spezialbereichen der "Künstlichen Intelligenz".
C++
Der "Durchbruch" der objektorientierten Programmierung kam mit C++. Bjarne Stroustrup hatte 1979 die Idee, C um objektorientierte Konzepte (angeregt durch Simula) zu erweitern (AT&T Bell, "C with Classes"). 1983 Umbenennung in C++ (übrigens mal wieder eine Hybridsprache, ist ja klar) und erste Anwendungen außerhalb eines Forschungslabors.
1985-1990 weltweite rasante Verbreitung von C++. Auf Drängen der Industrie Einreichung von Vorschlägen zur Standardisierung (1989). 1997 ANSI/ISO Norm für C++ veröffentlicht.
1985-1995 C++ ist die bei Neuentwicklungen am häufigsten eingesetzte Programmiersprache. C/C++ wird eingesetzt bei
- der Erstellung von System-Software
- Betriebssystemen (Windows NT, >11 Mio. Zeilen / Windows 2000, >30 Mio. Zeilen / OS 400 / Linux / mehrere Multiprozessor-Betriebssysteme)
- Benutzeroberflächen (X-Windows bei Unix-Rechnern / Windows allgemein)
- Compiler (Turbo-Pascal-Compiler / C/C#-Compiler)
- Datenbank-Management-Systemen (Oracle / Sybase / Informix)
- Anwendungs-Software (Banken / Handel / Versicherungen)
- der Telekommunikation
- militärischen Anwendungen
- Computerspielen
- Ingenieurwissenschaften
- numerischer Mathematik.
Java
Um 1990/91 wird bei der Firma Sun ein firmeninternes Projekt ("Green", James Gosling / Patrick Noughton) gestartet, mit dem Ziel, eine Programmiersprache für Chips in Endgeräten (z.B. Fernsteuerung für Fernsehgeräte) zu entwickeln.
Diese Sprache sollte
- weitgehend plattformunabhängig sein (Stichwort "Virtuelle Maschine")
- "klein" sein, d.h. kompakten Code erzeugen.
Ergebnis: Die Sprache Oak (englisch = Eiche).
1992: *7 (sprich: Star Seven) als intelligente
Fernbedienung
1993/94: Versuche, Oak und die entwickelte Technologie zu
vermarkten.
Parallel dazu ab Ende der 80er: Entwicklung des WWW. 1993 erster Browser ("Mosaic", Marc Andreessen, Stundenlohn $ 6.88, Uni von Illinois; Marc wird der Gründer von Netscape.)
Mitte '94: James Gosling & Co. haben zwei Ideen:
- Browser für das Internet in Oak programmieren.
Folge: "HotJava" (Jonathan Payne) - Den Browser so bauen, dass in Web-Seiten eingebettete Programme (in Oak) ausgeführt werden können.
Am 23. Mai 1995 findet auf der "Sun World" eine Tagung statt, auf der HotJava vorgestellt wird.
Hinweis: 1996: Java-Interpreter wird in Netscape-Browser standardmäßig eingebaut.