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.

08.02.2002 - 

Mit Eiffel# steht eine weiterere alternative Sprache in Microsoft .NET zur Verfügung

"Programmierer haben nicht aus Fehlern gelernt"

08.02.2002
Mit Bertrand Meyer, dem Erfinder der Programmiersprache Eiffel, sprach Peter Monadjemi* über Eiffel, das .NET-Konzept und die Bedeutung moderner Programmiersprachen.

CW: Welche Gründe gab es für Sie, Eiffel Studio als Entwicklungswerkzeug für die .NET-Plattform zu portieren?

Meyer: Wir wurden von Microsoft im April 1998 angesprochen, durften aber wegen eines Non Disclosure Agreements nicht öffentlich darüber reden. Nachdem wir uns das Konzept einer allgemeinen Laufzeitumgebung und einer umfassenden Klassenbibliothek für alle Programmiersprachen, das später in .NET umbenannt wurde, näher angesehen hatten, waren wir sehr beeindruckt von der Idee und beschlossen, Eiffel auf die neue Plattform zu portieren. Das Resultat ist Eiffel#, eine neue Programmiersprache, die eine Untermenge von Eiffel darstellt und vor allem unser Design-by-Contract-Prinzip beinhaltet.

CW: Wie sehen Sie die Zukunft von .NET?

Meyer: Es ist das klassische Zusammenprallen zweier Titanen, wobei auf der einen Seite .NET und auf der anderen Seite die Java-Welt steht. Wenn Microsoft seine Strategie klug umsetzt und die Message von .NET als die Lösung vieler Probleme in der Softwareentwicklung nicht zu reißerisch verkauft, dann kann es funktionieren. Es ist eine große Chance für Microsoft. Allerdings halte ich es nicht für besonders geschickt, sich nur auf die Web-Services zu beschränken, denn .NET hat für Programmierer sehr viel mehr zu bieten. Aber das ist offenbar nun einmal die Art und Weise, wie bei Microsoft Marketing funktioniert.

CW: Gefährden Sie nicht die Übertragbarkeit von Eiffel auf andere Plattformen, wenn Sie in die .NET-Version Eigenschaften einbauen, die durch die Common Language Runtime vorgegeben werden, die aber auf anderen Plattformen nicht realisierbar sind?

Meyer: Eiffel ist sehr portierbar, es läuft unter anderem auf allen wichtigen Unix-Derivaten und auch unter VMS. Das bezieht sich nicht nur auf die Programmiersprache, sondern auch auf die Bibliotheken. Die Portierbarkeit von Eiffel ist für uns daher sehr wichtig. Die weltweite Eiffel-Community ist in diesem Punkt sehr konservativ, so dass wir, wenn wir ein Feature in die .NET-Version einfügen, genau darauf achten, dass es auch auf allen anderen Plattformen zur Verfügung steht. Wir haben mit Indexing für Eiffel ein Verfahren entwickelt, das ähnlich den Attributen bei .NET das Hinzufügen von Features erlaubt, ohne dass man den Sprachkern und damit die Semantik modifizieren muss.

CW: Ist Objektorientiertheit überhaupt noch ein Feature, durch das sich Programmiersprachen unterscheiden können? Es ist doch inzwischen schon bei simplen Scriptsprachen zu finden.

Meyer: Es gibt einen Kern von Eigenschaften, der in praktisch allen Programmiersprachen ähnlich implementiert wird. Auf der höheren Ebene unterscheidet sich Eiffel hingegen in wichtigen Punkten. Ein Beispiel ist die Mehrfachvererbung, die von vielen OOP-Sprachen nicht unterstützt wird, oder unser Design-by-Contract. Und da wäre etwa die Idee der Agenten, die Funktionsbausteine darstellen, die an andere Objekte übergeben werden können, wie beispielsweise die Delegate-Klasse bei .NET. Das sind wichtige Bereiche, in denen sich die verschiedenen OOP-Sprachen sehr stark unterscheiden.

CW: Würden Sie Eiffel als die beste OOP-Sprache, die heutzutage zur Verfügung steht, bezeichnen?

Meyer: Ja. Viele andere Sprachen leiden unter dem Umstand, zu irgendetwas anderem kompatibel sein zu müssen. Wir hatten bei Eiffel die Gelegenheit, ein Design zu verwenden, das so konsistent ist wie nur irgendwie möglich. Ich wüsste zum Beispiel nicht mehr, wie ich beim Programmieren auf das Design-by-Contract-Prinzip verzichten könnte.

CW: Eiffel ist im akademischen Bereich sehr stark, aber gibt es denn auch große Real-World-Projekte, die damit umgesetzt wurden?

Meyer: Oh ja, selbstverständlich. Das Chicago Boards of Trade setzt zum Beispiel ein Handelsprogramm ein, das Echtzeit-Marktinformationen verarbeitet. Lockheed Martin benutzt die Sprache für ein Aerospace-Projekt, und bei Boeing basiert ein Programm zur Simulation einer Abwehr ballistischer Raketen auf Eiffel. Auch im schwedischen staatlichen Gesundheitsprogramm beruht eine wichtige Anwendung auf Eiffel.

