fit 2002 > Programmmiersprachentypen > konzeptionelle Entwicklungen und Auswirkungen > objektorientierte Sprachen |
Überblick |
Man ging dann dazu über die Objektorientiertheit" einer Programmiersprache daran zu messen wie sehr sie sich von Smalltalk unterschied. Diese Art der Definition warf natürlich das Problem auf, dass eine Sprache die nicht Smalltalk ist sich natürlich in mehr oder weniger signifikanter Weise von Smalltalk unterscheidet. Schließlich verstand man auch das Objektorientierte Paradigma besser und man bemerkte, dass sogar Smalltalk kleinere Mängel aufwies wie zum Beispiel das Fehlen einer Typenkontrolle. Man konnte sich jetzt fragen, ob eine Sprache, die diese Unzulänglichkeiten korrigiert objektorientierter als selbst Smalltalk ist. Dies führte schließlich zu dem Versuch zu definieren, was eine objektorientierte Programmiersprache sei und was nicht. Eine beispielhafte Definition ist jene von Peter Wegner [Wegner, 1986]: "We define 'object-oriented' so that it includes prototypical object-oriented languages like Smalltalk and Loops, but excludes languages like Ada, Modula, and Clu which have data abstractions but are not generally considered objectoriented. Support of data abstraction is a necessary but not sufficient condition for a language to be object-oriented. Object-oriented languages must additionally support both the management of collections of data abstractions by requiring data abstractions to have a type, and the composition of abstract data types through an inheritance mechanism: object-oriented = data abstraction + abstract data types + type inheritance."
Aufgrund dieser Aufstellung konnte man schon viel genauer definieren wann eine Programmiersprache das Prädikat objektorientiert verdiente. Es kamen zwar gelegentlich noch 1 - 2 Punkte hinzu oder wurden weggelassen, aber im Großen und ganzen konnten sich die meisten auf dieses Konzept einigen. Objektorientierte Sprachen werden heutzutage in fast allen Bereichen der Softwareprogrammierung verwendet. Aufgrund der Eigenschaften der objektorientierten Programmiersprachen werden sie dort verwendet, wo man großen Wert auf verteilte Entwicklung durch mehrere Instanzen legt wobei diese einander möglichst wenig beeinflussen sollen, wo großer Wert auf Sicherheit gelegt wird, wo abstrakte Sachverhalte einfach in ein Softwaremodel gepackt werden sollen oder wo einfach die Handhabung einer Repräsentation eines realen oder virtuellen Objektes durch ein softwaretechnisches Objekt in der Implementierung Vorteile oder Vereinfachungen verschafft. Smalltalk hat Anfang der 90er wieder einen Aufschwung erfahren, der aber inzwischen wieder zugunsten von Java im abklingen ist. Trotzdem werden auch heute noch größere Softwareprojekte, auch im militärischen Bereich in Smalltalk realisiert. Aufgrund der Einfachheit der Syntax wird Smalltalk von vielen als Einsteigersprache in die objektorientierte Programmierung empfohlen. Aufgrund seiner Schnelligkeit wird C++ heute oft in Simulationen eingesetzt. Ein typischer Anwendungsbereich sind Computerspiele. In gewissem Masse ist C++ auch für die Windowsprogrammierung geeignet. Visual Basic wird hauptsächlich zum Erstellen von Programmen für Windows eingesetzt welche ein Graphic User Interface besitzen. Die enge Verbindung zu Windows macht sie für Programmierer von Windowsanwendungen zur ersten Wahl. Delphi schlägt in etwa in die selbe Kerbe wie Visual Basic und bietet sich vor allem für Win 32 Applikationen an. Der Unterschied ist grob gesprochen nur die zugrunde liegende Sprache. Wer schon Erfahrungen mit BASIC hatte wird eher zu Visual Basic greifen. Pascalprogrammierer oder auch Programmierer aus der C-Ecke werden sich bei Delphi eher heimisch fühlen. Java hat vor allem mit der Möglichkeit der Nutzung über das Internet viele Freunde gewonnen. Die Implementierung von Applets alleine reicht vielen angehenden Javaprogrammierern als Grund Java zu lernen. Der Einbau dieser kleinen Programme in Webseiten erfreut sich noch immer größter Beliebtheit, auch wenn diverse Browserhersteller die Unterstützung der Java Virtual Machine zugunsten einer eigenen, selbstentwickelten und daher favorisierten Programmiersprache in letzter Zeit unterbunden haben. Aber auch im Bereich der Applikationen hat Java seine Vielseitigkeit bewiesen, wenn es nicht gerade auf Geschwindigkeit ankommt. |
Weiterführende Informationen |
|
>Entstehungskontext | Konzepte und Techniken | Entwicklung und Auswirkungen | Praxis | Bewertung |