Ändern sich Programmiersprachen mit der Zeit?

7 Antworten

Hallo GrimGoal!

Gänzlich kommt es erstmal auf deinen Wissensstand an.

C++ selbst stammt aus dem Jahr 1979 und ist somit wie vieles in der Informatik schon "uralt".

Deine Frage beantwortend haben sich Dinge wie Schleifen oder Verzweigungen nicht verändert, so dass diese Grundlagen selbst aus einem C++ Buch aus dem Jahr 2000 erlernbar sind.

Weiterführund wurde z.B. die STL ( Standard Template Library) bereits in den 80er Jahren eingeführt. Jedoch kommt hier immer mal wieder was hinzu oder wird entfernt.
Ebenso bin ich mir nicht sicher ob du in diesem Buch etwas über Lambda-Expressions finden wirst.

Insgesamt sind dies aber nur ein paar kleine Anmerkungen zu Unterschieden.
Fazitär lässt sich so ein Buch als Einstieg nutzen!
Sollte der Compiler jedoch meckern, ist es gut eine aktuelle Dokumentation zur Hand zu haben.

Hoffe ich konnte dir damit helfen!

Liebe Grüße
Norman

Na klaro, wir sind ja hier in der Softwareentwicklung und hier gibt es nur eine Richtung und die lautet: Weiterentwicklung ohne Gnade.

Also ja, die meisten Programmiersprachen verändern sich mit der Zeit, ganz schlimm ist es momentan bei Javascript zu sehen, wo es innerhalb der Sprache mittlerweile zig verschieden Subdialekte und Stile gibt in den man programmieren kann. Im prinzip kann man dort jede Woche sein Programm porten.

In C++ hat sich auch relativ viel verändert, würde eher ein aktuelles Buch holen das den aktuellen Standard entspricht.

https://de.wikipedia.org/wiki/C%2B%2B#Entstehung_und_Weiterentwicklung

Die Weiterentwicklung von Programmiersprachen erfolgt in der Regel abwärtskompatibel, d.h. Code, der mit älteren Versionen der Sprache geschrieben wurde, funktioniert in späteren Versionen auch.

Stattdessen wird der Funktionsumfang der Sprache i.d.R. erweitert, d.h. es gibt in späteren Versionen mehr Befehle oder neue Konstrukte, die bestimmte Programmieraufgaben vereinfachen oder neue Konzepte ermöglichen.

Prinzipiell kannst du mit dem Buch also die Grundlagen lernen, ohne etwas zu lernen, was heute nicht mehr geht.

