Hallo zusammen
Mit beschäftigt folgende Frage: Was ist der Unterschied zwischen C++ modern und wie man C++ früher programmiert hat? Ist es ein andere Programmiert-Stil? Oder ist C++ modern eine bessere Programmiermethode?
Liebe Grüße
Von Xeon
C++ modern und C++ früher
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: C++ modern und C++ früher
Da ich aktuell eine Hand etwas lädiert habe, versuche ich das mal möglichst kurz:
C++ ist als Sprache entstanden, in der man viele Dinge ausdrücken kann. Das haben die Leute dann auch gemacht. Entsprechend hat jeder programmiert, was er für richtig hielt. Was bedeutet, dass sich jeder in den Code einlesen musste. Viele Probleme wiederholen sich jedoch.
Man braucht immer wieder Listen und Daten-Container und wenn die alle gleich funktionieren, kann man Algorithmen schreiben, die Probleme lösen, wenn man ihnen einen Container gibt.
Es hat sich gezeigt, dass es eine Sammlung von interessanten Algorithmen gibt, wie Beispielsweise accumulate, transform oder sort, die sich immer wieder praktisch zeigen, wenn man mit Containern arbeitet.
Modern C++ legt nun mehr Focus auf die Standard-Container und Standard-Algorithmen. Die lernt man und dann wenn bei einem Jobwechsel die Firma auch diese Standard-Programmierung verwendet, weiß man schnell wo man dran ist, anstatt erstmal deren Library zu lernen und alles zu vergessen, was man zuvor gelernt hat.
Einige der Denkweisen kommen aus der funktionalen Programmierung, die man sich hier auch in C++ reinholt. An der Stelle handelt es sich dann auch irgendwo um eine andere Denkweise.
C++ ist als Sprache entstanden, in der man viele Dinge ausdrücken kann. Das haben die Leute dann auch gemacht. Entsprechend hat jeder programmiert, was er für richtig hielt. Was bedeutet, dass sich jeder in den Code einlesen musste. Viele Probleme wiederholen sich jedoch.
Man braucht immer wieder Listen und Daten-Container und wenn die alle gleich funktionieren, kann man Algorithmen schreiben, die Probleme lösen, wenn man ihnen einen Container gibt.
Es hat sich gezeigt, dass es eine Sammlung von interessanten Algorithmen gibt, wie Beispielsweise accumulate, transform oder sort, die sich immer wieder praktisch zeigen, wenn man mit Containern arbeitet.
Modern C++ legt nun mehr Focus auf die Standard-Container und Standard-Algorithmen. Die lernt man und dann wenn bei einem Jobwechsel die Firma auch diese Standard-Programmierung verwendet, weiß man schnell wo man dran ist, anstatt erstmal deren Library zu lernen und alles zu vergessen, was man zuvor gelernt hat.
Einige der Denkweisen kommen aus der funktionalen Programmierung, die man sich hier auch in C++ reinholt. An der Stelle handelt es sich dann auch irgendwo um eine andere Denkweise.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: C++ modern und C++ früher
Ich habe weder von Stroustrup noch von Meyers jedes Buch gelesen, sondern immer wieder mal reingelesen. Wenn ich das halbwegs richtig einschätze, dann gibt es folgende Tentenzen,
Betonung der STL (wie von Xin oben gesagt)
Vermeidung von fehleranfälligen Konstrukten (Zeiger sind oft nicht nötig bzw können durch entsprechende Konstrukte wie Smart Pointer und Verwandte ersetzt werden)
Benutzung von auto type deduction
Benutzung der Boost-Libraries
Die Anlehnung/Verwandtschaft mit C gerät sicher mehr in den Hintergrund durch Templates/Metaprogrammierung/funktionale Programmierung ...
Betonung der STL (wie von Xin oben gesagt)
Vermeidung von fehleranfälligen Konstrukten (Zeiger sind oft nicht nötig bzw können durch entsprechende Konstrukte wie Smart Pointer und Verwandte ersetzt werden)
Benutzung von auto type deduction
Benutzung der Boost-Libraries
Die Anlehnung/Verwandtschaft mit C gerät sicher mehr in den Hintergrund durch Templates/Metaprogrammierung/funktionale Programmierung ...
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: C++ modern und C++ früher
Mit Boost wäre ich da vorsichtiger, Boost hat Vorteile und auch Nachteile... manches ist aber Kinderstube für zukünftige Standards.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.