Freischaffender Erfinder
|
Thomas Wolf
|
Ein ziemlich freier Mensch
|
|
|
|
UIM Universelle Internet Maschine
|
|
|
|
So, jetzt aber wirklich: heute ist Richtfest, und zwar ein richtiges. Während der
letzten drei Wochen seit dem letzten, einfachen Richtfest habe ich natürlich doch
noch dies und jenes an meiner Sprache gerade ziehen müssen. "Fehler beseitigen"
kann man das ja nicht nennen, wenn man sich von der Aufgabenstellung bis zur konkreten
Lösung alles selber ausdenkt. Bei jedem Lösungsversuch denke ich zunächst einmal
"das wird wohl die Lösung sein", aber meistens stellt es sich eben doch erstmal
als ein mißlungener Versuch heraus. Das war dann aber eigentlich kein "Fehler"
sondern ein notwendiger Versuch, um das Richtige herauszufinden.
Das beglückende daran ist, daß ich früher oder später immer das Richtige herausfinde.
Ich kann es nicht erzwingen. Ich kann mich darauf verlassen, und das ist eine so
schöne Gewißheit. Die Ideen kommen immer zur richtigen Zeit, wenn die Zeit dafür
reif ist. Wie würden wir das einem Chef erklären? Hähä. Wie sieht Ihr Terminplan aus,
Herr Wolf? Naja, so Chef, wie die Zeit eben reif ist, genau so! Sie sind gefeuert,
Herr Wolf. Danke, gleichfalls, Chef.
Im März dachte ich schon, die Parameterübergabe würde im großen und ganzen so stimmen,
aber Pustekuchen. Bis jetzt brauchte ich noch einmal mehr als drei Monate, bis alles
in sich stimmig war. Aber jetzt glaube ich wirklich, daß das Grundgerüst steht. Seit
drei Wochen scheint es stabil. Natürlich ist noch jede Menge daran zu tun. Bis jetzt
kann man mit meiner Sprache TDL eben gerade mal die einfachste aller CGI-Schnittstellen
beschreiben, aber die dahinter stehenden Konzepte sind (hoffentlich) z.B. auch auf
andere input-Elemente als nur einfache Textfelder übertragbar. Da bin ich ganz
zuversichtlich. Obwohl jetzt, wo ich das so hinschreibe, weiß ich eigentlich schon
ganz genau, daß ich mindestens dreimal so lange dafür brauchen werde, als ich es mir
jetzt vorstelle (sagen wir mal drei Tage).
Und dann kommt noch dieses Aha-Phänomen hinzu, wo man während der Realisierung ein
dahinter stehendes, allgemeines Konzept entdeckt. Von diesem Moment an, gibt es
keinen Terminplan mehr, weil man sich auf Neuland begibt. Das ist mir während des
letzten dreiviertel Jahres ein paar Mal so gegangen.
Das erste Mal war es, als ich die elementaren Konzepte von
XML
und
XSLT
implementiert
hatte und anfing, sie für meine Bedürfnisse zu erweitern, insbesondere durch eine
eigenwillige Parameterübergabe. Auf einmal hatte sich doch ganz unbeabsichtigt eine
Isomorphie zum
Lambda-Kalkül
in meine Sprache eingeschlichen. Und als mir das
auffiel habe ich natürlich alles daran gesetzt diese Eigenschaft mit den
XML-entlehnten Eigenschaften meiner Sprache zu verbinden, möglichst ohne dafür
die Syntax der Sprache zu verändern. Immer, wenn ich so etwas anfange, habe ich
fast keine Vorstellung davon, wie das gehen sollte und "es fällt mir dann ein",
so peu à peu. Und das hat dann eben mal gut drei Monate gedauert, von den paar
Nebenideen, die ich dabei auch noch implementiert habe, mal ganz abgesehen.
Ein anderes Mal fiel mir plötzlich die Dualität von zweien der drei Sprachkonstrukte
in meiner TDL-Sprache auf, was mich hoch erfreute. Ein selbst gesteckter Anspruch
an meine Sprache war die möglichst "freie und beliebige" Kombinierbarkeit (in
Algol 68
sprach man hier von "Orthogonalität") der drei Sprachkonstrukte, und
hier haperte es noch. Das eine konnte man im anderen verwenden, aber nicht
umgekehrt. Solange ich keine Anwendung für diese Möglichkeit sah, habe ich sie
auch nicht weiter verfolgt, sie aber auch nicht aus den Augen verloren. Auf
einmal stieß ich auf einen Anwendungsfall, und die Lösung war mit ca. 10 neuen
Programmzeilen in 30 Minuten fertig und läuft seitdem wie erwartet, sozusagen
"fehlerfrei", ohne Nachbesserungsbedarf. Diese kleine Änderung hat die
Ausdrucksfähigkeit meiner Sprache spontan um ca. 30% erhöht.
Ehe ich diese Änderung in mein Programm eingebaut habe, habe ich allerdings
scheinbar nichtstuend länger als drei Tage über die Konsequenzen nachgedacht,
in Restaurants beim Wein, im Tiergarten bei der Lindenblüte oder im Freibad
Wilmersdorf beim Schwimmen. Ehe ich etwas so grundlegendes ändere, komme
ich erstmal eine Zeit lang scheinbar nicht voran. Ich denke dann, ich trete
auf der Stelle oder bin vielleicht einfach nur faul. Aber nein, es reift in
der Birne, und dann nach ein paar Tagen ist es wie ein Rappel. Na gut,
aufraffen muß ich mich natürlich auch immer mal wieder, wenn doch mal der
Schlendrian einreißt.
Aber heute ist erstmal ein erstes, großes Zwischenziel erreicht: TDL (Trivial
Documentation Language) steht.
| | |