Verbreitung von C++11/C++14



  • Hallo Leute,

    ich suche für eine Studiumsarbeit eine Quelle für die Verbreitung von C++11, bzw. C++14. Also wieviele der C++-Entwickler die "neuen" Standards verwenden und beherrschen und wieviele noch mit C++03 oder C++98 arbeiten. Ich habe bereits gegooglet und diverse Datenbanken meiner Hochschule bemüht, aber leider noch nichts aussagekräftiges gefunden.

    Vielleicht kennt ja jemand von euch eine aktuelle, repräsentative Umfrage.

    Vielen Dank und viele Grüße
    Matze



  • Ich kenne mich da nicht aus, aber werden die neueren C+ Standards eigentlich schon von den meisten Compilern unterstuetzt? Wenn nicht, kannst Du eine Obergrenze fuer die Verbreitung dieser Standards durch die Verbreitung der Compiler kriegen. Dazu gibt es vielleicht eher Daten.



  • Ich kenne mich da nicht aus, aber werden die neueren C+ Standards eigentlich schon von den meisten Compilern unterstuetzt?

    Ja. GCC und Clang schon seit einiger Zeit (sowohl C++11 als auch -14). VC++ unterstützt noch kein expression SFINAE, sollte aber bald (endlich) kommen; C++14 ist auch dort schon in Angriff genommen worden. Sogar ICC unterstützt (IIRC) schon generic lambdas.

    PS: @mods: Das sollte wohl eher ins C++-Board.


  • Mod

    Arcoth schrieb:

    PS: @mods: Das sollte wohl eher ins C++-Board.

    Gelesen, aber ich überlasse die Entscheidung den RudP-Moderatoren, weil ich unentschlossen bin, ob das nicht eher in dieses Board gehört. Ist schließlich keine Frage zur Sprache, sondern über die Sprache.

    @Topic: Kaum vorstellbar, dass es repräsentative Umfragen dazu geben sollte. Denn wen interessiert das genug, dass er dafür Geld/Arbeit aufwenden würde? Das wäre etwas, was man mal im Rahmen einer Studienarbeit zu diesem Thema durchführen könnte... 😉



  • es ist auch ein wenig definitionssache. ob man etwas kennt kann jeder von sich sagen, aber eine bool entscheidung darueber, ob man den standard kennt? ich lerne immer noch details ueber das alte c++ wenn mal ein seltener compiler sich auf etwas verlaesst was die anderen compiler ganz anders sahen. (z.b. dass ein compiler kein aliasing zwischen unterschiedlichen datentypen annehmen muss).

    vielleicht wuerde es helfen durch zufaellige c++ github projekte zu gehen und die zu klassifizieren, bis du eine menge has die das ergebnis nicht mehr grossartig variiert.


  • Mod

    Arcoth schrieb:

    PS: @mods: Das sollte wohl eher ins C++-Board.

    Die spannende Frage hier ist: wie kommt man an einigermaßen zuverlässige (also "objektive") Daten.
    Im technischen Sinne wäre die Mathematik- & Physikecke treffender, es geht ja um Statistik und "Wissenschaft" bzw. Empirie.
    Aber die gesunden Truthahneigenschaften von RudP kommen bei dieser hier (für C++ Forum Schrödingerhafte Frage) voll zum Tragen) 😉
    ---------------------------------------------------------------------------------

    Also Daten:
    z.B. (auch, s.o.) https://www.youtube.com/results?search_query=c%2B%2B+11+tutorial
    und ich würde z.B. auch mal bei der Ct-Redaktion anrufen. Die machen öfter Umfragen solcher Art, eventuell ergeben sich weitere Hinweise.
    Was noch geht wäre Forenthemen abzusuchen oder die Anzahl wissenschaftlicher Publikationen mit/zu C++xy und eventuell gibt es Metauntersuchungen mit einer brauchbaren Übersicht.
    An der Uni selber könnte es das ein oder andere Buch geben, mit weiteren Hinweisen, oder fachspezifische Lexikoneinträge.
    Repräsentative Umfragen kann man auch selber machen, einfach ein paar Studenten schnappen und befragen, dann kann man sagen, "an der Uni" oder "bei Studentenumfragen" und wenn man das sagen kann, kann man auf das ganze Land interpolieren...;)
    (Analog zu vielen (fragwürdigen, aber viel zitierten) Untersuchungen könnte es reichen, seine Mitbewohner zu befragen, aber das müssen wir hier nicht vertiefen )


  • Mod

    rapso schrieb:

    vielleicht wuerde es helfen durch zufaellige c++ github projekte zu gehen und die zu klassifizieren, bis du eine menge has die das ergebnis nicht mehr grossartig variiert.

    Das habe ich übrigens bewusst nicht vorgeschlagen, weil es ungefähr so seriös klingt wie die Tiobe-Statistik.

    Repräsentative Umfragen kann man auch selber machen, einfach ein paar Studenten schnappen und befragen, dann kann man sagen, "an der Uni" oder "bei Studentenumfragen" und wenn man das sagen kann, kann man auf das ganze Land interpolieren...;)

    Das Problem dabei ist, dass die Umfrage ergeben wird, dass 0 von 100 zufällig befragten Studenten C++ sprechen. Man müsste also gezielt auf C++-Entwickler zugehen, womit man sich das Problem einfängt, dass man in dem Moment selber definiert, was "repräsentativ" heißt.

    Und selbst wenn man genügend Studenten befragt (sich eventuell auf Informatikstudenten beschränkt), um eine brauchbare Statistik zu erhalten, hat man das Problem der typischen Psychologiestudien: Alle deine Testsubjekte sind (Psychologie-/Informatik-)Studenten und somit sicher nicht repräsentativ!



  • Hallo zusammen,

    ertmal vielen Dank für eueren Input!

    SeppJ schrieb:

    Arcoth schrieb:

    PS: @mods: Das sollte wohl eher ins C++-Board.

    Gelesen, aber ich überlasse die Entscheidung den RudP-Moderatoren, weil ich unentschlossen bin, ob das nicht eher in dieses Board gehört. Ist schließlich keine Frage zur Sprache, sondern über die Sprache.

    Ich war auch am überlegen, wo ich das Thema am besten poste. Ich habe mich dann genau aus diesem Grund für RudP entschieden.

    SeppJ schrieb:

    @Topic: Kaum vorstellbar, dass es repräsentative Umfragen dazu geben sollte. Denn wen interessiert das genug, dass er dafür Geld/Arbeit aufwenden würde? Das wäre etwas, was man mal im Rahmen einer Studienarbeit zu diesem Thema durchführen könnte... 😉

    Das habe ich befürchtet. Allerdings ist es nur eine kleine Studienarbeit und sie handelt nicht von der Verbreitung von C++11. Diese Daten sind eher ein "nice-to-have". Eine eigene profesionelle, repräsentative Umfrage würde daher den Rahmen sprengen...

    nachtfeuer schrieb:

    und ich würde z.B. auch mal bei der Ct-Redaktion anrufen. Die machen öfter Umfragen solcher Art, eventuell ergeben sich weitere Hinweise.

    Das ist eine gute Idee. Werde ich machen, vielen Dank!

    nachtfeuer schrieb:

    Repräsentative Umfragen kann man auch selber machen, einfach ein paar Studenten schnappen und befragen, dann kann man sagen, "an der Uni" oder "bei Studentenumfragen" und wenn man das sagen kann, kann man auf das ganze Land interpolieren...;)

    Die neuen Standards sind (an meiner Hochschule) leider noch überhaupt nicht in der Lehre angekommen. Allerdings würde dieses Umfrageergebnis gut in meine Arbeit passen 😃

    rapso schrieb:

    es ist auch ein wenig definitionssache. ob man etwas kennt kann jeder von sich sagen, aber eine bool entscheidung darueber, ob man den standard kennt?

    Stimmt, bei so einer Frage werden wahrscheinlich keine objektiven Daten herauskommen...

    rapso schrieb:

    vielleicht wuerde es helfen durch zufaellige c++ github projekte zu gehen und die zu klassifizieren, bis du eine menge has die das ergebnis nicht mehr grossartig variiert.

    Das würde evt. funktionieren. Müsste ich mit dem Prof klären, ob ihm das reicht.
    Oder ich mache hier im Forum eine Umfrage. Aber dann bekomme ich wahrscheinlich als Ergebnis, dass 99,9% der C++-Entwickler mindestens C++11 verwenden 🤡

    Wenn ich tatsächlich keine Daten finde, muss ich nochmal überlegen, ob ich die Zielgruppe meiner Arbeit vielleicht auf Lehrende und Studierende meiner Hochschule beschränke. Dann wäre eine studienbereichsinterne Umfrage tatsächlich ausreichend und sinnvoll...

    Vielen Dank
    Matze

    PS: Ich bin weiterhin für Input offen und dankbar 🙂



  • MatzeHHC schrieb:

    Oder ich mache hier im Forum eine Umfrage. Aber dann bekomme ich wahrscheinlich als Ergebnis, dass 99,9% der C++-Entwickler mindestens C++11 verwenden 🤡

    Nicht alle die hier im Forum schreiben und an den neuen C++11/14 Features interessiert sind können diese auch nutzen. Da mir seit Jahren nicht die Zeit gegeben wird unsere Projekte auf eine neuere Visual Studio Version zu bringen hänge ich z.B. noch auf Visual Studio 2005 fest.



  • hustbaer schrieb:

    Da mir seit Jahren nicht die Zeit gegeben wird unsere Projekte auf eine neuere Visual Studio Version zu bringen hänge ich z.B. noch auf Visual Studio 2005 fest.

    Du armer. 😞 Hoffentlich befördern sie dich bald, das kann ja so wohl nicht weitergehen!



  • [OT]
    Ich will eigentlich gar nicht befördert werden, Projektmanagement ist nicht so meins. Speziell nicht in meiner Firma (Chefetage ist etwas ... eigen. Damit muss man umgehen können. Kann ich nicht *g*).
    Ich will bloss ordentlich arbeiten "dürfen".
    Und etwas mehr $$$ wäre natürlich nicht verkehrt.
    [/OT]



  • hustbaer schrieb:

    [OT]
    Ich will bloss ordentlich arbeiten "dürfen".
    Und etwas mehr $$$ wäre natürlich nicht verkehrt.
    [/OT]

    [OT]Aber Job wechseln ist nix? Noch auszuhalten?[/OT]



  • Da mir seit Jahren nicht die Zeit gegeben wird unsere Projekte auf eine neuere Visual Studio Version zu bringen hänge ich z.B. noch auf Visual Studio 2005 fest.

    Naja, das ist bei weitem nicht so gruselig, wie die Erkenntnis, dass VC6 noch im Einsatz ist. Z.B. bei 7-zip, wie sich herausgestellt hat. Da ist dann ja nichtmal C++03 drin...



  • SeppJ schrieb:

    rapso schrieb:

    vielleicht wuerde es helfen durch zufaellige c++ github projekte zu gehen und die zu klassifizieren, bis du eine menge has die das ergebnis nicht mehr grossartig variiert.

    Das habe ich übrigens bewusst nicht vorgeschlagen, weil es ungefähr so seriös klingt wie die Tiobe-Statistik./quote]

    ich sah bisher keinen besseren vorschlag, deswegen hatte ich das bewust vorgeschlagen.



  • Mr X schrieb:

    Da mir seit Jahren nicht die Zeit gegeben wird unsere Projekte auf eine neuere Visual Studio Version zu bringen hänge ich z.B. noch auf Visual Studio 2005 fest.

    Naja, das ist bei weitem nicht so gruselig, wie die Erkenntnis, dass VC6 noch im Einsatz ist. Z.B. bei 7-zip, wie sich herausgestellt hat. Da ist dann ja nichtmal C++03 drin...

    VC6 hatten wir noch bis vor ~3 Jahren im Einsatz.
    Geändert hat sich das nicht durch einen Umstieg, sondern dadurch dass das Produkt eingestellt wurde.



  • hustbaer schrieb:

    ... dass VC6 noch im Einsatz ist. Z.B. bei 7-zip, wie sich herausgestellt hat. Da ist dann ja nichtmal C++03 drin...

    VC6 hatten wir noch bis vor ~3 Jahren im Einsatz....

    😮 😮 😮

    war da nicht sogar noch der for-schleifen bug dass die loop-variablen ausserhalb der loop-scopes sichtbar waren bzw kollidierten? 😕



  • rapso schrieb:

    hustbaer schrieb:

    ... dass VC6 noch im Einsatz ist. Z.B. bei 7-zip, wie sich herausgestellt hat. Da ist dann ja nichtmal C++03 drin...

    VC6 hatten wir noch bis vor ~3 Jahren im Einsatz....

    😮 😮 😮

    war da nicht sogar noch der for-schleifen bug dass die loop-variablen ausserhalb der loop-scopes sichtbar waren bzw kollidierten? 😕

    Korrekt.
    Wir hatten da einige Konstrukte ala

    {for (...)
    {
        // body
    }}
    

    in Code von dem es einen vc6 und einen vc8 Build gab.

    Hacks wie
    #define for if (false) {} else for
    haben wir uns immer verkniffen. Obwohl ich diese Lösung eigentlich ziemlich geil finde 🙂

    Irgendwie was das schon lästig, aber in Wirklichkeit kein grosses Ding.
    Viel schlimmer waren die ganzen Bugs in der Template-Implementierung.



  • hustbaer schrieb:

    Hacks wie
    #define for if (false) {} else for
    haben wir uns immer verkniffen. Obwohl ich diese Lösung eigentlich ziemlich geil finde 🙂

    Sie ist clever, führt aber auch undefiniertes Verhalten herbei ([macro.names]/2). Darauf wird mit VC6 sicherlich noch geschissen, kann aber doch zu Schwierigkeiten bei der Überführung auf andere Versionen führen?



  • Naja, sowas packt man, wenn man es schon verwendet, natürlich in ein

    #if defined(_MSC_VER) && _MSC_VER <= 1200
    #define for if (false) {} else for
    #endif
    

    Damit umgeht man einen Compiler-Bug indem man nicht-garantiertes (aber AFAIK auch nicht verbotenes) non-Standard Verhalten des selben Compilers ausnutzt. Nämlich dass es halt mit MSVC <= 6.0 nicht zu UB führt. Bzw. wenn man will kann man auch sagen dass das "U" im "UB" von MSVC hier halt immer zufällig das ist was der Standard ohne "U" vorschreiben würde. Und nachdem "U" eben alles sein kann/darf, ist es mMn. auch OK wenn ein bestimmter Compiler bestimmte "UBs" klar definiert. 🤡

    Wobei mir bei UB gerade wieder der wunderschöne Term "catch fire semantics" einfällt. Tut nix zur Sache, wollte es nur erwähnen weil ich den Ausdruck so cool finde 🙂



  • Achja...

    Mr X schrieb:

    VC6 (...) Da ist dann ja nichtmal C++03 drin...

    Da ist nichtmal C++98 drin 😉


Log in to reply