Der kleinste gemeinsame Nenner

Will man zwischen unterschiedlichen Plattformen einen Datenstandard durchsetzen, trifft man schnell auf das Problem, dass die Plattformen selbst Standards setzen, die sich untereinander gegenseitig ausschließen.

Mein aktuelles Beispiel ist ein “Text-Trennzeichen”.
Z.B.: Wir wollen mehrere Felder in eine Zeile bekommen. Also definieren wir ein Zeichen, das im Text selbst nicht vorkommt und erklären es stolz zum Trennzeichen.

Konkretes Beispiel: Eine Liste von Dateipfaden, wie in einer Environment-Variablen.

Windows: Hier ist der Strichpunkt definiert, weil er in Dateinamen verboten ist.

Linux: Hier ist der Doppelpunkt definiert, weil er in Dateinamen verboten ist.

Leider dürfen unter Windows Doppelpunkte bei Laufwerksbuchstaben vorkommen und Strichpunkte sind in Linux in Dateinamen erlaubt.

… also was macht man dann?

Meine Lösung ist dann oft auf Wahrscheinlichkeiten auszuweichen. Strichpunkte sind zwar in Linux-Dateien nicht verboten, aber vorkommen tun sie auch nur sehr sehr selten. Daher fällt die Entscheidung auf die Windows-Konvention.

Ähnlich Windows-freundlich urteile ich über MAC-Addressen. Die Hexzahlen sollten durch Bindestriche getrennt werden, weil Doppelpunkte (gerade in Linux) offizielle Trennzeichen sind.

Umgekehrt sollten Pfade nicht wie in Windows durch Backslashes getrennt werden, sondern durch Slashes wie unter Linux oder in URLs.

Im GATE Projekt gibt es dann eine Konvention für alle Plattformen und nur vor der direkten Datenübergabe an OS-Funktionen findet eine entsprechende Konvertierung in die native Konvention statt.

Ich weiß nicht, ob das die beste Lösung für alles ist, aber zumindest lebe ich jetzt schon sehr lange ganz gut damit.


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!