e-Funktion schrieb:
Vergleich Java und C++ (PDF)
Wenn es einer der zwei sein sollte und es hauptsächlich ums lernen geht würde ich zu C++ tendieren. Java nimmt einem im Hintergrund doch eher die Arbeit ab.
Das ist doch gerade so wichtig. Wenn man etwas lernen will, sollte es einem leicht gemacht werden. Zu lernen, was
Programmieren ist, ist viel zu leicht damit zu verwechseln, zu lernen, welchen Aufwand man für Minimalerfolge treiben
muss, wenn man sich als Anfänger nicht erstmal die schwierigsten Dinge abnehmen lässt.
Und zu dem Herrn, der meinte "ohne Objektorientierung kommt man nicht weit" stelle ich mir nur einen Pfarrer vor, der
sagt, mit Mohammed kommt man nicht weit. Das ist Religion. Man kommt mit oder ohne Objektorientierung, mit oder
ohne Funktionen, mit oder ohne menschenlesbaren Code am Ende an genau den selben Ort. Man sollte die Arbeit, die
man macht nicht mit den Werkzeugen verwechseln, die man dafür nutzt. Und wenn alles, was man kennt ein Hammer
ist, sieht jedes Problem aus, wie ein Objekt, das man in eine Klasse packen muss.
€: Themenverwandtes Bild. Aber bitte, bitte, bitte nicht als Javaflame auffassen. Habe nichts gegen Java oder objekt-
orientierung oder sonst irgendwas, was euch lieb und teuer ist.
€2: Was macht man, wenn man nicht pennen kann? Richtig! Man geht ins Internet und lässt einen Wortschwall los, der
keinen interessiert. Also los! Fand, ich könnte doch hierzu noch meinen Senf abgeben:
antred schrieb:
Objekt-orientiert könntest du mit gewissen Einschränkungen auch in C programmieren. Trotzdem fällt mir kein Grund ein, weshalb man C wählen sollte. Für die heutige Zeit bietet C für meinen Geschmack einfach zu wenig syntaktischen Zucker und zu wenig Features. Viele Dinge, die in anderen Sprachen simpel sind, kann man in C nur mit viel Rumgefrickele tun.
Religionsbekenntnis: Ich mag C und benutze es sehr häufig.
Der Mangel an Features ist meiner Meinung nach nicht der Grund, warum C eine schlechte Wahl für einen Anfänger ist.
Es ist vielmehr die Kombination mit der lowleveligkeit der Sprache. Wenn man sich jeden Komfort selber aufbauen muss,
ist das für jemanden, der das Programmieren neu lernen will, eine Garantie für Frust und die falsche Erkenntnis, dass
Programmieren viel zu kompliziert ist und man das ja doch nie hinbekommt.
Es ist ja auch kein Geheimnis, dass ich Lisp (Scheme) so mag und ein sehr wichtiger Grund ist hier gerade die geringe
Zahl an Features, die es einem erlaubt, immer einen guten Überblick zu haben, was man machen kann und nicht erst-
mal den Index von einem dicken Lehrbuch nach einem bestimmten Feature, das man gerade benötigt, durchgucken
muss. Was den Minimalismus von Lisp im Gegensatz zu dem von C zu dessen Stärke macht, ist dass es etwa 8000
Ebenen höher angesiedelt ist. Die Funktionsweise des zugrundeliegenden Computers hat nichts damit zu tun, was man
in Lisp Code sieht oder wie er sich verhält. Man hat einen Garbage Collector, man hat Funktionen höherer Ordnung,
optimierte Rekursion undsoweiterundsofort. Man kann seine Ideen umsetzen, ohne von den Schranken der tiefer-
liegenden Realität eingezwängt zu werden. Daran scheitert C als Programmiersprache für Anfänger.
Und während mein sinnloses Geblubber immer mehr zutrifft, je höher die Programmiersprache ist, machen die aller-
meisten hohen Programmiersprachen den Fehler, Features, Features, Features auf den Tisch zu legen, die einen den
Wald vor lauter Bäumen nicht mehr sehen lassen. Man gewinnt wenig, wenn man alle paar Seiten einen Stapel neue
Features vorgesetzt bekommt und dann wie oben angesprochen anfängt, die Arbeit die man macht, mit den Werk-
zeugen, die man benutzt zu verwechseln und dann aus gefühlter Überforderung aufgibt.
Also: Minimalismus kann dem Benutzer auch wenn man es nicht erwartet ein befriedigendes Erlebnis von Befähigung
geben oder ihn katastrophal scheitern lassen. Aber zumindest tendentiell halte ich ihn für eine gute Sache.
Zuletzt: Wenn das ein Anfänger liest, sollte er nicht denken oh toll, ich lerne jetzt Lisp und sich ein Buch dazu suchen.
Aber wenn er ein gutes Buch findet und die Sprache mit der es einem Programmieren beibringen will ist Lisp, dann ist
das meiner Meinung nach absolut legitim. Nicht umsonst schwärme ich so von SICP, aber das ist am Ende des Tages
auch wieder nichts weiter als Religion.