Unabhängig davon würde ich dir als Anfänger aber von C++ abraten und dir eher empfehlen, mit Java oder ggf. C# zu starten. Warum?

  • C++ ist inzwischen ziemlich alt und historisch gewachsen. Dadurch ist vieles sehr komplex und teilweise relativ kryptisch
  • Objektorientierte Entwicklung ist zwar möglich, aber durch die Zeigerarithmetik und dadurch, dass du in C++ die Speicherverwaltung komplett selbst machen musst (kein GarbageCollector), ziemlich kopfschmerzanfällig.
  • Ebenfalls durch die explizite Speicherverwaltung mit Pointern kannst du relativ schnell in schwere Ausnahmefehler (Zugriffsschutzverletzung beim Versuch, auf einen nicht mehr existierenden Speicherbereich zuzugreifen, die die ganze Anwendung runterreißt) reinlaufen, was bei modernen Programmiersprachen so nicht vorkommt.
  • Bis auf Spezialanwendungen (z.B. GPU-Programmierung) wird C++ in Real-World-Projekten kaum noch eingesetzt (stattdessen eher Java, C#, Python, Websprachen fürs Frontend...)

Zum Erlernen von Java kann ich dir sehr das kostenlose Onlinebuch "Java ist auch eine Insel" empfehlen:

http://openbook.rheinwerk-verlag.de/javainsel/

Durch den Onlinecharakter ist es auch eigentlich immer aktuell.

Übrigens ist es für den Anfang nicht ganz so wichtig, ob du Java oder C# lernst, weil die Syntax sehr ähnlich ist. Allerdings ist Java eine freie Sprache, sodass du mehr kostenlose Entwicklungsumgebungen und Bibliotheken findest, während du mit C# häufig an Microsoft-Produkte gebunden bist.

Python ist als Einstiegssprache auch recht beliebt, allerdings durch die dynamische Typisierung zum Lernen m.E. zu "lasch". Fang lieber mit was streng getyptem wie Java an und geh dann zu dynamischer Typisierung über, damit du die Vor- und Nachteile von beidem besser schätzen lernst.

Mikkey  23.10.2017, 17:46

Du bist mit Deinem Wissen über C++ offenbar auch an der Jahrtausendwende stehengeblieben.

Niemand, der ernsthaft mit C++ programmiert verwendet Zeigerarithmetik oder macht eine Speicherverwaltung selbst. Es gibt Smartpointer, die allgemeine Objekte verwalten und je nach Framework Parent-Child-Beziehungen. Die Anweisung "delete" sollte wirklich niemand mehr verwenden.

0
Llandyl  24.10.2017, 11:15
@Mikkey

Mir ist schon klar, dass es in C++ Bibliotheken und Frameworks gibt, die einem sowas kapseln. Diese kennen und verwenden zu müssen fällt m.E. aber auch unter Selbermachen, da die Funktionalität nur aufgesetzt ist - der Sprachkern selbst ist durch die Abwärtskompatibilität nach wie vor gewachsen und "anfällig", und dadurch gerade für Anfänger m.E. unnötig komplex. Das wird sich auch nicht ändern, da Sprachkonsortien normalerweise nie die Wurzel kappen.

In Java, C# usw. habe ich gar nicht erst das Problem, dass ich um Gefahrenzonen herumkapseln muss, um vernünftiges OOP hinzukriegen. Damit will ich nicht sagen, dass C++ grundsätzlich schlecht ist. Jede Sprache hat ihre Use-Cases und gerade die Möglichkeit, Dinge sehr grundlegend und präzise anzusteuern kann in den Händen eines erfahrenen Entwicklers natürlich auch ein wichtiges Werkzeug sein. Allerdings denke ich, dass es für einen Anfänger inzwischen bessere Einstiegsmöglichkeiten gibt.

Ist aber nur meine Meinung.

0

Um die Grundlagen zu lernen wird ein buch aus 2000 im grunde auch gehen.

Die Grundliegende Funktion der Programmiersprache wird sich nie ändern.

Aber viele funktionen werden mit der Zeit ersetzt und irgendwann auch gelöscht.

Wenn man jetzt z.B. mit Visual Studio als IDE programmiert und die Funktionen aus dem Buch verwendet wird man bei kompilieren vermutlich Warnungen bekommen das die Funktion bereits veraltet ist und meistens wird dan ein ersatz vorgeschlagen den man versuchen kann.

Wenn Visual Studio keinen ersatz weis kann man googlen und sich so eine ersatz funktion suchen.

Für den anfang würde ich dir als IDE jedenfalls die Community Version des Visual Studio 2017 empfehlen da man sie zum einen Gratis bekommt (solange man ein Microsoft konto hat bzw. macht) und da sie zum anderen sehr viel arbeit ersparen kann.

https://www.visualstudio.com/de/thank-you-downloading-visual-studio/?sku=Community&rel=15

PWolff  23.10.2017, 13:16

Bei Visual Studio würde ich aber für den Anfang unbedingt ein Tutorial empfehlen - sonst wird man von der Vielzahl der Möglichkeiten, die das Framework bietet, erschlagen.

0

Hei :)

also Programmiersprachen ändern sich nicht direkt, sie werden nur verbessert. Je nach Entwicklungsumgebung kann das dann ein Problem sein oder auch nicht.

Um Programmieren als solches zu lernen, ist das Buch sicher nicht falsch. Es werden vermutlich einige neue Klassen mittlerweile entwickelt worden sein, die noch nicht erwähnt wurden in deinem Buch. Aber anders ist die Sprache trotzdem nicht. Auch alter Code funktioniert heute noch.

PWolff  23.10.2017, 13:15

Die Grundlagen, die man braucht, um überhaupt in das Programmieren reinzukommen, ändern sich bei Programmiersprachen normalerweise nie.

(Ausnahme: BASIC - aber das liegt m. E. v. a. daran, dass sich ende des vergangenen Jarhhunderts so ziemlich alles BASIC nannte, das BASIC-typische Schlüsselwörter verwendete und als Befehlsgrenze den Zeilenumbruch statt des Semikolons verwendete (und Anweisunsgblöcke - falls es sie überhaupt kannte - nicht durch geschweifte Klammern, sondern durch Schlüsselwort-Klimmzüge aller Art zusammenfasste).

Wenn man die Grundlagen erst mal beherrscht, kann und muss man sich in jede Programmiersprache - auch die fortgeschrittenen Aspekte der "Lernsprache" - neu einarbeiten, und die können sich auch von Version zu Version ändern. (Ausnahme: eine sehr stark abgespeckte Sprache, die ausdrücklich für Lernzwecke entwickelt wurde oder absichtlich sehr maschinennah ist (und sich auf eine Maschine mit wenigen Befehlen bezieht))

1