Hat sich die C++ Programmierweise in den letzen Jahren geändert?



  • Hat man vor 5 bis 10 Jahren auch schon so viel mit const ref übergeben oder ist das erst in den letzten paar Jahren so? Mir kommts so vor, als wurde früher mehr einfach nur mit Pointern übergeben. Oder ist es mir nur nicht aufgefallen, dass es auch schon soviele const ref gab? Wie sieht es mit sonst mit const correctness aus? Wurde früher da auch schon drauf geachtet?



  • Damals konnten halt die wenigsten Progger C++. Meistens wohl eher C/C++, wobei das C dominierend war. Man muß ja sogar heute noch im Forum Neulingen erklären, das sie C/C++ vermeiden sollen. Und C/C++-Bücher gibts ja immer noch... leider.

    Und deshalb wird es wohl so sein, das tatsächlich heute mehr const refs u.ä. genutzt wird.



  • const ref - Parameter und const-correctness wurde eigentlich auch schon vor Zehn Jahren in C++ - Buechern gelehrt. Was sich eher geaendert hat, ist, dass heutzutage mehr mit Metaprogrammierung (Templates & Co.) gemacht wird als frueher.



  • Historiker schrieb:

    Hat man vor 5 bis 10 Jahren auch schon so viel mit const ref übergeben oder ist das erst in den letzten paar Jahren so?

    Kommt darauf an wie lernwillig die Entwickler waren und wie stark sie an alten Strukturen (ich meine jetzt nicht im C++ Sinne ;p) und Plattformen festgehalten haben. Es passiert noch heute das eine Firma einerseits sauberen und wartbaren Code fordert, anderseits aber Altcode der marode und Fehlerträchtig ist aber für bestimmte Weiterentwicklungen verwendet werden soll.

    Wenn ihr den Begriff "historisch gewachsene Anwendung" hört, solltet ihr dabei besonders hellhörig werden.

    Historiker schrieb:

    Mir kommts so vor, als wurde früher mehr einfach nur mit Pointern übergeben.

    Mich stört noch nicht mal zwangsweise ein Pointer. Was ich aber absolut hasse ist, wenn dann noch Doppelpointer (oder noch extremere Konstruktionen) hinzukommen. Referenzen sind in der Anwendung einfach schöner, und wenn Pointer greife ich in der Regel lieber zum Smartpointer.

    Historiker schrieb:

    Oder ist es mir nur nicht aufgefallen, dass es auch schon soviele const ref gab? Wie sieht es mit sonst mit const correctness aus? Wurde früher da auch schon drauf geachtet?

    Ja, wobei es wie gesagt auch sehr stark daran liegt wie sehr man an alten festhält. Bei einer Firma mit viel "frischen Blut" wirst du ggf. schon recht früh einen Umstieg haben, bei einer Firma in der ältere Entwickler das sagen haben könntest du in 20 Jahren noch "C mit Klassen" erleben.

    cu André



  • asc schrieb:

    Wenn ihr den Begriff "historisch gewachsene Anwendung" hört, solltet ihr dabei besonders hellhörig werden.

    hehe, "historisch gewachsen" lässt sich auch übersetzen als "an dem code haben 10 jahre lang 20 unterschiedliche entwickler rumgefrickelt, 50 kundenwünsch umgesetzt, 100 hacks eingebaut, 500 bugfixes betrieben und wenn wir den neu entwickeln wollten, müssten wir mindestens 100 manntage investieren"



  • thordk_ schrieb:

    hehe, "historisch gewachsen" lässt sich auch übersetzen als "an dem code haben 10 jahre lang 20 unterschiedliche entwickler rumgefrickelt, 50 kundenwünsch umgesetzt, 100 hacks eingebaut, 500 bugfixes betrieben und wenn wir den neu entwickeln wollten, müssten wir mindestens 100 manntage investieren"

    100 MT? Würd ich sofort machen. Manchmal ist es aber auch leicht das 100fache ...



  • thordk_ schrieb:

    asc schrieb:

    Wenn ihr den Begriff "historisch gewachsene Anwendung" hört, solltet ihr dabei besonders hellhörig werden.

    hehe, "historisch gewachsen" lässt sich auch übersetzen als "an dem code haben 10 jahre lang 20 unterschiedliche entwickler rumgefrickelt, 50 kundenwünsch umgesetzt, 100 hacks eingebaut, 500 bugfixes betrieben und wenn wir den neu entwickeln wollten, müssten wir mindestens 100 manntage investieren"

    Nur 100 Manntage, du bist gut. Ja mir schwebt eine konkrete Anwendung im Hinterkopf herum... Klassische 2 Schicht Architektur (Spricht: Datenbank + Rest) ohne Konzepte, Dokumentation oder irgenwie anders sinnvoll auffindbare Informationen, mit einer größe von XX Millionen Codezeilen unter einer RAD Umgebung die noch auf einer Plattform vor dem C++98 Standard entwickelt wird. Bugfixes wurden häufig mit Flicken gelöst (um das Problem gebaut)... Und weniger als eine Handvoll Entwickler sollen eine Anwendung pflegen und ständig weiterentwickeln wo andere Firmen mindestens 10-20 Entwickler daran setzen würden.

    cu André



  • asc schrieb:

    Wenn ihr den Begriff "historisch gewachsene Anwendung" hört, solltet ihr dabei besonders hellhörig werden.

    'written from scratch' hört sich aber auch gefährlich an.
    🙂


Anmelden zum Antworten