Das habe ich mich immer gefragt, und ich kann es online nirgendwo erwähnen. Wenn ein Geschäft aus beispielsweise Japan Code schreibt, kann ich ihn dann auf Englisch lesen? Oder haben Sprachen wie C, PHP oder andere japanische Übersetzungen, die sie schreiben?
Ich denke, was ich frage ist, ob jeder einzelne Codierer auf der Welt genug Englisch kann, um genau die gleichen reservierten Wörter zu verwenden, die ich tue?
Würde dieser Code:
If (i < size){
switch
case 1:
print "hi there"
default:
print "no, thank you"
} else {
print "yes, thank you"
}
Zeigen Sie genau das an, was ich gerade auf Englisch sehe, oder würde eine andere nicht englischsprachige Person die Wörter "if", "switch", "case", "default", "print" und " sonst "in ihrer Muttersprache?
EDIT - ja, das ist ernst. Ich wusste nicht, ob verschiedene Lokalisierungen einer Sprache unterschiedliche Schlüsselwörter haben. oder wenn es überhaupt unterschiedliche Lokalisierungen gibt.
Antworten:
Wenn ich es gut verstanden habe, lautet die Frage tatsächlich: "Kennt jeder einzelne Codierer auf der Welt genug Englisch, um genau die gleichen reservierten Wörter wie ich zu verwenden?"
Naja .. Englisch ist hier nicht das Thema, aber programmiersprachenreservierte Wörter. Ich meine, als ich vor ungefähr 10 Jahren anfing, hatte ich keine Ahnung von Englisch, und trotzdem konnte ich einfache Dinge programmieren, indem ich die Programmiersprache lernte, selbst wenn ich nicht wusste, was sie bedeuteten (auf Englisch). Tatsächlich hat mir das geholfen, Englisch zu lernen.
Beispielsweise. Ich weiß, dass ich eine "iteración" machen muss (Iteration natürlich), die ich schreiben musste:
Für mich das "für", das ";" und das "++", wo einfache Fremdwörter oder Symbole. Später erfahre ich, dass "für" "para" und "während" "mientras" usw. bedeutete, aber in der Zwischenzeit musste ich kein Englisch, aber in meinem Fall musste ich "C" wissen.
Wenn ich mehr lernen musste, musste ich natürlich Englisch lernen, da die Dokumentation in dieser Sprache verfasst ist.
Die Antwort lautet also: Nein, ich sehe nicht, ob, für usw. in meiner Muttersprache. Ich sehe sie auf Englisch, aber sie bedeuteten mir nichts anderes, was sie wiederum für die Programmiersprache bedeuteten.
Ist wie switch-Anweisung in bash: case .. esac. Was ist "esac" ... für mich das Ende der switch-Anweisung in bash.
Ich denke, das nennen wir "Abstraktion".
quelle
In der Java-Sprache müssen einige Methoden aufgrund der JavaBeans-Konvention (zumindest teilweise) in der englischen Sprache benannt werden.
Diese Konvention erfordert, dass eine Eigenschaft X über ein Paar von getX () - und setX () -Methoden eingerichtet wird. Hier in Französisch-Kanada, wo einige Entwickler verpflichtet sind, in französischer Sprache zu codieren, führt dies zu folgender Travestie:
quelle
Ich habe Probleme, Referenzen zu finden, aber ich erinnere mich an drei Geschichten.
Ein Lisp-Hacker verteidigt bedeutungslose Funktionen wie "cdr" und "car", indem er sie mit der Programmierung in Ihrer nicht-muttersprachlichen Sprache vergleicht: http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg01171. html
Als Yukihiro Matsumoto ("Matz") mit der Entwicklung von Ruby begann, verwendete er englische Schlüsselwörter , obwohl er die gesamte Dokumentation auf Japanisch schrieb! . Es gab ein paar Jahre lang keine englische Dokumentation für Ruby und nur sehr wenige Amerikaner, die diese Sprache verwendeten. Aber jetzt ist es eine Weltklasse-Sprache, und die Tatsache, dass sie in Japan geboren wurde, ist nur von historischem Interesse. Wenn die Sprache Schlüsselwörter in Hiragana verwendet hätte, wäre es viel schwieriger gewesen, an Popularität zu gewinnen.
Ich habe einmal einen Aufsatz gelesen - vielleicht kann ihn jemand anderes finden, Google ist heute keine Hilfe -, der darauf hinwies, dass die Übersetzung von Schlüsselwörtern falsch war, weil die Wörter nicht wirklich englisch sind - sie sind Jargon. Nicht nur (um die obigen Beispiele zu verwenden) para und pour haben nicht ganz die genaue Bedeutung, die für Englisch hat, für Nicht-Programmierer ist der Ausdruck "for loop" jibberisch. Auch Amerikaner müssen eine neue Bedeutung lernen. Die oberflächliche Bedeutung der Wörter in eine andere Sprache zu übersetzen bedeutet also eher, ein sprachübergreifendes Wortspiel zu machen, als tatsächlich hilfreich zu sein.
quelle
Ich habe vorher wirklich nicht zu viel über das Programmieren auf Japanisch nachgedacht, aber jetzt geht es los, indem wir das Codebeispiel der Frage verwenden.
Verwenden Sie nur die Sprachanweisungen auf Japanisch mit den Variablen auf Englisch:
quelle
Wie viele Leute bereits betont haben, müssen Sie in den meisten Programmiersprachen nur ein paar Schlüsselwörter lernen, sodass es nicht so wichtig ist, ob sie auf Englisch (oder einer anderen Sprache als Ihrer) sind. Es ist nur ein Symbol, das Sie mit einem Konstrukt verknüpfen. Zum Beispiel haben Sie in VB "THEN", was in vielen Sprachen im C-Stil "{" wäre und keinen großen Unterschied in der Lesbarkeit macht (zumindest sehe ich das so, wenn ich kein Englisch bin) Muttersprachler).
Aber wo es manchmal haarig werden kann und wo die Wahl der (natürlichen) Sprache wichtig ist, liegt die Benennung von Bezeichnern. Wenn die Namen von Variablen, Funktionen, Klassen usw. aufgrund einer Sprachbarriere keinen aussagekräftigen Namen für Sie haben, kann es ziemlich schwierig sein, selbst dem einfachsten Code zu folgen.
Ich erinnere mich, dass mir jemand einmal einen kurzen Ausschnitt aus Actionscript aus einem Blog gegeben hat. Die Namen waren auf Deutsch und da ich kein Wort dieser Sprache spreche, hätte das Zeug auch var_123, var_562 oder func_333 heißen können (und wahrscheinlich wäre es für mich einfacher gewesen, mich an die Namen zu erinnern oder zumindest eine zu haben Chance, sie richtig zu schreiben, ohne sie zu kopieren und einzufügen). Da dies ein kurzer, in sich geschlossener Ausschnitt war, benutzte ich einen Online-Übersetzer, um diesen Variablen und Funktionen in meiner Muttersprache (Spanisch) aussagekräftige Namen zu geben, und danach war alles klar. Der Punkt ist, dass der Code eigentlich einfach war, aber ich konnte ihn nur ohne allzu großen (unnötigen) zusätzlichen Aufwand verstehen, als ich die Sprachbarriere überwunden hatte.
Seitdem habe ich auf Englisch umgestellt, um Bezeichner zu benennen. Ob Sie es mögen oder nicht, es ist das "Koine" für Programmierung, Engineering und allgemein technische Dinge. Die meisten APIs sind in Englisch geschrieben, ebenso die meisten Dokumentationen (und wahrscheinlich sind die besten Ressourcen, die Sie finden können, auch in Englisch). Abgesehen davon hält es Ihren Code kohärenter mit dem Code, mit dem Sie wahrscheinlich interagieren, und ich denke, dass er kompakter und prägnanter ist als andere Sprachen wie Spanisch (was sonst meine natürliche Wahl wäre).
Wenn Sie nicht mindestens ein bisschen Englisch verstehen, bleibt das Problem natürlich das gleiche, daher ist es keine perfekte Lösung. Angesichts einer Reihe von Entwicklern aus vielen verschiedenen Ländern besteht jedoch die Möglichkeit, dass die gemeinsame Sprache für die Kommunikation (über Code und natürlich andere Mittel) Englisch ist. Daher ist die Wahl von Englisch vielleicht die beste Option, auch wenn dies nicht die perfekte Lösung für dieses Problem wäre.
quelle
Die Programmiersprache definiert Schlüsselwörter und Standardklassennamen, und es wird empfohlen, benutzerdefinierte Typen, Variablen und Funktionen auch mit englischen Namen zu versehen (als Nicht-Muttersprachler kann ich das sagen ;-).
Also ja, wenn alles in Ordnung ist, können Sie den Code lesen.
Sprachen wie Java und Perl erlauben jedoch den vollständigen Unicode-Satz für Bezeichner. Wenn also jemand seine Klassennamen in Kanji schreibt, haben Sie wahrscheinlich ein Problem.
Update: Für Perl gibt es ein Witzmodul , mit dem Sie Perl in Latein schreiben können. Aber es ist wirklich nur das, ein Witz. Niemand nimmt solche Dinge ernst.
Zweites Update: Die Idee lokalisierter Programmiersprachen ist nicht so lächerlich. Die Makrosprache von Excel ist lokalisiert, aber zum Glück ist sie in einer kanonischen Sprache (Englisch) in der Datei gespeichert, sodass die Lokalisierung nur eine Ebene über dem Normalen liegt. Solche Dinge sind nur für kleine "Programme" sinnvoll, für "echte" Programme wird es schwierig, sie zu warten.
quelle
Tatsächlich gibt es einige nicht auf Englisch basierende Programmiersprachen (Wikipedia)
Ich bin Norweger, aber ich habe immer Englisch für den gesamten Code verwendet, außer für die Ausgabe (ohne dummen Code aus der Schule). Eigentlich schreibe ich normalerweise alles auf Englisch und übersetze es dann mit gettext (oder so) in meine Muttersprache.
quelle
Ich bin Brite und ein Problem, auf das wir oft stoßen, ist der amerikanische / britische Rechtschreibkonflikt. Dies tritt häufig bei programmierbezogenen Begriffen wie Initialisieren () oder Initialisieren (), Analysieren () oder Analysieren () usw. auf. Dies kann (hat) zu Problemen beim Versuch führen, Methoden zu überschreiben, und ist manchmal schwer zu erkennen.
Da das Framework (in unserem Fall C #) von Amerikanern entworfen wurde, haben wir festgestellt, dass es am besten ist, konsistent zu sein und amerikanische Schreibweisen zu verwenden. Wir übernehmen sogar Farbe.
Wir haben eine Mischung von Nationalitäten in unseren Entwicklungsteams und die meisten Nicht-Briten tendieren natürlich zu amerikanischen Schreibweisen.
quelle
AppleScript war einst in französischen und japanischen Dialekten verfügbar. Ich weiß nicht, warum es zurückgezogen wurde.
quelle
Wie wäre es, Symbole ersetzen zu können?
Nachdem ich Sprachen wie Brainf ** k und Whitespace gesehen hatte, dachte ich daran, eine Sprache wie diese zu erstellen: Sie wäre identisch mit C, außer dass Sie schließende Klammern zum Öffnen verwenden, öffnende Klammern zum Schließen verwenden und die Bedeutungen von + und -, * und / austauschen ,; und:,> und <usw.
Das Konzept ist nichts weiter als ein spielerisch veränderter C-Compiler. Wenn Sie jedoch Schlüsselwörter anders denken, müssen Sie einige Grundannahmen überdenken, wenn Sie noch nie an solche Dinge gedacht haben. Ex:
quelle
Ich bin in einem französischen Team, das ein Softwaresystem in C # entwickelt. Trotz der Tatsache, dass die Schlüsselwörter der Programmiersprache angeblich Englisch sind, kann ich mir vorstellen, dass Sie große Schwierigkeiten haben würden, den Code zu lesen, da alle Funktionsnamen, Variablen, Codekommentare, Datenbanktabellen und -spalten, technischen Spezifikationen, Protokolle usw. enthalten sind Französisch, einschließlich der schönen Akzentzeichen ç, é, è, ù usw. Ich bin mir nicht einmal sicher, ob das System aufgrund von Lokalisierungsfehlern überhaupt anderswo ausgeführt werden würde, z. B. wenn das Komma als Standard-Dezimaltrennzeichen verwendet wird.
Ansonsten ist WinDev eine beliebte Programmierplattform in Frankreich und seine Programmiersprache WLanguage enthält Schlüsselwörter in Französisch oder Englisch. Siehe Beispiel hier: Linktext
quelle
Die einzige Sprache, die ich lokalisiert sah, ist Excel mit seinen Makros. Wenn Sie versuchen, eine Spalte mit einer italienischen Version von Office zu summieren, müssen Sie schreiben
SOMMA(A1:A10)
und nicht SUM. Das ist eine Schande.Übrigens, nur weil es Spaß macht, sollte Ihr Code mit italienischen Schlüsselwörtern folgendermaßen aussehen:
quelle
Ich habe gesehen, wie VBA in spanisch-ähnliche Befehle übersetzt wurde. Es ist eines der hässlichsten Dinge, die jemals gesehen wurden. Ich würde mich schämen, so etwas auf meinem Computer zu haben.
PD: Ich denke zufällig, dass Spanisch eine viel schönere Sprache ist als Englisch. aber übersetzen ist FALSCH
quelle
Nun, wie andere betonten, würden die Schlüsselwörter und Systemaufrufe wahrscheinlich auf Englisch bleiben.
Das Verständnis der Schlüsselwörter der Sprache ist jedoch nur ein kleiner Teil des Verständnisses des Codes. Variablennamen, Funktionsnamen und Kommentare können in der Muttersprache des Autors verfasst sein.
Bearbeiten : Ich habe gerade einen Rückblick auf meine Jugend gegeben, als ich in den Mapping-Tabellen meines integrierten TRS-80-BASIC die Schlüsselwörter auf Französisch umstellte. Ich konnte alle Schlüsselwörter ändern, aber keines größer machen. Gemacht für lustige Programme.
quelle
Mach dich nicht darüber lustig. Vor einigen Jahren hatte Microsoft G # (German Sharp) - C # mit deutschen Schlüsselwörtern und API angekündigt. Natürlich war es ein Aprilscherz, aber die gesamte Website darüber sah so real und professionell aus (und war auf microsoft.com). Unheimlich.
Bei der Arbeit verwenden wir zwei Feldbussysteme, die beide im deutschsprachigen Raum entwickelt wurden und eine beängstigende Mischung aus Deutsch und Englisch für Identifikatoren aufweisen, darunter einige nette falsche Freunde. Es ist ein Chaos.
Nein, englische Schlüsselwörter und Bezeichner sind in Ordnung. Obwohl einige argumentieren könnten, ob es Farbe oder Farbe sein sollte :)
quelle
In mehreren VBA-Projekten, an denen ich gearbeitet habe (ja, sehr früh in meiner Karriere), mussten wir die Office-Version erkennen, die auf dem Computer des Benutzers installiert war, und die in den Speradrammen verwendeten Formeln entsprechend ändern.
Da ich auf Portugiesisch programmiere, müsste "SUM" in "SOMA" übersetzt werden und so weiter und so fort. Ich kann mir einfach nicht vorstellen, wie viel Arbeit nötig ist, um dies in mehreren Sprachen zu erreichen. Hat noch jemand unter diesem Problem gelitten?
quelle
Es gibt einige Sprachen, die Schlüsselwörter übersetzt haben. Zum Beispiel Excel-Formeln. Wenn Sie einige Berechnungen in eine Tabelle schreiben, erfolgt dies in Ihrer Sprache.
Glücklicherweise ist dies keine allgemeine Praxis, und selbst nicht englischsprachige Personen wie ich danken Gott sei Dank, dass es eine Standardsprache für Schlüsselwörter gibt:
Und wo soll ich aufhören? Können Sie sich ein C in Altgriechisch vorstellen?
Schlüsselwörter müssen in einer Sprache bleiben, und nun, es begann mit Englisch, lass es so bleiben. Dies hätte am schlimmsten sein können (asiatische Sprache?). Und so müssen wir Methoden und Kommentare auf Englisch schreiben. Ok, mehr Arbeit für uns, aber zumindest die internationale Codebasis bleibt kongruent.
Es gibt jedoch einen Fall, in dem die Verwendung von Methodennamen und Kommentaren in Muttersprachen eine gute Praxis sein kann: im Land der Dritten Welt. Ich gehe in einigen Monaten nach Senegal, um ein Django-Projekt zu leiten. Senegal hat eine enorme Analphabetisierungsrate, und deshalb ist es schon großartig, dass sie Energie in die Verbesserung ihrer Programmierkenntnisse stecken. Französisch ist hier die Muttersprache, daher wäre es ineffizient, sie zu zwingen, gleichzeitig Computer und eine neue Sprache zu lernen.
Übrigens, das wäre Ihr Code mit französischen Schlüsselwörtern:
Nicht dass die Übersetzung der Schlüsselwörter nichts mit der Übersetzung der Zeichenfolgen zu tun hätte. Natürlich haben wir "Hallo, da" in unsere Sprache übersetzt. Europäische Programmierer verwenden I18N sogar viel häufiger als amerikanische, da ihr Dienst ein breiteres Publikum erreichen kann.
quelle
Im Allgemeinen passen sich die meisten Programmierer der englischen Form an. Ich habe das Programmieren gelernt, als ich 7 Jahre alt war und nur Hebräisch (von rechts nach links) und ohne Englisch gesprochen habe, was es zu einer faszinierenden Erfahrung gemacht hat.
Das Problem, das normalerweise auftritt, ist die Dokumentation, Variablen und Funktionsnamen. Ich habe meinen Anteil an Variablen in anderen Sprachen mit englischem Alphabet gesehen.
Die einzige Sprache, mit der ich vertraut bin und die tatsächlich übersetzt wurde, war das gute alte Logo (bis heute erstaunlich).
quelle
Als ich ein Kind war, gingen wir nach Frankreich und in ein Museum, in das wir gingen, erinnere ich mich, dass ich ein Display gefunden habe, das Ihnen zeigte, wie man Computerprogramme schreibt. Die Sprache war eine Art BASIC-Variante, und ich erinnere mich noch genau daran, wie POUR anstelle von FOR verwendet wurde, und so weiter. Ich war 7 Jahre alt und hatte gerade erst BASIC gelernt, und es schien mir völlig natürlich, dass die Franzosen ihren eigenen Dialekt wie diesen haben würden !!
Ich denke, es könnte LSE gewesen sein , das ich gesehen habe?
quelle
Die Skriptsprache von Filemaker ist lokalisiert. Die Skripte (und Daten!) Werden in einer schrecklichen "sorta kanonischen" Form gespeichert.
Wenn Sie also ein Skript in der amerikanischen Version schreiben und es dann in der französischen Version öffnen, werden alle Schlüsselwörter und integrierten Funktionsnamen in Französisch angezeigt. Aber warum läuft es nicht?! Aha! Die französische Version verwendet "," als Dezimalpunkt, und um Mehrdeutigkeiten zu vermeiden, wird ";" Funktionsargumente zu trennen - wo die amerikanische Version "." verwendet. bzw. ",". Diese Konvertierung müssen Sie selbst vornehmen.
Sie arbeiten also über die unglaublich schlechte Skriptbearbeitungsoberfläche (Sie können keine Skripte als Textdateien schreiben), um all diese Probleme zu beheben. Es läuft! Toll! Die Ergebnisse sind alle falsch! Ach nein! Aha! Das Datum vom 7. Januar 2004, das Sie in der amerikanischen Version eingegeben haben, wird als Juli bis 1-2004 interpretiert. Anscheinend werden Daten nicht nur angezeigt, sondern in der vom Gebietsschema abhängigen Reihenfolge gespeichert . Ich scherzend Sie ? Nein.
[Hinweis: Filemaker 8 und 9 sind möglicherweise vernünftig - ich habe immer nur mit 3 - 7 gearbeitet.]
quelle
Ihre Frage ist in Bezug auf Perl interessant, da die Syntax der (englischen) natürlichen Sprache folgt. Ich frage mich, ob das es für nicht englischsprachige Personen schwieriger macht ...
Natürlich weigern sich Perl und Perlers, nach herkömmlichen Regeln zu spielen. Der verrückte Wissenschaftler Damian Conway hat das Lingua :: Romana :: Perligata- Modul geschrieben, das die schwarze Magie von Quellfiltern verwendet, damit Sie Perl in Latein schreiben können!
quelle
Hier in Australien müssen wir noch Farbe wie Farbe buchstabieren . Ich finde es jedoch ärgerlich, wenn andere (australische) Entwickler, die an einem australischen Projekt arbeiten, entscheiden, dass interne Variablennamen auf amerikanische Weise geschrieben werden müssen.
quelle
Es wäre sinnlos, IMHO, eine Sprache i18n Syntax . Es würde einfach jede Art von Portabilität zerstören.
Die einzige Ausnahme bilden Bildungssprachen wie LOGO. Sie wurden entwickelt, um das Lernen zu erleichtern, sodass Portabilität kein Problem darstellt.
quelle
Ich habe viel Code gelesen, aber das Problem liegt immer bei Variablen- / Methodennamen und Kommentaren. Wenn sie ihren Code in ihrer eigenen Sprache mit speziellen Sprachzeichen wie Japanisch oder Kyrillisch kommentieren, sind wir in Schwierigkeiten! Aber die Schlüsselwörter, von denen ich denke, dass sie so wie sie sind auf Englisch bleiben.
quelle
auf Italienisch
Um die Sorgen eines früheren Posters zu bestätigen, habe ich einen Fortran-Code mit einem Makro-Include gesehen, der alle Schlüsselwörter vom Englischen ins Französische übersetzt. Gestatten Sie mir, nicht weiterzumachen.
Ich musste auch mit einem Code arbeiten, der gleichzeitig Bezeichner in Italienisch, Deutsch, Englisch und Französisch enthielt, nicht nur, weil er an vielen verschiedenen Orten entwickelt wurde, sondern auch, weil der Hauptentwickler es für Spaß hielt und ihm half, Bezeichnernamen nicht zu duplizieren ( natürlich mit einer Routine von 2000 Zeilen lang ....)
quelle
Ich denke, WordBasic wurde lokalisiert. WordBasic wurde verwendet, um Makros für in Word zu schreiben, bevor VBA verwendet wurde.
Wenn ich mich richtig erinnere, würde nur WordBasic, das in der englischen Version geschrieben wurde, auf allen lokalisierten Versionen ausgeführt. Wenn Sie eine niederländische Version schreiben würden, könnten Sie sie nur für ein niederländisches Wort ausführen.
quelle