Berühmte Entwickler ganz privat

Kurse sind Zeitverschwendung

23.11.2009
Von 


Simon Hülsbömer betreut als Senior Research Manager Studienprojekte in der Marktforschung von CIO, CSO und COMPUTERWOCHE. Zuvor entwickelte er Executive-Weiterbildungen und war rund zehn Jahre lang als (leitender) Redakteur tätig. Hier zeichnete er u.a. für die Themen IT-Sicherheit und Datenschutz verantwortlich.

James Gosling, Java: Spezifikationen lösen keine Probleme

Wie ändert das allgegenwärtige Internet das Konzept einer Programmiersprache?

Java-Erfinder James Gosling ist einer der bekanntesten Entwickler der Welt.
Java-Erfinder James Gosling ist einer der bekanntesten Entwickler der Welt.

James: Die Anwesenheit eines Netzwerks beeinflusst das Design einer Programmiersprache in sehr großem Maße. Sobald Sie ein Netzwerk haben, müssen Sie sich mit Diversität und Kommunikation beschäftigen. Sie müssen darüber nachdenken, was für Auswirkungen Fehler haben können. Sie müssen sich um die Zuverlässigkeit sorgen.

Insbesondere müssen Sie sich darüber Gedanken machen, wie Sie stabile Systeme aufbauen können, die auch bei Teilausfällen noch funktionieren, da die meisten Systeme, die gebaut werden und tatsächlich für etwas nützlich sind, genau die sind, bei denen immer irgendetwas kaputt ist.

Die klassische Sichtweise der Software war immer "ganz oder gar nicht": Es funktioniert, oder es funktioniert nicht. Viele der Überlegungen dazu fließen in Dinge wie den Java-Exception-Mechanismus, das starke Typensystem, den Garbage Collector (erklärendes PDF, Anm. d. Red.), die virtuelle Maschine und so weiter ein. Ich glaube, das Netzwerk hat wirklich grundlegende Auswirkungen auf das Design von Java - die Sprache und die virtuelle Maschine.

Glauben Sie eher an eine formale oder eine vollständige Spezifikation eines Projekts, bevor Sie es bauen?

James: Ich habe gegenüber formalen Spezifikationen gemischte Gefühle. In der Theorie sind sie wohl toll, aber in der Praxis scheinen sie nicht ganz so gut zu funktionieren. Für ziemlich kleine Sachen mag es noch in Ordnung sein, aber je größer es wird, desto weniger formal werden die Spezifikationen, da sie nicht sehr gut skalieren.

Wichtiger ist noch, dass formale Spezifikationen ein Problem häufig gar nicht lösen. Sie verschieben das Problem vom Finden von Fehlern in Ihrer Software hin zum Finden von Fehlern in Ihrer Spezifikation. Und es kann wirklich schwer sein, Fehler in der Spezifikation zu finden.

Selbst wenn Sie keine formalen Spezifikationen schreiben, führen Sie eine Art Anforderungs-Analyse durch - viele Organisation gehen da nach dem Wasserfallmodell vor, bei dem eine Gruppe eine Anforderungsdokument schreibt, das sie an die Leute übergibt, die dann tatsächlich das Ding bauen müssen.

Das Anforderungsdokument ist häufig mit Problemen angefüllt, und solange es keine wirklich kurze Feedbackmöglichkeit gibt, finden Sie keine Fehler in den Spezifikationen. Währen ich also im Allgemeinen ein großer Fan von Spezifikationen und Anforderungen und solchen Sachen bin, tendiere ich dazu, sie nicht furchtbar ernst zu nehmen, und ich erwarte auf keinen Fall, dass sie große Probleme lösen.

Hat Java die Meinung der Öffentlichkeit über Plattformunabhängigkeit beeinflusst?