Sirius3 hat geschrieben:Problematisch wird es halt, wenn man Sprachen nimmt, deren Schreibrichtung von der amerikanischen abweicht:
Was wird jetzt durch was geteilt?
Das stimmt. Man könnte allerdings eventuell jedes Wort „in sich“ als abgeschlossene Einheit betrachten. Das würde bedeuten, dass تسعة nur in sich selber von rechts nach links läuft, der gesamte Quellcode allerdings nicht verändert wird. Das ist ja auch schon nicht möglich, weil Python ja fast durchgängig englische Bezeichner verwendet. Das obige Beispiel würde daher doch eher so aussehen:
Ich sehe nicht, wo jetzt hier etwas problematisch sein sollte. Das ist alles ganz eindeutig
Variablenname = Wert, auch nicht anders, als wenn man das jetzt auf Deutsch/Englisch schreiben würde.
Sirius3 hat geschrieben:
Ganz zu schwiegen von den Zeichen, die identisch aussehen, aber doch verschieden sind:
Man
muss diese ja nicht verwenden. Es könnte auch programmiersprachenintern Listen geben für Zeichen, die gleich aussehen (Ist ja in Unicode ja auch schon beschrieben). Dort würde dann ein Α und ein A als gleich behandelt.
Sirius3 hat geschrieben:
Aus gutem Grund hat alles außerhalb von ASCII nichts im Programm-Code verloren. Für Meldungen gibt es i18n-Methoden, die das Problem sauber trennen. Unicode-Unterstützung ist wichtig, aber nur in der Datenverarbeitung.
Du hast dir hier jetzt aber die problematischsten Beispiele herausgesucht. Bei den allermeisten Buchstaben und Schriften ergibt sich in der Praxis aber kein Problem. Die meisten Schriften laufen einfach ganz banal von links nach rechts und sehen komplett anders aus als anderer Text.
BlackJack hat geschrieben:
Da kann ein ``'ä' in filename`` auch unter Python 3 als Ergebnis `False` haben, auch wenn in `filename` tatsächlich ein ä enthalten ist!
Dafür gibt es allerdings
Unicode-Normalisierung. Das müsste natürlich schon in die zugrundeliegenden Bibliotheken eingearbeitet werden. Dann wäre es aber kein Problem, da ä und a+U0308 als gleich erkannt werden können.
BlackJack hat geschrieben:
Lokale Sprache ist IMHO kein Argument weil die Sprache selbst und die Dokumentation in Englisch sind. Wenn man ernsthaft programmieren will, dann kommt man um Englisch schlicht und ergreifend nicht herum.
Natürlich, aber mir geht es ja vor allem darum, dass man sich z.B. zwanghaft englische Namen für z.B. Variablen oder Funktionen überlegen muss.
Bei Bezeichnern die nicht in Englisch sind, beschränkt man die Gruppe der Leute die damit etwas anfangen können. Nur inländisch benutzt ist auch kein Argument. Das kann dann niemand lesen, warten, verbessern, der die Sprache nicht kennt. Damit schliesst man von vornherein aus, dass das jemals ohne vorher komplett überarbeitet zu werden, über diese Sprachbarriere hinaus verwendet werden kann.
Wenn ich ein Programm z.B. nur auf meinem Computer benutze, weil es genau einen Anwendungsfall für mich hat. Ja, dann werde ich es niemals jemand anderem geben, und ich sehe wirklich kein Problem, wieso ich da nicht Bezeichner in meiner Muttersprache nehmen sollte. Es wird ja nicht jedes Programm direkt als Open Source für die gesamte Menschheit im Internet veröffentlicht.
Ich wette auch, dass es viele Leute gibt, die Deutsch in ihren Programmen für die Bezeichner nutzen. Das darf auch nicht sein. Aber wieso machen es dann trotzdem viele Leute? Weil es für die Leute einfach unproblematischer ist, sich etwas in ihrer Mutterspracher ausdenken zu können anstatt immer zwanghaft auf Englisch zu denken. Man muss ja auch bedenken, dass Deutsch noch relativ nah an Englisch dran ist und es deshalb für unsereins nicht so problematisch ist. Bei vielen anderen Sprachen ist es nicht so einfach.
Und was ist denn z.B. mit irgendwelchen Schülern in Ländern, deren Sprache nichts mit Englisch zu tun hat? Die werden wohl kaum gut Englisch können, wenn sie erst ca. 12/13 Jahre alt sind. Aber möglicherweise können sie schon mit Programmieren anfangen. Dann würden sie sich für den Anfang einfach ein Buch (in ihrer Muttersprache) kaufen und das dann benutzen. Wenn ihnen dann aber gesagt wird, dass sie für alle Bezeichner usw. Englisch nutzen sollen, das sie nicht so gut können, dann werden sie vielleicht gleich das Handtuch werfen.
Klar bleibt bei Python und anderen Programmiersprachen immer noch viel auf Englisch übrig, selbst wenn es nur „print“ usw. ist. Da kann man ja auch nichts gegen machen, allerdings müssen solche Sachen ja auch nur abgeschrieben werden. Ich finde aber, dass überall, wo man sich selber etwas ausdenken muss, auch ruhig die eigene Sprache möglich sein sollte.
In Dateinamen kann man nicht problemlos beliebige Zeichen verwenden. Da machen einem noch alte Dateisysteme und Archivformate Probleme. Unix hat traditionell Dateinamen die aus Bytefolgen bestehen und nicht aus Zeichen. Es ist also kein Problem Dateinamen in unterschiedlichen Kodierungen im gleichen Verzeichnis zu haben. Genau da fangen dann meine Probleme mit Sprachen und Bibliotheken an, die das einfach pauschal in Unicode umwandeln wollen — das geht nämlich nicht verlustfrei.
Da wäre es doch sinnvoll, einfach mal alle Dateinamen im Dateisystem unter Unicode laufen zu lassen. Oder spricht da was dagegen?
Bei Programmiersprachen kommen nicht wirklich natürliche Sprachen zur Anwendung. Die Schlüsselworte sind in der Regel aus dem Englischen entlehnt — das war es dann aber auch schon.
Ich nenne allerdings Variablen, Klassen, Funktionen usw. alle irgendwie. Und wenn man da keine kryptischen Zeichenkombination wie x31dfvxa nutzt, dann ist das meistens auch irgendwie entfernt an die eigene Sprache angelehnt.
Wie gesagt, ich will ja nicht die Programmiersprachen an sich ändern. Wieso man allerdings nicht – soweit möglich – alles auf Unicode basieren lassen sollte, verstehe ich nicht.