Warum sind Programmiersprachen so komplex und unnötig schwer gestaltet?
Hallo ihr Menschen,
ich beschäftige mich seit vorgestern mit dem Thema Programmieren- Lernen und dabei stellen sich mir viele Fragen, wie die,
warum benutzt man schwer zu verstehende Schlüsselwörter und viel schlimmer, so viele Sonderzeichen?
Wäre es nicht sehr viel einfacher, auf "deutsch", in arabisch oder in chinesischer Schrift zu programmieren, so als würd' ich ein Roman schreiben?
Warum so kompliziert!?
15 Antworten
Die Sprache unterliegt Doppeldeutigkeiten. natürliche Sprache ist ausschweifender. Englisch wird fast überall auf der Welt verstanden und hat einen sehr begrenzten Zeichenvorrat, der in vielen anderen Sprachen enthalten ist.
Die Mathematik macht es noch knackiger. Die Bezeichnung von Variablen ist dort einstellig.
Mir ist keine Programmiersprache bekannt, die unnötig schwer ist. Generell sind die Schlüsselwörter einfache Englische Worte, die jeder Mensch beherrschen sollte. Warum glaubst du, dass es einfacher wäre, diese in Arabisch oder Chinesisch zu schreiben? Mein Englisch ist um Längen besser als mein Arabisch oder Chinesisch....
Durch eine Programmiersprache gibst du einem PC über das Betriebssystem oder einem Mikrocontroller eine bestimmte Anweisung, wie die Hardware "zu nutzen" ist.
"Schwerer" zu erlernende Sprachen sind im Allgemeinen die Hardwarebeschreibungssprachen. Dazu zählen zum Beispiel VHDL oder Assembler.
Diese Codes werden von dem einfachen (deiner JETZIGEN Meinung (aller Anfang ist schwer) nach schwer zu verstehenden) Code zuerst "debuged" (auf Fehler untersucht) und anschließend in Maschinencode (binäre Zahlenfolgen, also 0 und 1) "compiliert". Dieser Maschinencode wird dann über ein Programmiergerät direkt auf die Hardwarekomponente geschrieben. Dies geschieht im einfachsten Sinne, indem einzelne Sicherungen durchgebrannt werden. Damit für einen unglaublich komplexen Controller, dessen Funktion ein Mensch mit seinem Hirn niemals vollkommen nachvollziehen könnte, ersichtlich ist, muss die Beschreibung der Funktion mathematisch eindeutig sein.
So etwas wäre mit einem "Roman" wie du es nennst vollkommen unmöglich. Denn die jeweilige Peripherie am Ende der Kette kennt nur Strom oder kein Strom. Bei der Komplexität der heutigen Technologien wären selbst "einfache" Prozesse mit jeder anderen Methodik unnötig Kompliziert bzw. unmöglich zu realisieren.
Glaub mir, so wie es ist, ist es am einfachsten und effizientesten. Ansonsten hätten sich die heute am meisten verwendeten Programmiersprachen niemals durchsetzen können.
Mir ist keine Programmiersprache bekannt, die unnötig schwer ist.
Ohhhh, da kenn ich einige: BrainFuck, Whitespace und ganz besonders Mabolge. ^^
Wobei man sich bei den ganzen "Esolangs" evtl. die Frage stellen muss "Ist die Komplexität tatsächlich unnötig hoch oder nur sinngemäß hoch?".
Programmiersprachen sind formal und reduziert auf ein Minimum von "Vokabeln", zumindest wenn es um die elementaren Bausteine geht. Prinzipiell sind sie damit die einfachsten Sprachen, die man lernen kann.
Das große Problem bei formalen Sprachen ist auf der einen Seite die reduzierte, aber eindeutige exakte Semantik, die von einem fordert, kleine Teile auch exakt zusammenzubauen, damit sie ein exaktes verständliches großes Ganzes ergeben.
Wenn man nicht-formale Sprachen sich anschaut, dann sind diese häufig voller Ausnahmen, Floskeln und semantischen Zweideutigkeiten. Das ist wesentlich komplexer, denn die Semantiken sind eher künstlerisch überlagernd, als dass sie einzeln exakt separiert in der alltäglichen Sprache vorkommen.
Aber sei beruhigt. Auch in der Softwareentwicklung sehe manche Entwickler "Romane" schreiben. Ich gehe dann immer regelmäßig an die Decke...
Brainfuck wurde einfach gestaltet, es benutzt nur 8 Zeichnen. Es ist aber nicht so gut für Alltag.
Naja, einige Programmiersprachen sind einfacher zu benutzen als andere. Sie haben andere Nachteile, zum Beispiel Laufzeit.
Man kann auch Cobol nehmen, das ist wie Englisch, aber bitte beginn dann mit keinen langen Rechnen. Das bedeutet aber nicht, dass andere Sprachen nur darum so kompliziert sind, um langen Rechnen programmieren zu lassen. Dazu kommen auch Daten, und Datenstrukturen.
Brainfuck wurde einfach gestaltet, es benutzt nur 8 Zeichnen.
Und wenn du dein Programm direkt in Bitform eingibst, dann brauchst du sogar nur 2 Zeichen. ^^
Wie viele Sprachen beherrscht du und wann hast du diese gelernt. Gehen wir einfach mal davon aus, dass Deutsch deine Muttersprache ist.
- Deutsch als Muttersprache lernt man, sobald man zu sprechen beginnt. Da ist das Gehirn leicht in der Lage, auch komplexe Sprachen wie Deutsch zu lernen
- In der Schule hattest du dann wahrscheinlich Englisch. Dir fiel sicherlich auf, dass Englisch dir schwieriger wie Deutsch vorkommt, aber auch, dass Englisch nur "the" als Artikel kennt und es kein Duzen und Siezen gibt.
- Bei der dritten Sprache wird es dann meistens schon schwieriger.
Um diese Sprachen zu lernen, braucht man aber definitiv mehr als zwei Tage. Am Anfang ist man auch nicht in der Lage, diese fließend zu sprechen.
Du kennst sicherlich den Unterschied zwischen
"komm, wir essen Opa"
und
"komm, wir essen, Opa"
Auch da gibt einen riesigen Unterschied, wenn du nur ein Zeichen weglässt.
Was wäre das Problem, jede Sprache in jegliche Sprache zu übersetzen?
- Initialaufwand für eine ganze Menge Leute (Übersetzer, Prüfer, etc.)
- Denselben Aufwand bei jedem Update, wenn irgendwas geändert wird
- Fehleranfälligkeit, weil du den Code dann ja pro Sprache duplizierst
- Wörter wie "bitte" im Deutschen sind mehrdeutig im Englischen. Sie können "please", "you are welcome" oder "here you are" heißen.
Der Unterschied zwischen Quellcode und einem Roman ist, dass der Roman der Epik zugeordnet wird und unterhalten soll. Deshalb benutzt man ausschweifende, spannungerzeugende Worte und Beschreibungen, es werden Metapher und Umschreibungen verwendet, während Quellcode sachlich ist und präzise. Sie haben eine völlig unterschiedliche Aufgabe: Romane erzählen eine meist fiktive Geschichte; Quellcode soll etwas tun bzw. eine Berechnung anstellen.