Deutsch BASICs

Früher habe ich meinen Lehrern die Schuld daran gegeben, aber die Wahrheit ist, dass ich in Fremdsprachen einfach schlecht bin. Das gilt auch für Englisch.

Trotzdem ist es gerade in der Online-Welt unumgänglich diese Sprache zu verstehen und zu nutzen.
Und für die Programmierer beherrscht Englisch ohnehin die ganze Welt.

Die ganze Welt? Nein, Office 95 leistete erbitterten Widerstand…

Ich sehe es heute als Zeichen von sehr schlechtem Stil an, wenn in Programmen Variablen- oder Funktionsnamen NICHT-englisch benannt sind.

Aber tatsächlich hatte Microsoft einmal die absurde Idee, die Skript-Erweitung seiner Office-Palette in einige Landessprachen zu übersetzen.
Konkret sprechen wir von VBA, Visual Basic for Applications (bzw. für Applikationen).

Die lokalisierten Schlüsselwörter waren schon schlimm genug, aber das größte Verbrechen war, dass die origalen englischen Kommandos gar nicht mehr gültig waren.

Statt …

Select Case statusVar
  Case 1
    a = b
  Case 2
    c = d
  Case Else
    If statusVar < 0 Then
      e = f
    Else
      e = g
    End If
End Select

… schrieb man tatsächlich:

Prüfe Fall statusVar
  Fall 1
    a = b
  Fall 2
    c = d
  Fall Sonst
    Wenn statusVar < 0 Dann
      e = f
    Sonst
      e = g
    Ende Wenn
Ende Prüfe

Das ist eigentlich ein Kündigungsgrund, wenn man so etwas abliefert. Nicht nur, dass man die Möglichkeit verliert, dass ein Großteil der Programmierer der Welt diesen Code lesen kann, es macht es auch unmöglich, dass zwischen normalem VB Classic und VBA Codes ausgetauscht werden, oder dass man Excel-Tabellen über Landesgrenzen hinweg nutzen kann.

Denn das deutsche Excel sprach nur deutsches VBA, das englische nur englisch …

Zum Glück war der Spuk mit Office 97 wieder vorbei, aber der Schaden war bereits angerichtet:
Tatsächlich war es einer meiner ersten Jobs (als Praktikant) eine Tabelle aus Office 95 auf Office 97 mit VBA Makros zum Laufen zu bekommen.

Theoretisch gab es eine Konvertierungsfunktion in Office … die wie immer bei solchen Konstellationen nur einen Teil richtig übersetzte.


Ich hätte ja gerne mal eine lateinische Programmiersprache gesehen, wo IFs entfallen, weil man Verzweigungen über Endungen der Kommandos unterscheiden kann.

nihil augere(ref numerus a)
{
  a = a + 1;
}

nihil aliguid_facere()
{
  ...
}

...

numerus x = 1;
numerus y = 10;

repete si(x < y)
{
  aliquid_fac();
  auge(x);
  augeat(y) si((x % 2) == 0);
}

“Vergrößern” lautet im Infinitiv auf augere, und definiert die Funktion. Als unausweichliches Kommando, dient der Imperativ: “auge”. Will man die Funktion aber nur ausführen, wenn eine Bedingung erfüllt ist, kommt der Konjunktiv augeat zum Zuge, gefolgt von der Bedinung.

Leider kam es nie zu einer Referenzimplementierung dieser Idee.
… vielleicht sollte ich den Entwurf an Microsoft senden …


Wenn sich eine triviale Erkenntnis mit Dummheit in der Interpretation paart, dann gibt es in der Regel Kollateralschäden in der Anwendung.
frei zitiert nach A. Van der Bellen
... also dann paaren wir mal eine komplexe Erkenntnis mit Klugheit in der Interpretation!