Ich denke, die Welt programmiert jetzt nicht nur aufgrund historischer / wirtschaftlicher Umstände in englischsprachigen Programmiersprachen, sondern auch, weil insbesondere die englische Morphologie einige Eigenschaften aufweist, die dem algorithmischen Denken am besten entsprechen. Aber auf jeden Fall wäre es interessant, Ihre Meinung dazu zu hören, insbesondere wenn Sie selbst mehrsprachig sind.
Ich habe einige Erwähnungen von Deutsch-basierten Sprachen gesehen (siehe Plankalkul zum Beispiel, die erste Programmiersprache, die wir dank des Zweiten Weltkriegs überhaupt nur sehr wenig kennen), auch ein russisch-basiertes Algol-Flair, das in den 80er Jahren existierte am wenigsten auf dem Papier, nicht sicher, ob es jemals in binären oder nicht existierte. Beide sahen etwas träge aus, weil es mehr verkürzte Wörter und seltsame Abkürzungen als vollständige Wörter wie in den EN-basierten Sprachen gab. Wenn Sie also andere PLs kennen, die auf der Landessprache basieren, die heute sogar völlig archaisch und irrelevant sind, rein theoretisch oder was auch immer, wäre es interessant, sie sich anzusehen.
Und zurück zur Hauptfrage: Was macht die Sprache des Shakespeare so gut für das Programmieren, wenn überhaupt?
(Es gibt tatsächlich eine Liste von nicht auf Englisch basierenden Programmiersprachen auf Wikipedia (natürlich, wo sonst?), Aber es wäre interessant, Meinungen von Muttersprachlern dieser Sprachen darüber zu hören, wie sich eine bestimmte "nationale" Programmiersprache wirklich anfühlt mögen.)
quelle
Antworten:
Haftungsausschluss: Meine Muttersprache ist Deutsch.
Ich glaube nicht, dass es einen Grund dafür gibt, dass Englisch als Sprache, in der Keywords verwendet werden, besser ist als jede andere natürliche Sprache. Ich denke, es ist die wichtigste Sprache in der IT, aber nicht wegen der sprachlichen Eigenschaften, sondern weil die meisten Techniker sie zu einem gewissen Grad sprechen sind schon englisch etc.
Da es sich jedoch um Programmiersprachen handelt, nicht um Dokumentation / API / Namen / usw., muss ich Einwände erheben: Die Programmiersprachen basieren nicht auf Englisch - oder einer anderen natürlichen Sprache. Programmiersprachen sind formale Sprachen. Sie verwenden in unterschiedlichem Maße eine Handvoll Wörter aus dem (normalerweise) Englischen. Einige versuchen sogar, ihre Grammatik nachzuahmen - aber sie lesen sich trotzdem überhaupt nicht so gut wie Englisch. Um die Verletzung zusätzlich zu beleidigen, assoziieren sie nur eine einzige (in seltenen Fällen eine Handvoll) Bedeutung (en) mit jedem Wort, das sie ausleihen. Oft ist diese Bedeutung sehr umgangssprachlich, spezialisiert oder basiert auf einer fragwürdigen Analogie. Daher hilft das Wissen um die unzähligen natürlichen Bedeutungen eines von der Programmiersprache entlehnten Wortes nicht wirklich, das Programmierkonzept hinter dem Schlüsselwort zu verstehen. Beispiele aus der Spitze von meinem Kopf:
array
,type
,goto
,class
,void
. (Fun Tatsache , dass gefedert in den Sinn , als ich wieder lesen die Frage: All dies, mit Ausnahmegoto
haben die deutschen Übersetzungen , die am meisten sind ein Zeichen länger:Feld
,Typ
,Klasse
,Leere
. Sie klingen alle seltsam für mich, aber das ist wohl eine Sache der Gewohnheit .)quelle
Englisch ist die Lingua franca Sprache der Programmierung.
Aus demselben Artikel:
quelle
Die englische Sprache ist günstig, weil:
Einfache Art. Sie können eine Standardtastatur verwenden. Ich weiß, das klingt nach "Lamadung", aber haben Sie versucht, Chinesisch zu schreiben? Es gibt Tausende von Zeichen, und da Chinesisch keine geeignete "Zeichen" -Konstruktionstechnik besitzt, die zum Konzept einer Tastatur passt, wäre es für ein globales Publikum nicht einfach, diese zu erlernen.
Verkürzte englische Wörter sind erkennbare Symbole. Man muss nicht die gesamte englische Sprache lernen, um zu kodieren, so dass Leute außerhalb der Sprache schnell lernen können.
Assembly verwendete kleine Wörter ohne Satzstruktur. Dann kamen Sprachen wie COBOL und FORTRAN, die versuchten, die englische Satzstruktur so gut wie möglich zu berücksichtigen. Neuere Sprachen setzten mehr auf universelle algebraische Symbole, weil sie besser vorhersehbar waren. (In COBOL Addiere X zu Y, subtrahiere Y von X, berechne Y = X + A; Berechne macht die vorherigen Anweisungen unnötig und reduziert die Komplexität der Sprachanalyse). Es würde nicht mehr lange dauern, Sprachen wie C ++ als symbolischer als sprachbasiert zu betrachten. Es gibt ein wenig Rückkehr zur wortbasierten Programmierung mit C #, aber dies ist hauptsächlich darauf zurückzuführen, dass die Unterstützung für beliebte Programmiermuster gebacken wurde.
Fazit:
Letztendlich beschränken sich die Peripheriegeräte auf eine zeichenbasierte Sprache (wie Englisch). Außerdem unterstützen westliche Sprachen mathematische Konzepte besser (z. B. das Konzept der 0; China leiht Zahlen anstelle der eigenen Darstellung numerischer Werte aus, um Zahlen besser zu vermitteln, da das Schreiben (im Durchschnitt) kürzer ist). Anders als bei numerischen Werten würde ich symbolbasierte Sprachen (Chinesisch) als besser für die Programmiersprachenmorphologie geeignet ansehen als Englisch, da die meisten modernen Sprachen bereits Symbole verwenden und das Lernen universell äquivalent wäre. Wir müssten jedoch eine C ++ - ähnliche Struktur auferlegen, da Symbolblöcke für die meisten Menschen auf der Welt nicht einfach zu lesen sind.
quelle
Der einzige Grund, warum Englisch im Computerbereich weit verbreitet ist, ist, dass es derzeit eine weit verbreitete Sprache ist.
Wenn Computer vor 2000 Jahren erfunden worden wären, hätten sie Griechisch verwendet. Wenn sie vor 200 Jahren erfunden worden wären, hätten sie Französisch verwendet. Wenn sie in 200 Jahren erfunden worden wären, würden sie wahrscheinlich ...
quelle
Hier sind einige Vorteile für eine hypothetische Programmiersprache, wenn sie nur das englisch - lateinische Alphabet annehmen würde.
All dies sind Probleme, die noch nicht auf allen Geräten richtig gelöst wurden. Beispielsweise werden Songtitel mit diakritischen Zeichen auf einer Reihe von Musikplayern nicht korrekt angezeigt
quelle
étudiant
. Mit Unicode kann der erste Buchstabe ausgedrückt werden alsU+00E9 LATIN SMALL LETTER E WITH ACUTE
odere
gefolgt vonU+0301 COMBINING ACUTE ACCENT
. Wenn Sie der Compiler-Schreiber für eine dieser Sprachen wären, möchten Sie die Benennung von Variablen wie folgt unterstützen? Wie genau würden Sie zwei Variablen im selben Bereich namens\u00e9tudiant
und behandelne\u0301tudiant
?Ich bin mir nicht sicher, ob die Programmiersprachen selbst davon profitieren, auf Englisch zu basieren. Zur Erklärung:
Wenn also Englisch für die Programmiersprachen von Vorteil ist, kann dies dazu beitragen, dass mehr Menschen die Programmiersprache verwenden. In dieser Hinsicht sind hier einige Gedanken:
Wenn ich diese Gedanken zusammenfasse, glaube ich nicht, dass Englisch die Programmiersprachen wirklich in einer Weise unterstützt, die die meisten anderen Sprachen bieten könnten - abgesehen davon, dass viele Leute es sprechen.
quelle
Meiner Meinung nach hat Englisch einfach einen umfangreicheren technischen und mathematischen Wortschatz als viele (aber nicht alle) anderen Sprachen. Die Sprachen, denen ein solches Vokabular fehlt, verwenden englische Lehnwörter, um die Arbeit zu erledigen. Dies allein ist ein zwingender Grund, die Programmiersprachen auf Englisch auszurichten.
In Bezug auf die Sprachen, die ein ausreichend reiches Vokabular haben, um alles zu beschreiben, was wir zu beschreiben brauchen, ohne ständig auf englische Lehnwörter zurückzugreifen, ist die Tradition des Englischen als Verkehrssprache für die Wissenschaften an sich zwingend, aber unser Alphabet gibt uns das noch ein kleines bein hoch:
quelle
Für ein bisschen Spaß beim Lesen über den Kontext der Sprache und wie wir am Ende Dinge kratzen:
Gedankenmaterial von Steven Pinker
Denken Sie daran, wir sprechen über das Sprachkonstrukt, nicht darüber, wie wir die Informationen kommunizieren (nicht ein und dasselbe). Ich habe mit Code gearbeitet, bei dem die Hauptsprache für Variablen ausschließlich Deutsch war (der Code war nicht weniger leicht zu verstehen) ). Englisch hat von Natur aus nichts Besseres für die Programmierung. Wenn wir direkt von der Struktur unserer Sprache absehen, ist es wahrscheinlich schlechter und nicht besser, und dies könnte ehrlich gesagt aus vielen Gründen sein:
Zu fragen, warum Programmiersprachen "Englisch" verwenden, ist wie zu fragen, warum im Periodensystem immer noch der Buchstabe "W" für Wolfram steht. Die meisten Leute können nicht sagen, warum, es sei denn, sie kennen die Vorgeschichte. Und wenn Sie die Geschichte der Programmiersprachen kennenlernen möchten, sollten wir auf Lochkarten, Byte-Anweisungen und Assemblierung zurückgreifen.
Assembly hat keine großen "englischen" Konstrukte, aber es ist so nah wie möglich am Maschinencode, ohne sich selbst zu hassen. Darüber hinaus können und werden alle strukturellen Elemente höherer Sprachen regelmäßig von denen von uns implementiert, die verrückt genug sind, um Spaß daran zu haben. LD, MV, ST, BRA und der Rest des Befehlssatzes sehen nicht wie Englisch aus, aber ich kann es perfekt lesen und die volle Bedeutung erfassen.
Wir weisen übergeordneten Konstrukten die gleiche Bedeutung der LD oder MV in der Assembly zu. Ich muss nicht wissen, was eine Variable bedeutet, und in vielen Fällen wird dies nicht der Fall sein, wenn sie ohnehin auf Englisch ist, da die Nummer 2 in meiner Liste steht. Die Reihe von Bezeichnern wie int, str, enum und so ist ein Weg, um zu sagen, womit Sie arbeiten, nicht mehr. Wenn anstelle von int der Bezeichner seagull wäre, würden wir alle wissen, was seagull in einem Codierungskontext bedeutet, nicht weil es englisch ist, sondern was der Bezeichner abdeckt.
TL; DR: Programmiersprachen, wie jede andere Sprache, müssen geschult werden, um sie zu verstehen. Der Grund, warum ihre Befehle in Englisch statt in Spanisch oder Deutsch oder Russisch verfasst sind, ist mehr als wahrscheinlich esoterisch und historisch, als dass ein notwendiges Konstrukt der englischen Sprache mehr oder weniger für die Bezeichner im Konstrukt Formale Sprache geeignet ist.
quelle