<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
Kollegen Lehmann und Fischer schrieben:<br>
<span style="white-space: pre;">>> befehle sollten in einer
eindeutigen art und weise geschrieben<br>
>> werden. wenn ich dateien auf deren befehlsinhalt
kontrolliere, dann<br>
>> muss ich eben4 schreibweisen berücksichtigen? geht nicht!<br>
<br>
> Ich möchte mich diesem Wunsch anschließen und in dahingehend<br>
> erweitern, dass in Skripten (Job, Flex) Befehle grundsätzlich<br>
> ausgeschrieben werden sollten. Wenn man schnell einen Aufruf<br>
> losschickt, kann man von mir aus gerne abkürzen, aber in<br>
> ausgelieferten Dateien würde ich der Lesbarkeit wegen den
vollen Text<br>
> vorziehen.</span><br>
<br>
<br>
Da ist was dran, das klingt natürlich plausibel.<br>
Es erschließt sich nicht leicht und intuitiv, warum FLEX so ist wie<br>
es ist. Deshalb ein paar Bemerkungen zu den Hintergründen, die sich<br>
in der Doku so nicht niedergeschlagen haben.<br>
<br>
1. Die offizielle Form der Befehle ist die dreibuchstabige (das<br>
Trigramm oder Triliteral). Nur die wird vom Programm beachtet, der <br>
Rest nicht. Der Rest ist eine Konzession an Verständlichkeit und <br>
Merkfähigkeit, aber redundant.<br>
Sie können statt "var" auch "variable" schreiben! Statt "write" auch<br>
"writethis", statt "eval" auch "evaluate" oder "evaluiere" oder
barsch<br>
"eva", statt "end" auch unmißverständlich "ende-des-programms",
statt<br>
"aresqa" auch "aregano", statt "perform" auch "perxyz" - alles
wurscht.<br>
(Für "export" gibt es, das ist aber eine historisch bedingte
Ausnahme,<br>
drei gleichwertige Trigramme: "exp", "xpo" und "dow".)<br>
Die in der Doku stehende Vollform wird vom Programm in keiner Weise<br>
bevorzugt oder honoriert. Es zählen stets nur die ersten 3 Zeichen,
der<br>
Rest - wie lang auch immer - wird ignoriert. Ausnahmen sind nur
"erase"<br>
und "include", auf daß es damit kein Vertun gebe, denn "erase" ist<br>
ja riskant und muß deshalb mit Bedacht ausgesprochen werden, und<br>
"include" ist kein Befehl, sondern eine Direktive.<br>
Die ersten drei Buchstaben, kurz gesagt, sind eindeutig. Das ist ein<br>
Designgrundsatz und wird bei Einführung neuer Befehle streng
beachtet.<br>
Sie können sich also gefahrlos eigene Langfassungen überlegen -<br>
diejenigen der Doku sind nur Empfehlungen.<br>
<br>
2. FLEX ist keine kompilierende, sondern eine interpretierende<br>
"Sprache". Das ist ein ganz großer Unterschied, vor allem wenn es<br>
um Schleifen geht: bei jedem Durchlauf muß jeder Befehl neu<br>
interpretiert werden: neu eingelesen, neu erkannt, neu ausgeführt,<br>
und es macht bei 1 Million Durchläufen schon spürbar was aus, wenn<br>
jeweils doppelt so viele oder mehr Zeichen zu verarbeiten sind.<br>
Kommt doch nicht drauf an bei den Prozessoren heutzutage?<br>
Genau diesen Bequemlichkeitsreflex, so menschlich er ist, haben wir<br>
beim Entwickeln stets konsequent gemieden. Das Programm würde<br>
sirupähnlich kriechen, hätten wir ihm stets nachgegeben, weil sich<br>
die Entschleunigungen summieren oder multipli-, wenn nicht gar
potenzieren.<br>
<br>
<br>
WENN wir nun also auf 100% Eindeutigkeit der Befehle umstellen
wollten,<br>
käme dafür aus mehr als einem Grund nur die triliterale Form in<br>
Betracht. Die Überlegung ist aber müßig, denn die Zeit für ein
solches<br>
Unternehmen fehlt uns natürlich. Dies wäre allerdings ein
Betätigungs-<br>
feld im Sinne von OpenSource! Durchaus denkbar ist ein Perl-Skript,
um<br>
zumindest die gängigsten Befehle zu normieren. Denkbar wäre, darüber<br>
weit hinausgehend, ein Editor mit der Fähigkeit, die Befehlswörter<br>
auf Knopfdruck zur Vollform zu erweitern statt sie nur farblich<br>
hervorzuheben. Wer packt's an? Aber der funktionale Gewinn wäre<br>
in jedem Fall exakt Null.<br>
<br>
Nur ganz nebenbei: Man könnte einwenden, daß Freiheit eine Kategorie<br>
sei, die auf diesem Felde eher kontraproduktiv wirke. Dies wurde<br>
auch gegen die neue Variantenfülle der sog. "Rechtschreibreform" ins<br>
Feld geführt. Deren Befürworter wollten das jedoch nicht
akzeptieren,<br>
sie wollten eine Lockerung der herkömmlichen, strikten Präskription<br>
des Wörterbuchs und sahen das als Erleichterung. Anscheinend ist <br>
diese, man lese nur Zeitungen oder Schulaufsätze, mehrheitlich <br>
aufgegriffen worden und kann somit als Mainstream gelten. Und ohne
Not<br>
sich solchen Megatrends zu verschließen, na ich weiß nicht ... würde
<br>
das nicht heißen, einer Erleichterung für die Maschine mehr Gewicht
<br>
zu geben als einer solchen für den Menschen? Würde damit nicht auch
<br>
das menschliche Potential, mit Vieldeutigkeit umzugehen, was ihn
über<br>
die Maschine weit hinaushebt, negiert und brachliegen gelassen?<br>
Ich fürchte, es bleiben nagende Zweifel.<br>
<br>
<br>
B.Eversberg<br>
<br>
<br>
<br>
</body>
</html>