Die sprachliche Relativitätstheorie ist der Gedanke, dass Sprache unser Denken prägt. Meine Frage ist, wie viel und inwieweit dies für die Programmierung gilt.
- Sind einige natürliche Muttersprachen besser geeignet, um über Programmierung nachzudenken als andere? Kann zum Beispiel das Folgende in einer nicht englischen Sprache präziser formuliert werden?
Select a pivot. Move all the items less than the pivot to one side of the list, and all the items greater than the pivot to the other side.
- Ist ein chinesisch sprechender Programmierer View-Programmierung in einer radikal anderen Linse als ein englischsprachigen Programmierer will, oder die Unterschiede verblassen, wenn beide in dem Thema eingetaucht sind?
- Sind einige Programmiersprachen und Domänen in der einen oder anderen Sprache leichter zu verstehen? Ist es zum Beispiel einfacher, Ruby zu grillen, wenn Sie Japaner sind, weil der Schöpfer von Ruby Japaner ist?
Beachten Sie, dass diese Frage konzentriert sich nicht auf „wie Programmiersprachen beeinflussen die Art und Weise denken die Leute über die Programmierung“, sondern „wie tun natürlich beeinflussen Sprachen, wie die Leute denken, über die Programmierung“.
Um das aus dem Weg zu räumen, ist Englisch eine Sprache, die eindeutig einen pragmatischen Vorteil hat . Ich denke , der Vorteil wenig mit Programmiersprachen Auswahl Englisch Schlüsselwort wie zu tun hat if
, for
, while
, und do
, ebenso wie Musiker , die kein Italienisch sprechen nicht durch Worte wie gestolpert forte . Es hat mehr mit der Kommunikation von Ideen mit anderen Programmierern zu tun, da Englisch heutzutage die Verkehrssprache ist, zumindest in der Programmierwelt. Wenn Sie beispielsweise in StackOverflow eine Frage stellen möchten, müssen Sie wirklich Englisch und ziemlich gut Englisch sprechen, um gute Antworten zu erhalten. Obwohl dies nach einer imperialistischen Haltung klingt, ist es in der Praxis wirklich wahr.
Abgesehen davon, wie wirken sich die intrinsischen Eigenschaften von Sprachen darauf aus, wie Programmierer, die sie sprechen, über Datenstrukturen, Algorithmen usw. denken? Sind Sprachen besonders prägnant, wenn es um Logik und Programmierung geht, damit Muttersprachler dieser Sprachen schneller denken können?
quelle
Implement quick sort
.Antworten:
Ah, die Sapir-Whorf-Hypothese gegen die Chomsky-Deep-Structure-Hypothese wars ...
Die Programmierung ist Mathematik. Die Mathematik ist angewandte Philosophie. Dann stellt sich die Frage, welche natürliche Sprache mathematische Konzepte ohne nennenswerte Kopfkratzer exakt beschreiben kann. Anders ausgedrückt, welche Sprachen können mit aristotelischer Metaphysik leicht umgehen?
Die sprichwörtliche "wilde" Sprache kann anfänglich Schwierigkeiten haben , die erforderlichen Abstraktionen erster Ordnung auszudrücken. However- aber! - Menschen können neue Wörter und neue Konzepte lernen. Altgriechisch begann nicht mit philosophischen Begriffen aus; Sie mussten erfunden und dann auf andere Sprachen portiert werden.
In Anbetracht dessen, dass Mathematik universell ist, postuliere ich, dass die starke Sapir-Whorf-Hypothese falsch ist.
quelle
Ich weiß nicht, ob sich eine bestimmte natürliche Sprache für eine bessere Programmierung eignet (außer vielleicht Latein?). Ich weiß, dass es ziemlich mächtig ist , mehr als eine Sprache zu kennen .
Dijkstra sagte in einem seiner letzten Interviews (nachgedruckt in CACM Vol. 53 Nr. 8, S. 44):
quelle
Türkisch ist eine sehr interessante Sprache, da sie ausnahmslos strenge Regeln enthält (die mir bekannt sind), nahezu vollkommen redundanzfrei ist, kein grammatikalisches Geschlecht hat und mit Worten so viel ausdrücken kann wie ein Satz in Englisch.
Wenn ich auf Türkisch spreche, denke ich darüber nach, was ich erreichen möchte, welche Informationen ich übermitteln möchte und weniger darüber, welche Wörter ich verwenden soll.
bearbeiten
Natürlich Türkisch hat also das biologische Geschlecht darzustellen. Aber es hat keine Trennung in er / sie / es - auf Türkisch "o".
Oder auf Spanisch würde man "profesor / profesora" und auf Deutsch "Lehrer / Lehrerin" sagen. In der türkischen Sprache müssen Sie zusätzliche Wörter verwenden, um das Geschlecht anzugeben - ähnlich wie in der englischen Sprache.
In der türkischen Lehrer ist öğretmen. Um auf eine Lehrerin hinzuweisen, würde man "kadın öğretmen" - Lehrerin sagen. Aber trotz Deutsch, wo - wenn nicht durch Hinzufügen eines "-in" femalisiert - der Standard männlich ist, hat öğretmen kein Geschlecht, wie es nicht gibt.
Eine andere Sache, die auf Türkisch nicht verfügbar ist, sind Artikel wie "el / la", "the", "der / die / das" - da es sich normalerweise nur um Informationen handelt, die im Kontext bereits verfügbar sind.
Aber es gibt Wörter, die "dies", "este / esta", "diese / dieses / diese" ausdrücken, zum Beispiel "bu".
Dies sind zusätzliche Informationen, da sie auf ein bestimmtes Objekt zeigen.
quelle
Ich denke, es ist wahrscheinlicher, dass die von Ihnen verwendete Programmiersprache die Art und Weise beeinflusst, wie Sie über das Problem denken. Die Variablen- und Klassennamen usw. sind nur Zeichen, die etwas darstellen. Obwohl es sehr wahrscheinlich ist, dass Programmierer in verschiedenen Kulturen aufgrund ihrer gesprochenen Sprache und der Art und Weise, wie sie gelernt haben, unterschiedlich über das Programmieren denken.
quelle
Meiner Meinung nach spielt die natürliche Sprache keine Rolle (oder sollte es zumindest nicht sein), wenn Sie über die Methoden oder Ideen sprechen, die Sie mit Ihrem Code umsetzen möchten.
Wie Sie selbst sagten, ist Englisch am besten geeignet , wenn Sie mit dem Code selbst arbeiten und Dokumentationen über den Code schreiben . Aber da der Code selbst nur ein Handwerk ist , liegt die wahre Stärke eines Programmierers / Informatikers darüber, dass es sich um Ideen, Algorithmen und dergleichen handelt - und dann ist die Sprache, in der diese Dinge beschrieben werden, für den tatsächlichen Inhalt völlig unwichtig.
quelle
Dies war ein Thema, an dem ich mich irgendwann sehr interessiert hatte, daher meine (jetzt) noch größere Trauer, dass ich die Lesezeichen, die ich damals hatte, nicht finden konnte.
Ich habe einen Link gespeichert, über den ich neulich gestolpert bin: Sind verschiedene Sprachen gleich verschiedenen Realitäten? das tangiert etwas drauf (lest auch die Kommentare). Einige sind interessant.
Sowieso ...
quelle
Englisch ist eigentlich ziemlich effizient und prägnant. Die Übersetzung in die meisten Sprachen verlängert die Ausdrucksfähigkeit einer Idee .
Es ist auch allgemein anerkannt, dass es keine primitiven natürlichen Sprachen gibt . Alle aktiven natürlichen Sprachen sind gleichermaßen ausdrucksstark. Das heißt nicht, dass Ideen nicht durch Sprache geformt werden, aber ich denke nicht, dass natürliche Sprache einen großen Einfluss hat.
quelle