Bild nicht mehr verfügbar.

Grafik: Archiv
Vielleicht kann bald jeder Software programmieren, prognostiziert die New York Times. Ein Schritt in diese Richtung ist das Konzept des intentionalen Programmierens von Charles Simonyi. Der Chief-Executive von Intentional Software, einer neuen US-Firma, war zuvor Chief Architect bei Microsoft und einer der erfolgreichsten Programmierer der Welt. Die Idee des intentionalen Programming liegt darin, Programme genau auf die Wünsche der Anwender zuschneiden zu können und Programmierfehler zu vermeiden.

Anspruch

Programmierern fehlt meist der Kontakt zu den Anwendern, was bei intentionalem Programmieren nicht passieren sollte. So genannte "Domain Experts", also Experten aus dem Fachgebiet, für das ein Programm entwickelt wird, arbeiten mit den Programmierern zusammen und sorgen dafür, dass dieses auch wirklich ihren Ansprüchen gerecht wird. Die erarbeiteten Konzepte werden dann mit der sogenannten "Workbench" zu einem "Domain Code" verarbeitet. Durch "Workbench" kann man Programme in einer Vielzahl von Formen darstellen: als eine Art PowerPoint-Präsentation, als Diagramm, als Skizze oder mit mathematischer Logik. An diesen Projektionen können Programmierer und Domain Experts dann so lange feilen, bis beide zufrieden sind. Danach wird der sich daraus ergebende Domain Code in ein Programm namens "Generator" eingegeben, das den eigentlichen Target Code erstellt, den ein Computer lesen kann.

Reduktion

Dadurch, dass nicht menschliche Programmierer den endgültigen Softwarecode schreiben, sollen Bugs und Fehler reduziert werden. Programme enthalten Millionen Codezeilen und Programmierern passieren durchschnittlich 100 bis 150 Bugs pro 1.000 Codezeilen. Softwareversagen ist außerdem ein wirtschaftlicher Faktor. Es kostet Unternehmen rund 59,5 Mrd. Dollar pro Jahr, wie eine Studie des US-amerikanischen National Institute of Standards and Technology im Jahr 2002 ergab.

Abstraktion

Kritiker des intentionalen Programmierens meinen jedoch, dass menschliches Eingreifen in den Programmiervorgang nicht umgangen werden kann. Intentionales Programmieren stellt eine Abstraktion des zugrunde liegenden Target Codes dar. Viele Experten sind der Meinung, dass diese Abstraktionen nicht fehlerfrei sind und deshalb Programmierer trotz allem selbst in den Code eingreifen müssen. (pte)