Pros:
- Riesiger Funktionsumfang, alles möglich von kleinen hardware-drivern mit wenigen
Zeilen bis komplexen S/W Projekten mit vielen Millionen Zeilen.
- Direktes Ansprechen der Hardware mit Pointern
- Volle Funktionalität für Object-Oriented und Generic Programming (Templates)
- Gute Performance
- Vielzahl von Tools und Hilfslibraries erhältlich
Cons: Zu viel Features, zu viele Freiheiten
- Code oft unleserlich und chaotisch
- Schwer zu pflegen
- Steile und lange Lernkurve für vollen Überblick
Grundlagen
- Datentypen und Operationen
- Control-Structures
- Arrays, Pointer und Referenzen
- Funktionen
siehe 1. Kurs:
http://www.etp.physik.uni-muenchen.de/kurs/Computing/ckurs
Kurze Wiederholung zu
Klassen, Funktionen, Objekte
C++ für Physiker ???
Kontroverse Diskussion ob C++ geeignete Sprache für Physiker ist:
C++ sehr komplex ... Pointer/Referenzen, Memory Management, Templates, Vererbung, virtuelle Funktionen,
Konstruktoren/Destruktor, const correctness, u.v.m.
- In kleinen, überschaubaren Projekten ok, man kann sich auf's wesentliche beschränken und nicht viel Schaden anrichten
- andererseits ist Programmieren in C++ vglw. umständlich und ineffizient (cf Python, Java, Julia, ...)
- In grossen, komplexen Projekten heikel. Detaillierte Kenntnisse,
professionelle Erfahrung und Schulung nötig.
Allerdings ... man hat meistens gar nicht die Wahl sondern
steigt in existierendes Projekt ein mit vorgegebener Software/Programmierumgebung.
Popularität der Programmiersprachen
(Quelle: http://pypl.github.io/PYPL.html)
Klarer Trend - Python auf dem Vormarsch, C++ eher abnehmend :
Data Science und Machine Learning
GDuckeck
2019-08-01