(Programmier)-Sprachen


Sprachen sind dazu da mit Menschen zu kommunizieren während Programmiersprachen vom Menschen geschaffen wurden, zum mit Maschinen zu kommunizieren. Beides verfügt über ein eine gewisse Anzahl von Konzepten wie Grammatik, Vokabeln und Regeln.

Ich behaupte: Sprachen sind durch unsere Sozialisierung einfacher zu lernen als Programmiersprachen. Dafür verfügen Programmiersprachen über weniger Konzepte. Deswegen sind Programmiersprachen zwar easy to learn – but hard to master.

Programmieren ist wie Schach: Einfache Regeln aber ist schwer mit denen zu gewinnen.
Programmieren ist wie Schach: Einfache Regeln aber ist schwer mit denen zu gewinnen.

Auch wenn ich nicht gerade der Programmiergott 3000 bin, bilde ich mir ein, dass ich ein gewisses Verständnis der Programmierungsprachen besitze. Viele Sprachen wie php, Javascript, Java und ActionScript haben diverse Konzepte gemeinsam: Variablen, Objekte, Arrays, Schleifen, Typzuweisungen usw.

Programmieren ist wie Schach nur ohne Würfel

Nach meinem Verständnis ist das so wie bei einem Schachspiel: Die Regeln, nach denen die Figuren gezogen werden dürfen sind schnell erklärt: Der Bauer darf immer nur ein Feld nach vorne oder bei der Eröffnung zwei Felder nach vorne bewegt werden – außer er wirft eine Figur. Dann wirft er diese auf der diagonalen und besetzt den Platz der geschlagenen Figur. Bei einem Springer gelten wiederum andere Regeln als bei der Figur der Dame usw. Deswegen unterscheiden sich Sprachen stark von Programmiersprachen.

Sprachen vs. Programmiersprachen

Bei Englisch, Deutsch, Japanisch oder Latein sind die Regeln wesentlich komplexer und die Vokabeln sorgen dafür, dass man sich versteht – und nicht die Regeln wie man diese Vokabeln verknüpft. Bei der Programmierung kommt es darauf an die Regeln und Konzepte zu beherrschen. Die Vokabeln sind dabei sekundär während bei der menschlichen Sprache die Vokabeln das primäre Merkmal sind.

Oder etwa nicht?


Beitrag veröffentlicht

in

von

Kommentare

