Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

16.12.1994

Programmierung in der Zukunft: Sprachkonvergenz und Konzepte

Hermann Bense, Geschaeftsfuehrer bei Nexus, Gesellschaft fuer wissensbasierte Systeme mbH, Dortmund.

C ist sicherlich eine leistungsfaehige Universal- Programmiersprache. C++ stellt die ergaenzenden Voraussetzungen fuer die objektorientierte Programmiermethodik zur Verfuegung. Richtig begeistert und zufrieden duerften allerdings die wenigsten Entwickler damit sein. Denn obwohl sich auf Dauer eine Dominanz des Paares C/C++ abzeichnet, wird man das wohl nur als Sieg eines Pragmatismus feiern koennen.

Auch anderen Programmiersprachen und Entwicklungssystemen geht es nicht besser. Smalltalk ueberzeugt zwar durch ein geschlossenes Gesamtkonzept, hat aber wegen ueberproportionaler Ressourcenverwendung und schwacher Performance einen schweren Stand. SQL (abgeleitet aus Sequel = Structured English Query Language) laesst eine Naehe zu natuerlichen Sprachen vermuten. Doch scheint die natuerlichsprachliche Programmierung ferner denn je.

Sprachen wie Cobol, RPG, Fortran und Basic allerdings koennen ihre Existenzberechtigung fuer ein paar weitere Jahre eigentlich nur noch aus der historisch gewachsenen Verbreitung ableiten. Ist die Welt der Programmierung so schwierig oder vielfaeltig, dass sie so vieler Programmierstile und -kalkuele ueberhaupt bedarf?

Die Klasse der prozeduralen, imperativen beziehungsweise 3GL- Sprachen scheint passabel fuer Geradeaus- und Systemprogrammierer und Hacker. Regelbasierende, 4GLs, Scriptsprachen sowie Expertensystem-Shells und Entscheidungstabellen sind gut fuer Produktiventwickler und Macher.

Dagegen werden objektorientierte Programmiersprachen von Analytikern, Designern und generisch denkenden Entwicklern bevorzugt. Mathematisch denkende Entwickler stehen auf funktionale Sprachen wie Lisp. Dies gilt im gesteigerten Masse fuer die logische Programmierung. Prolog und Sprachen fuer das Constraints- Programming beguenstigen einen deklarativen Programmierstil.

Zum Glueck gibt es nur zwei wesentliche Abstraktionsmechanismen, die allen Programmiersprachen zugrunde liegen: Generalisierung und Aggregation. Die meisten Konzepte lassen sich relativ einfach darauf zurueckfuehren: Alle Programmierparadigmen sind nichts anderes als Sichten auf diese beiden Grundansaetze. Sie spiegeln einen gewissen auf die Aufgabentypen bezogenen Pragmatismus wider.

Als einzige Sprachen des Mainstreams werden Smalltalk, C und C++ ueberleben. Nimmt die Integration von C und C++ mit unterstuetzenden Werkbaenken im bisherigen Tempo weiter zu, sind saemtliche Vorteile, die heute noch fuer Smalltalk ins Gewicht fallen moegen, in wenigen Jahren hinfaellig.

Grafische Programmiersysteme, die auf C- und C++- Klassenbibliotheken oder auf 4GLs aufsetzen, koennen die notwendige Produktivitaet garantieren.

Durch Drag und drop von Software-ICs koennen aus wiederverwendbaren Funktionsbloecken neue Programmsysteme schnell zusammengestoepselt werden. Neben der grafischen Repraesentation muss es allerdings auch die text- und zeichenorientierte Darstellung geben, als Voraussetzung fuer die Portierbarkeit von Anwendungen.

Vermutlich koennen in Bereichen, in denen es auf hoechste Effektivitaet und Produktivitaet ankommt, Lisp oder aehnliche Programmiersprachen eine Renaissance als dynamische objektorientierte Entwicklungsumgebungen erleben.

Diese Moeglichkeit kann und muss in der zweiten Haelfte der 90er Jahre noch durch den Einsatz wissensbasierter Technologien ueberboten werden. Letztlich stellen Expertensysteme mit ihrem regelbasierenden Ansatz aber auch nur eine weitere Sicht auf die Applikation bereit, naemlich die des Visual Thinking.

Die interessantere Frage lautet daher: Ist in den kommenden Jahren mit einer Verschiebung zu neuen Sprachebenen und -generationen zu rechnen? Schon heute beschaeftigen sich nur wenige Spezialisten mit der Micro-, Maschinencode- und Assemblerprogrammierung. Der protagonistische Ansatz eines General Problem Solvers, wie ihn die Pioniere der kuenstlichen Intelligenz schaffen wollten, scheint allerdings ferner denn je.

Alles in allem nimmt das Programmieren als Codieren im Vergleich zur 4GL-basierten Entwicklung ab. Heute noch weitere geniale Programmiersprachen oder auch nur Programmierkonzepte erfinden zu wollen, scheint daher muessig.

Vielmehr bleibt zu hoffen, dass auf den verschiedenen Sprachebenen eine gewisse Ausduennung oder Konvergenz und damit insgesamt eine Standardisierung einsetzt. Die Chancen dafuer sind eigentlich sehr gut.