std::vector VS cArray
-
TyRoXx schrieb:
Unterm Strich: Microsoft ist vielleicht nicht zu blöd, aber zu faul, C++11 zu implementieren. Sieht man ja an VS11, das kaum mehr bringt.
Das liegt einfach daran, dass C++11 bei MS wirtschaftlich und politisch zeimlich weit unter angesiedelt ist. Die wollen ihr C# verkaufen.
-
So, jetzt nehmen wir alle bitte mal die ideologischen Brillen ab.
Es ist schon so, dass gcc bei der Umsetzung von C++11 die Nase vorn hat - die haben früher damit angefangen, und einige Neuerungen (nennenswert: variadische Templates) kommen sogar von da. Man hat das damit erkauft, dass die Funktionsweise des C++0x-Modus für einen Compiler extrem stark fluktuierte: Es gibt viele Möglichkeiten, Code zu schreiben, den gcc 4.3 anstandslos frisst, den gcc 4.7 aber ablehnen muss. Wenn man früh damit angefangen hat, gccs C++0x-Modus zu benutzen, hat man sich viel Frustration eingehandelt, aber dann hat man ja wohl auch gewusst, worauf man sich einließ.
Microsofts Ansatz an dieser Stelle war ganz anders, und musste auch anders sein. Wenn man Kunden hat, denen man Compiler für richtig Kohle verkauft, hat man immer Schwierigkeiten, zu erklären, dass neuere Versionen Code ablehnen, den ältere gefressen haben - man hatte etwas derartiges ja schon mal mit MSVC 6 erlebt. Insofern ist die Entscheidung, relativ spät damit anzufangen, durchaus nachvollziehbar. Es sollte mich nicht wundern, wenn es sogar Stimmen gegeben hätte, die auf die Finalisierung des Standards warten wollten - aber darüber kann ich nun wirklich nur spekulieren.
Dass C++ bei Microsoft ein Waisendasein führt, kann ich jedenfalls nicht nachvollziehen - Lambdas sind schon ein ziemlich großer Wurf, und in VC11 kommt eine Menge Concurrency-Kram dazu, der auch nicht ganz simpel ist (und von gcc bislang nicht unterstützt wird, was ein Grund dafür sein mag, dass VC11 ihn haben wird). Zudem erfand man neue Adaptersprachen zu .net und COM, die mit einigem Aufwand gewartet werden müssen; solche Investitionen macht man nicht, wenn man C++ für überholt hält. Vielleicht hat man mal gehofft, alles auf .net umstellen zu können, aber wenn man sich diese Illusion wirklich gemacht hat, spricht einiges dafür, dass sie zwischenzeitlich verworfen wurde.
All das hindert mich nicht daran, die Abwesenheit insbesondere variadischer Templates in VC11 zu lamentieren und wohl noch ein oder zwei Compilerversionen zu überspringen (abhängig davon, wie schnell das jetzt alles geht), aber die Nase zu rümpfen und zu sagen: "Tja, Microsoft, was haste denn erwartet?" scheint mir keine angemessene Reaktion zu sein.