41 Antworten zu „(Programmier)-Sprachen“

  1. Avatar von Chris
    Chris

    Ich finde Programmiersprachen grundsätzlich wesentlich einfacher zu lernen als natürliche Sprachen. Der Grund, warum man in natürlicher Sprache schon mit relativ wenig Vokabeln und fast keiner Regelkenntnis im Italienurlaub relativ weit kommt, ist der, dass Menschen fehlertolerant sind. Mein Gegenüber versteht in etwa, was ich meine, was toll ist. Trotzdem hat das, was ich da von mir gebe, mit Italienisch nicht wirklich viel zu tun. Ich könnte mich jetzt nicht hinsetzen und Gedichte oder gar einen Roman auf Italienisch schreiben.

    Easy to learn – hard to master gilt meines Erachtens also auch da. Vielleicht sogar noch eher als bei Programmiersprachen, denn gerade durch die Fehlertoleranz kann man prima aneinander vorbeireden, ohne das zu merken.

  2. Avatar von Ron
    Ron

    OK. Auch wenn ich Kopfschmerzen habe:

    Sprachen sind durch unsere Sozialisierung einfacher zu lernen als Programmiersprachen

    Kann man bestimmt auch drüber streiten aber lassen wir das mal so stehen.

    Dafür verfügen Programmiersprachen über weniger Konzepte

    Bei unserer Diskussion ging es darum, dass Programmiersprachen weitestgehend die gleichen Konzepte haben wie natürliche Sprachen. Klar: Sie sind streng formalisiert. Niemand würde ernsthaft versuchen damit zwischenmenschlich zu kommunizieren. Was Du eigentlich meinst: Unsere Sprache ist nicht deterministisch. Sie entwickelt sich weiter, weil wir als Individuen unsere Umwelt stets besser oder auch nur anders begreifen und uns untereinander abgleichen, damit wir weiterhin miteinander reden können. Die Welten in denen wir uns mit Programmiersprachen bewegen sind deterministisch. Trotz aller Vernetzung sind unsere Computer geschlossene Systeme. Die damit simulierten Welten haben zwar mittlerweile eine hohe Komplexitätsstufe erreicht, sind verglichen mit der unsrigen jedoch noch immer primitiv.

    Schach ist ein perfektes Beispiel für ein geschlossenes, sehr strengen Regeln unterworfenes System. Und ich denke, dass es als bewiesen gelten darf, dass wir uns mit Hilfe der formalen Programmiersprache perfekt in dieser Welt bewegen und alles ausdrücken können, was es dort auszudrücken gibt.

    Sobald wir also Systeme vollständig begreifen, können wir sie modellieren. Die Programmiersprache ist dann exakt so mächtig wie jede andere.

    Die Vokabeln sind dabei sekundär während bei der menschlichen Sprache die Vokabeln das primäre Merkmal sind.

    Dazu sage ich mal salopp: Wenn Du in einem Deiner Skripte vergisst, welche Bedeutung eine Variable in Deinem System hat, dann bist Du ganz schön am Arsch.
    (Vielleicht gehts dann aber noch oben im Code ;)

    So.

  3. Avatar von ben_
    ben_

    „Oder etwa nicht?“ – da heischt Du aber ein bisschen sehr billig um Kommentar, oder etwa nicht?

    Zur Sache: Wir stehen erst am Anfang der Geschichte der Programmiersprachen. Schon in den wenigen Jahrzehnten sind Programmiersprachen einfacher, verständlicher und mächtiger geworden. Ich hab das in „Wir schreiben Maschinen“ schon angedeutet und lege hier nochmal nach: Natürliche Sprachen und Programmiersprachen werden schon in wenigen Jahrzehnten eine neue, gemeinsame Form von Literalität (damit Du’s nicht googlen musst) hervorbringen.

  4. Avatar von Ron
    Ron

    Aaah. ben_ hat gestern gefehlt.

  5. Avatar von ben_
    ben_

    @Ron: Da möchte ich ein bisschen widersprechen. Also ja, ich hab gestern gefehlt.

    Und nein zum Ersten: Ich glaube, Programmiersprachen – insbesondere jene Umgebungen in denen wir uns bewegen, das Netz – sind nicht mehr wirklich deterministisch. Programmiersprachen entwickeln sich stetig weiter und, die Tatsache, dass man innerhalb bestehender Programmiersprachen/Systeme plrötzlich neue Wege findet und bessere Möglichkeite ist ein eindrücklicher Beweis dafür. Obendrein: Das Web mit seinen unmengen an URLs / Dokumenten und Ressourcen ist inzwischen an Komplexität und gerade vor dem Hintergrund seiner raschen Änderung kaum noch als deterministischer Raum zu bezeichnen.

    Und nein zum Zweiten: Der Glaube, dass Sprache und Welt nicht-deterministisch zusammenhänge ist eine steile These. Zum einen gibt es die Position, dass erst Sprache Welt modelliert. Wir haben 4 Worte für Schnee, Eskimos haben 20. Wieviele Sorten Schnee gibt es jetzt?
    Zum anderen gibt es die sturkturalistische Schule der Linguistik, die behauptet, dass auch natürliche Sprachen geschlossene Systeme sind und sich Bedeutung nicht über die Referenz zu zur realen Welt sondern nur über die Relation innerhalb des Zeichensystems ergibt. Genau, wie Schach.

  6. Avatar von Hippo
    Hippo

    Ich frage mich, wenn ich durch Parks gehe, immer, ob und warum eine Ente eine andere Ente als Ente wahrnimmt und gelange dann immer zur Frage, ob Sprache die Welt wirklich modelliert bzw. ob Enten eine Sprache haben. Und dann bin ich immer so durcheinander, daß ich ganz schnell wieder nach Hause gehe…

  7. Avatar von Ron
    Ron

    @HIPPO: G R O ß A R T I G (hmm mit Leerzeichen formatiert!)

    @ben_: 1. Ich glaube schwerlich, dass man die Weiterentwicklung von Programmiersprachen – was auch immer sich da seit Smalltalk großartig verändert haben soll – bzw. die Unmengen an URLs und von mir aus auch ihre getypten Beziehungen untereinander und von mir aus auch die Milliarden Schlussfolgerungen, die ich daraus ziehen kann, als Beweis für die Nicht-Determiniertheit dieses Raumes bezeichnen kann. Nur weil aus dem echten Raum – der nicht-terminiert ist – täglich neues hinzukommt, ändert das nichts an der Determiniertheit des Netzes.

    Darüber lässt sich indes vortrefflich streiten denn:

    2.

    Der Glaube, dass Sprache und Welt nicht-deterministisch zusammenhänge ist eine steile These.

    OK. Das kann man von mir aus aus meinem Kommentar so herauslesen. Dann gelten Deine Einwände in genau der Form aber auch für das Netz. Betrachte ich Sprache in einem abgeschlossenen Zustand, determiniert sie. Betrachte ich so das Netz, gilt genau dies.

    Das Sprache „nur“ über Referenzen innerhalb des Zeichensystems funktioniert glaube ich aber in der Tat nicht. Es ist ein wunderbarer strukturalistischer Ansatz, der zu verblüffenden Erkenntnissen führt. Aber warum soll die Welt keinen Einfluss auf die Sprache haben?

    Wir haben 4 Worte für Schnee, Eskimos haben 20. Wieviele Sorten Schnee gibt es jetzt?

    mindestens 20, höchstens 24

  8. Avatar von Ron
    Ron

    @ben_: Das ist ein schöner Konsens. Wohlgemerkt ging es mir ja auch nicht darum feingeistig über Determiniertheit zu diskutieren, sondern lediglich um die Klarstellung, dass unsere Programmiersprachen bereits jetzt mächtig genug sind, um damit jede denkbare Aussage zu synthetisieren. Allein die Komplexität des Problems macht es schwer, das im Netz zu zeigen, während es bei Schach kein Problem darstellt.

    @nico: Schön, dass es das Archiv der Zeit gibt. Sag ich mal.

  9. Avatar von ben_
    ben_

    @Ron: Naja. Also: Zum einen tendiert die Zahl der verfügbaren URLs zu gegen unendlich. Zum anderen ist das, was hinter diesen gegen unendlich tendierenden URLs zu finden ist, ebenfalls massiven, kaum vorhersagbaren Schwankungen unterworfen. Angesichts der Tatsache, dass Code, den wir produzieren auf beiden annahmen basiert, halte ich es nicht mehr für plausibel von einem Determinismus im Netz zu sprechen.
    Und schon gar nicht kommt da etwas aus dem „echten“ Raum hinzu. Das Netz expandiert bereits durch sich selbst.

    Oder um es umzudrehen: Warum sollte jener „echte“ Raum weniger terminiert sein? Ist die Summe der bestehenden Materie/Energie nicht konstant?

    Oder um einen Konsens zu finden: Wenn man der Meinung ist, dass Sprache nicht deterministisch ist, dann sollte man meiner Meinung nach konsequenter Weise auch der Meinung sein, dass das Netz (und seine Sprachen) nicht deterministisch ist. Wenn man davon ausgeht, dass das Netz (und seine Sprachen) determiniert sind, dann sollte man das konsequenter Weise auch für natürliche Sprachen und die Welt-Sichten die sie hervorbringen annehmen.

    Das Netz und seine Sprachen sind Welt. Und sie werden immer mehr das, was wir heute noch – aus einer historischen Dialektik heraus – „natürliche“ Sprachen nennen.

  10. Avatar von nico_
    nico_

    Nur nebenbei: die Annahme, Eskimos hätten hunderte Worte für »Schnee« ist ein populärer Irrtum:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert