Programmiersprachen sollten zwischen Groß- und Kleinschreibung unterscheiden. Die Benutzer können sich sehr einfach darauf einstellen: Sie müssen lediglich daran denken, meistens in Kleinbuchstaben zu arbeiten und in vorhandenen APIs auf Bezeichner mit Groß- oder Kleinschreibung zu achten.
Es schien einmal offensichtlich, dass die Groß- und Kleinschreibung nicht beachtet werden musste. Dies liegt daran, dass Kleinbuchstaben nicht für alle Computersysteme und ihre E / A-Geräte (Tastaturen, Drucker und Anzeigegeräte) verfügbar waren. Programmiersprachenimplementierungen mussten Programme akzeptieren, die in Großbuchstaben geschrieben waren, da nur diese angezeigt oder gedruckt werden konnten. Und dafür mussten sie die Groß- und Kleinschreibung nicht berücksichtigen, denn Groß- und Kleinschreibung gleichzeitig zu akzeptieren bedeutet, die Kleinschreibung abzulehnen. Kleinschreibung war etwas, was Programmierer wollten, aber nicht immer haben konnten. Niemand wollte wirklich mit Programmen arbeiten, die in Großbuchstaben geschrieben standen. Es war nur eine Hardware-Einschränkung.
Für eine Weile war es sogar üblich, Koffer in Terminals zu falten. Wenn ein Terminal nur Großbuchstaben anzeigen könnte, Sie sich jedoch bei einem Computersystem anmelden müssten, das Groß- und Kleinbuchstaben unterstützt, würde das Terminal die Kleinbuchstaben in Großbuchstaben umwandeln. Glaubst du, das ist so lange her? "Wie der Apple II hatte der Apple II Plus keine Kleinbuchstaben-Funktionalität." (http://en.wikipedia.org/wiki/Apple_II_Plus) Wenn sich Benutzer früherer Apple-Computer in ein BBS mit gemischten Groß- und Kleinschreibung einwählten, musste der Terminal-Emulator (oder Host) dies alles in Großbuchstaben umwandeln. Nachrichten, die in Großbuchstaben geschrieben waren, waren in jenen Tagen an schwarzen Brettern verbreitet. Diese Funktionalität gibt es immer noch in Unix-ähnlichen Betriebssystemen wie dem Linux-Kernel. Geben Sie beispielsweise die stty olcuc
an Ihrer Shell-Eingabeaufforderung ein.Die Unix tty-Zeilendisziplin kann bei der Ausgabe Kleinbuchstaben und bei der Eingabe Großbuchstaben und Kleinbuchstaben zuordnen. Auf diese Weise können Sie in einer Programmiersprache für Kleinbuchstaben auf einem Terminal ohne Kleinbuchstaben arbeiten.
Die Unterscheidung zwischen Groß- und Kleinschreibung ist ein veraltetes Konzept aus einer vergangenen Computer-Ära, das in der modernen Welt des internationalisierten Rechnens nicht sehr gut funktioniert. Erweitern Sie das auf andere Sprachen? Wie wäre es mit Französisch: Halten Sie È und è für gleichwertig? Oder japanisch? Betrachten Sie Hiragana und Katakana nur als Fälle, sodass フ フ ァ ル und ふ ふ ぁ い derselbe Bezeichner sind? Die Unterstützung einer solchen Dummheit wird Ihren lexikalischen Analysator erheblich komplizieren, der Falläquivalenzkarten für den gesamten Unicode-Raum haben muss.
Beachten Sie, dass in der Mathematik die Groß- und Kleinschreibung berücksichtigt wird. Zum Beispiel könnte das Sigma in Großbuchstaben eine Summierung bedeuten, während das Sigma in Kleinbuchstaben etwas anderes bezeichnet, wie zum Beispiel die Standardabweichung. Dies kann in der gleichen Formel erfolgen, ohne dass es zu Schwierigkeiten kommt. (Wird die Programmiersprache Σ und σ äquivalent machen?)
Die englische Rechtschreibung ist empfindlich. Beispielsweise entsprechen viele Eigennamen gewöhnlichen Substantiven oder sogar anderen Wortarten. "may" ist ein Verb, aber "May" ist ein Monat oder der Name einer Frau. Außerdem kann es verwirrend sein, wenn ein Akronym oder eine Abkürzung in Kleinbuchstaben geschrieben wird. SAT steht für schulische Eignungsprüfung, während "sat" das Partizip der Vergangenheit von "sit" ist. Intelligente Menschen achten auf Details und setzen richtig auf Kapital.
Grundsätzlich ist jede neue Programmiersprache, die seit 1985 erstellt wurde und die die Groß- und Kleinschreibung nicht berücksichtigt, für diejenigen gedacht, die immer noch E-Mails und Postings ohne einen zweiten Gedanken versenden.
Was ist, wenn Ihre Sprache jemals als Ziel für die Codegenerierung verwendet wird, um Code in eine andere Sprache zu übersetzen, und diese andere Sprache zwischen Groß- und Kleinschreibung unterscheidet? Sie müssen alle Namen irgendwie transformieren, um die Unterscheidung zu erfassen. (Es ist lächerlich zu behaupten, dass dies keine technische Entscheidung ist, sondern nur eine Frage der emotionalen Vorlieben des Zielpublikums.)
Schauen Sie sich die lästigen Probleme an, die bei der Fallbearbeitung unter Windows auftreten, wenn Dateien von einem anderen Betriebssystem importiert werden. Das ist ein technisches Problem. Groß- und Kleinschreibung bei Dateisystemen hat ein Problem mit fremden Daten, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird.
Common Lisp hat den idealen Ansatz gefunden: Symbolnamen unterscheiden zwischen Groß- und Kleinschreibung, aber wenn Token gelesen werden, werden sie in Großbuchstaben gefaltet. Dies bedeutet , dass die Token foo
, fOO
, FOO
und Foo
alle bezeichnen das gleiche Symbol: das Symbol , dessen Name als Zeichenkette gespeichert "FOO"
. Außerdem ist dieses Verhalten nur die Standardkonfiguration für Lesetabellen. Der Leser kann Buchstaben in Groß- und Kleinschreibung falten, die Groß- und Kleinschreibung umkehren oder beibehalten. Bei den letzten beiden Optionen wird zwischen Groß- und Kleinschreibung unterschieden. Auf diese Weise haben Benutzer die maximale Flexibilität.