Frank Buss :
etwas Abstand belebt und hilft zuweilen dem Blick auf die Sprünge, sozusagen
'proof reading' kostet Geld. Man muss aber nun nicht immer die Rolle von Geldgebern verinnerlichen, die nur ans Sparen denken. Wenn es effektiv hilft, 100te mal einen Text konzentriert in zeitlich voneinander immer wieder abgesetzten Sessions durchlesen, dass daraus Qualität wird:
Warum nicht?
Die Widrigkeit versteckt sich auch in einem Misstrauen, denke ich, das mit einer Art von Dekadenz von Bildschirmarbeit zwangsläufig verknüpft ist. Ob der Mensch rege bei der Sache ist, oder ob er nur mir strenger Miene eine Show abzieht und eigentlich vor sich hindöst, lässt sich irgendwie nicht mehr so genau ausmachen.
Und je genauer Leuten dann auf die Finger geschaut wird, desto krasser tritt das Manko für Kriterien zutage, wie dies eine überaus wichtige Tätigkeit sein kann, wenn man auf angestrengte und höchst konstruktive Art genaugenommen und am besten _nichts_ tut (oder nur ganz, ganz wenig: solche Pflege ist am besten Millimeterarbeit).
Viel zu oft reicht da der Verstand zu nicht mehr als nur zu Neiddebatten von der untersten Schublade, obwohl damit grundsätzliche Fragen verknüpft sind.
Genauer betrachtet, landet man so immer wieder bei der Frage nach Verantwortlichkeit, und ist zugleich, und im Widerspruch dazu, mit der Bestrebung konfrontiert, Herstellungsprozesse von dem abzukoppeln, dass dies eine Rolle spielt, ob sich jemand verantwortlich fühlt, für den Beton, den er absondert oder prüft - und sei es nur im Sinn einer komfortableren Rolle.
Man sollte also, wenn es einfach nur um Fehlersuche geht, von der Logik her zumindest die gesellschaftliche Problematik von Profilneurosen und Rechtfertigungsstrategien ausklammern können (oder andersrum, wenn Strategien allzu dumm und schräg im Kontor herumstehen, genau gegen solche Fragen einmal gegenprüfen).
Das ist ja nicht der einzige Lebensbereich, in dem Fehler unangenehme Konsequenzen haben. Man hat beim Betonieren von Gedanken für maschinellen Gebrauch allerdings ein erkenntnistheoretisches Kuddelmuddel nie ausgeräumt, sodass ein gewisser ideologischer Ansatz gefälligst ewig gültig sein müsse, in etwa, wenn Mathematik im Spiel sei, müsse der Kosmos per Definition voller Geigen hängen, bzw. müsse dieser Kosmos ganz bestimmt und garantiert leicht zu finden sein.
Irgendwie muss man für das alltägliche Pensum gegen dieses Durcheinander des Überbaus dann einen gangbaren Weg durchziehen. Das beginnt mit einer breiten Palette möglicher Interpretationen, was es heißt, dass "die Maschine hilft".
Hier scheint mir (folgend dem Hintergrund, den ich zuvor angedeutet hatte) eher angebracht, dass der Gebrauch der Maschine möglichst wenig mit artifiziellen und dabei überflüssigen Konventionen verbaut wird.
Im Sinn eines verantwortungsbewussten Umgangs sind die Krücken, mit denen sich die meisten Fehler freiwillig selbst melden, im großen und ganzen eher trivial und spielen sich eher in der Kategorie 'Knochenarbeit' ab (mehr oder weniger). So halte ich das leidlich für einen Irrtum, zu glauben, dass es ein universelles Sortiment solcher Krücken geben soll.
'Hilfe' vonseiten der Maschine heißt vielmehr Reaktionsgeschwindigkeit, dazu ein leichter und zielsicherer Zugang zur raschen Reproduktion fraglicher Details unter wechselnden Bedingungen, von denen man ein Dutzend in vielleicht einer Minute schnell einmal durchpauken kann, wenn das Werkzeug etwas taugt. Nicht zu vergessen, vom Werkzeug her eine satte Portion von Freiheitsgraden zur schlüssigen Notation des Codes, sodass sich Stellen leicht auffinden und überarbeiten lassen.
Und jede Fehlersorte hat dann ihren eigenen Dialekt, womit sie den Vorsitzenden des Bildschirmapparats jeweils auf der Spielwiese segieren kann, die er sich gerade erwählt hat. Solche Hierarchien imponieren mir nicht. Das reizt mich dann eher zur Frage nach uneingestandenem ideologischem Überbau und angekoppelten rein allzu menschlichen Übertragungen, von kindlichen Wünschen bzw. kindischem Verhalten.
Zur Teamarbeit gehört mehr, als dass jeder brav und fleißig ist. Je wie das Ziel gelagert ist, muss wohl ein massives Arrangement her, dass jeder im Code des anderen flüssig weiterlesen kann. Bei anderen Teams reichen wiederum die Übergabeschnittstellen. Ich sehe da keine Maschinelemente bis dahin, an diesen Festlegungen.
Anhand grafischer Notation ist das durchaus nicht ganz aus der Welt, also real. Ob Grafiken dann dem weiteren Text und sonstigem Zusammenhang entsprechen, erklärt sich daraus, wie Teams ihre Zusammenarbeit zu weiteren Prüfungen strukturieren (die Autobauer haben z.B. das SPICE an dieser und einigen anderen Stellen).
Es sind hier aber mehrere Unterschiede nicht zu verwischen. Zum einen drückt sich hier (wie auch weiter oben) die Verinnerlichung von Standpunkten des Managements aus. Und da verrät sich der Praktiker: wenn ich so tue, wie das Management will, dann bin ich weiterer Verantwortlichkeit enthoben. Diese Einschränkung muss einem klar sein. Es kann etwa auch sein, dass diese Denkweise auf einer partizipativen Ebene nicht ausreicht (wie bei Open Source da und dort schnell erreicht).
Bei "Top Down" ist ein Pflichtenheft zwar "weiter oben", deshalb ist es aber lange nicht über alle Zweifel erhaben.
Die Schiene der Idee von einem Abbild kann man schon fahren, das heißt dann aber nur, dass sich Verantwortung verschiebt (und dann oft auch in eine Richtung, wo man sich im Fall eines Desasters erfahrungsgemäß viel dezenter aus dem Staub machen wird), nicht aber, dass man von Fehlern verschont bleibt.
Mit C ist da vieles machbar und wird auch gemacht (z.B. Umsetzung von Grafik in C-Code), Code-Prover, usw. Da sind Heerscharen von hochmotiviertem Personal unterwegs. Im Lauf der Zeit kommt da einiges zusammen.
Der einfachen Schiene, die ich vorangestellt hatte, fehlt diese unbändige Masse von hochqualitativen Absonderungen, sodass die Umsetzungen mittlerweile sich zunehmend schwerfälliger ausnehmen. (Schlimmer noch, war da allzu oft die allzu menschliche Schwäche ein Handicap, dass Trümmerwiesen mit wenig tragfähigen Basteleien sich als viel zu repräsentativ darstellten).
Das Modell hingegen ist genauso frisch wie eh und je (und färbt auch auf den Gebrauch von anderem Werkzeug ab), indem besonders Interaktivität ein starkes Thema ist:
Nicht dass ich bei der Umsetzung von Algorithmen oder bei Wertebereichen ständig unnötigerweise verdächtigt würde (nur, weil es zufällig besonders billig ist, hier mit Verdächtigungen zu hantieren - und Benutzer dann auch noch das fragliche Argument verinnerlichen und mit Zähnen und Klauen verteidigen), sondern vielmehr die Schiene, dass es von der Maschine her (ha!) ein leichtes ist, harte Echtzeit-Prüfungen von zu erwartender Plausibilität ziemlich billig nahe am Metall mitlaufen zu lassen.
Oder auf einer ganz anderen Ebene: Weitgehende Freiheitsgrade bei der Notierung von Code zu haben, sodass er hinterher leicht und effizient zu lesen und zu prüfen ist - etwa, Runtime-Verallgemeinerungen für aktive Objekte zu treffen, oder inline Compiler-Erweiterungen zu inszenieren, zur sinnfälligen Verkürzung von unsinniger Schreib- und Lesearbeit.
Also sehe ich mich bei so etwas von der Maschine unterstützt, darin, dass mir meine Arbeitsfehler quasi zu Füßen gelegt werden.
Nun, da werden Ansprüche an das Werkzeug wach, da kann man im Mainstream nur träumen davon, aber das alles beginnt nun einmal besonders bei einer korrekten Darstellung der Rolle, die Verantwortlichkeit spielt.
Es gibt ein paar Vergleiche, womit sich die beachtliche Effizienz jenes Werkzeugs dokumentieren ließ, die natürlich auch der Fehlerbehandlung zugute kommt, leider nicht systematisch (mangels Masse), eher kursorisch: die Unterschiede beziffern sich nicht mit Prozenten sondern in Größenordnungen. Ein Wermitstropfen: Man muss das Ding von Grund auf lernen, weil es anders funktioniert als die landläufige Metapher von Mittelstufenalgebra.
Um das ganze mit etwas Fleisch zu unterfüttern, möchte ich ein Projekt anführen, das Anfang der 1990er verfasst wurde, basierend auf einem selbst elaboriertem Kernel-Modell, entsprechend, wie es damals gerade als schon tragfähigem dpANS kursierte (ANS kam 1994, ISO 1998), mit DOS-Rechner als Embedded-Umgebung, deutlich nichttrivial und nach sportlichem Hintersinn mit quasi-asynchronen Schichten notiert (das ging leichter so, wenn man es darf!), das in täglicher Verwendung seit damals in einem Schulgebäude läuft, wo sich Schüler damit austoben können. Ich habe seitdem nicht gehört, dass da irgendetwas nicht so läuft wie es sollte.
Soll heißen: Natürlich gibt es Werkzeug, mit dem sich gezielt und vor allem ohne weitere Verrenkungen Tragfähiges stricken lässt, wo möglicherweise hinterher kaum je die Rede von Fehlern sein wird.
Das steht für mich überhaupt nicht in Frage. Jene Denkweise, die ich angedeutet habe, lässt sich mit ein paar Einschränkungen in etwa auch auf C abbilden. Meiner Erfahrung zufolge bewegt sich das auch in etwa in diesem Fahrwasser, wo dann Verantwortlichkeit und Interaktivität gefragt sind, mit entsprechendem Hilfswerkzeug und Vereinbarungen (z.B. welche Einschränkungen der Sprache für bessere Qualität hingenommen werden sollen usw.).
Aus dieser Warte finde ich formale Prozesse dann zwar nett und im je eigenen, wahrscheinlich etwas weniger übersichtlichen Rahmen auch angemessen, aber für vermeintlich globale Aussagen habe ich dann doch gern auch die Gegenfrage nach genauerer Abklärung des begrenzenden Kontexts zum Wirkumfang.
Die letztlich hinderliche Überinterpretation jener Metapher aus der Physik zählt mir da nicht dazu, dass jedwelche Zahlendarstellungen immer nur als bezeichnete Messgrößen imaginiert und spezifisch behandelt werden sollen. Das finde ich absurd. Spezifisch im Sinne verallgemeinerter Runtimes ist es dann wiederum hilfreich, aber bitte nicht als allgemeine Vorschrift, die eine zufällige Architektur dann der Notation auferlegt. Da sind mir schon zuviele Glaubensfragen mit im Spiel, mitsamt all dem Dunst, den das nach sich zieht, das Vorbild der reinen Lehre, Verkündigungen von der Kanzel, katechetische Bebilderung von Alltäglichem usw.
War da nicht einfach nur eine Kiste, die man Laufen bringen wollte? Warum sollte eine sich immer umfassender gebärdende Architektur so wichtig sein? Sie wird dann nur starr und unbeweglich! Das war der Punkt, den ich letztens noch hatte: dass man dann ständig mit Herumtrickserei beschäftigt ist, einfach, weil ein wesentliches Element des Werkzeugs, die Dynamik bei der Verwendung, ausgetrieben worden war.
Immer noch besser, wenn Allaussagen vermieden werden, im umfassenden Sinn. Also lieber das kleinere Werkzeug, dem die Akte der Vergewaltigung von vermeintlich vorweggenommenen Wirklichkeitsbeschreibungen, auch der Tradition halber, nicht gar so unwillkürlich angeheftet werden.
Man kann es auch vom einer anderen Strophe her übersetzen: Der Positivismus ist eine philosophische und in Folge gesellschaftspolitische Strömung, aber keine unmittelbare Tatsachenbeschreibung an sich, und wurde leider zu oft als Einladung missverstanden, heiße Luft abzusondern.
(Und dann sind das nun doch wieder ein paar Zeilen mehr geworden.)