Dienstag, Januar 02, 2007

Kunden haben, Sprachen bauen

Am Neujahrstag kam ich mit einem Unternehmer ins Gespräch. Was er denn so mache? Sein Unternehmen entwickle Software für die Wasserwirtschaft. Das fand ich natürlich spannend -- und fragte neugierig nach. Die nächsten Minuten hörte ich allerlei Interessantes: dass haufenweise Daten z.B. zu Wasserständen gesammelt werden, die Daten abgerufen, zusammengeführt, ausgewertet und visuell aufbereitet werden müssen. Ich war überrascht und meinte verblüfft: "Was es alles für Nischen gibt, mit denen sich Geld verdienen lässt! Das beeindruckt mich immer wieder!". Darauf leuchteten die Augen meines Gesprächspartners auf, als ob er mühelos mit einem Dutzend Geschäftsideen aufwarten könne:

Nischen für Softwareentwicklung gibt es viele und Geld machen kann man damit auch ...


Und er fügte augenzwinkernd hinzu:

... wenn man die Kunden hat.


Kurz darauf verriet er mir noch, dass sein Unternehmen eine eigene Programmiersprache für ihr Problemfeld (Verarbeitung von Zeitreihen, Erstellung von Reports) entwickelt habe. Er halte das für entscheidend, es habe vieles an der Software-Entwicklung vereinfacht. Man könne eine solche Sprache mit Techniken des Compilerbaus mühelos in einer Woche entwickeln. Er wundere sich, warum das nicht mehr gemacht werden würde.

Interessant, gell? Software-Entwicklung als das Problem, eine geeignete Beschreibungsform zu finden -- das kommt sicher dem einen oder anderen Leser bzw. der einen oder anderen Leserin bekannt vor, oder?

Kommentare:

Anonym hat gesagt…

Und ob mir das irgendwie bekannt vorkommt.
Ich höre jetzt bestimmt schon zum dritten Mal vom Gebiet des Compilerbaus. Wie kommt es eigentlich, dass es das Fach nur bei MI gibt?

Aaron_Mueller hat gesagt…

Ich finde es auch sehr schade, das der SE-Studiengang dies nicht (mehr) anbietet. Ich habe erst vorgestern wieder was darüber in dem Buch "Der pragmatische Programmierer" gelesen.

manuel schlestein hat gesagt…

Ja, das wäre mit Sicherheit ein interessantes Thema für eine Vorlesung (AKSE/SWT ?). Was mich hier interessiert ist: Welche Vorteile hat eine eigene Sprache für eine bestimmte Problemdomäne, gegenüber einer Bibliothek, in z.B. Java geschrieben, die dieselbe Funktionalität anbietet?
Kann ich mit einer entsprechenden Funktionsbibliothek nicht genauso gut und schnell SW für diese Domäne bauen? Oder hab ich da etwas übersehen?

dh hat gesagt…

Ich versuche Ihnen in "Software Engineering komplexer Systeme" (SEKS) u.a. genau das beizubringen: Man kann sich sehr leicht eine Bibliothek schreiben, die es Ihnen erlaubt sozusagen direkt mit einem AST (Abstract Syntax Tree) zu programmieren. Die einfachste Technik ist die "Konstruktortechnik", die ich in SEKS vorstelle. Für den AST schreibt man dann noch einen Interpreter oder Compiler -- fertig ;-) Der Nachteil liegt natürlich in einer fehlenden Syntax und in den Missbrauchsmöglichkeiten von abstrakten Konstrukten. Aber so gravierend ist das Problem nicht, wenn man die Bibliothek konzeptionell klar anlegt. Man kann relativ leicht ein XML-basiertes Frontend oder auch einen Parser für eine konkrete Syntax davorschalten. Dazu gibt es ja auch hervorragende und zum Teil sehr einfach anwendbare Tools.