CW: Sie schrieben einst in einem Artikel, dass der Absturz der Ariane-Rakete nicht passiert wäre, wenn die Software mit Eiffel und nicht mit Ada programmiert worden wäre. Glauben Sie, dass die damaligen Programmierer ihre Lektion gelernt haben?

Meyer: Ich habe damals nicht gesagt, dass der Absturz nicht passiert wäre, wenn die Programmierer Eiffel verwendet hätten. Aber mit Eiffel wäre es sehr viel einfacher, jene Fehler zu vermeiden, die zu solchen Katastrophen führen können. Ich bin in diesem Punkt eher pessimistisch und glaube nicht, dass die Programmierer sehr viel aus ihren Fehlern gelernt haben. Nach solchen Unglücken wird vor allem das Testen der Software intensiviert, was auch gut ist, aber es wird nicht genug dafür getan, dass solche Fehler beim nächsten Mal gar nicht erst auftreten können.

CW: Warum würden Sie Eiffel anstelle von Visual Basic empfehlen?

Meyer: Visual Basic war ursprünglich ein Werkzeug, das vor allem Nichtprogrammierer ansprechen sollte. Es war damit sehr einfach, eine Oberfläche zusammenzustellen, in der zum Beispiel die Datenbankanbindung eingebaut war. Für kleine Anwendungen war das in Ordnung, für richtig große Anwendungen dagegen nicht ausreichend. Groß bezieht sich dabei nicht auf die Zahl der Programmzeilen sondern darauf, wie viele Programmierer im Team daran gearbeitet haben, wie lange sich der Entwicklungsprozess hinzog, wie viele Programmierer im Lauf des Projekts hinzukamen und so weiter. Für große Anwendungen in diesem Sinn ist Eiffel eine sehr viel bessere Wahl. Einige der wichtigsten Argumente für Eiffel sind Erweiterbarkeit, Flexibilität, Usability und Verlässlichkeit. Eiffel ist eine Botschaft zum Bauen besserer Software.

*Peter Monadjemi ist freier Journalist und Autor zahlreicher Bücher über Visual Basic und Windows. Er lebt in Starnberg bei München.

Visual Basic.NETDas Buch von Peter Monadjemi und Frank Groth richtet sich an Visual-Basic-Programmierer, die sich auf das kommende Visual Basic .NET vorbereiten wollen. In elf Kapiteln beschreibt es sowohl die wichtigsten Grundlagen der .NET-Systemplattform als auch die Sprachunterschiede zwischen Visual Basic 6.0 und Visual Basic.NET.

Zu den weiteren Themen gehören Windows Forms, ADO.NET sowie Web-Services mit ASP.NET. Dem Thema Klassenprogrammierung ist ein eigenes Kapitel gewidmet. Abgerundet wird das Buch durch eine Gegenüberstellung von Visual Basic .NET und C# sowie einen Vergleich der wichtigsten Sprachunterschiede zwischen der aktuellen und der kommenden Visual-Basic-Version. Das Buch eignet sich vor allem für Entwickler, die sich mit wenig Aufwand auf .NET vorbereiten wollen.

Peter Monadjemi, Frank Groth: Visual Basic.NET First Guide. München: Markt und Technik 2001. 360 Seiten, 29,95 Euro.

Eiffel: Contract by DesignBertrand Meyer gilt als einer der renommiertesten Experten im Bereich der objektorientierten Programmierung. Er ist Erfinder der Programmiersprache Eiffel, die mit Contract by Design Programmierern ein spezielles Verfahren anbietet, welches das Problem der Parametervalidierung beim Aufruf von Objektmethoden und damit der Gewährleistung eines fehlerfreien Aufrufs elegant löst. Nach diesem Verfahren wird sowohl eine Pre- als auch eine Postcondition eingeführt, die stets vor und nach dem Aufruf der Methode geprüft werden und erfüllt sein müssen, damit keine Ausnahme ausgelöst wird.

Meyer kommentierte den spektakulären Absturz der Ariane-5-Rakete im Juni 1996, der einen Schaden von 500 Millionen Dollar verursachte. Als Ursache wurde ein simpler Integer-Konvertierungsfehler in der mit Ada programmierten Steuerungssoftware der Rakete festgestellt. Meyer wies darauf hin, dass das Problem hätte vermieden werden können, wenn die Programmierer die Design-by-Contract-Methode und seine Programmiersprache Eiffel verwendet hätten (nachzulesen unter http://www.eiffel.com/doc/manuals/technology/contract/ariane/page.htm).

Weltweit arbeiten zirka 200000 bis 300000 Programmierer mit Eiffel, wobei ein Schwerpunkt im akademischen Bereich liegt. Meyer wird nach eigener Aussage demnächst die Nachfolge von Niklaus Wirth (unter anderem der Erfinder der Programmiersprachen Pascal und Modula) an der angesehenen Eidgenössischen Technischen Hochschule (ETH) Zürich antreten.