> After most compilers started properly supporting the newer C++ standards, it seems there has been an increase in the amount of love that C++ libraries are getting.
Sadly there are many more compilers out there than just gcc, clang, icc and msvc++.
Many of those aren't still C++11 compliant, specially in mainframes, classical commercial UNIXes, embedded real time OS and certified compilers.
But it is true, thanks to the productivity of latest standards, there has been an increase in C++ visibility, specially thanks to Microsoft.
People like to bash their C++'s compliance, but they are the commercial vendor with the more up to date support, even than icc last time I checked.
Also they were the main sponsors for Back to native conferences and eventually making it together with CppCon.
Also Windows Phone is the only mobile OS where C++ is a first class language.
>. A lot of people like the to say that [x] is superior to C or C++ - often ignoring that their favorite language's libraries/runtime/compilers/vm is most likely implemented in the very same languages they are putting down.
A lot of people like to point out that fact, ignoring that many compiler writers tend to use C or C++ out of convenience for existing tools instead of bootraping the full eco-system around a new programming language.
Many use the same route as Go, using one of those languages and when the toolchain gets mature, those parts get re-writen.
All in all, I do like the language, now if we could get rid of those C underpinnings...
Intel's C++11 support continues to be quite buggy. I'm still running into with issues with Intel's support for auto type deduction and for uniform initialization in non-obscure use scenarios.
Man the times have changed. I remember when they made native code verboten in the Windows Mobile -> Windows Phone transition. Killed off a whole product line I was working on at the time.
"Also Windows Phone is the only mobile OS where C++ is a first class language."
Umm... I don't know how you define "first class language" but our SDK (networking stack) compiles C++ code right in the same XCode project with ObjC code without any sort of translation layers etc (a la JNI in Java) between the two.
iOS doesn't expose the majority of its APIs as a C++ APIs, they are either plain C, or Objective-C.
The SDK you mention is a code example, that is the only support iOS offers for C++, meaning infrastructure code with little interaction to the whole iOS stack.
If I am not mistaken (no iOS dev), besides the IO Kit and Metal shaders, there isn't much more in terms of C++ APIs in iOS.
You have to wrap calls to Objective-C via Objective-C++, for a full stack app. With Swift slowly taking the place of Objective-C, this will be even harder.
Whereas WP offers the so called projections as C++/CX (similar to using Objective-C++ in concept), C++ with the WRL template library, or plain modern C++.
All of those projections offer 100% of WP APIs as C++ APIs.
Although actually the majority of WP developers just makes use of C# alongside C++.
Although I agree with most of the comments you said, I have to strongly disagree with "First class C++ support of Windows Mobile" when compared to iOS (or even Android). I have an entire non trial stack of C/C++ libraries that I use which I easily bring to Android and iOS using a cross-compiling build system we wrote (https://github.com/amigocloud/amigomake). The C/C++ dependencies include :
Freetype v. 2.4.10,
OpenSSL v. 1.0.1m,
Bzip v. 1.0.6,
libidn v. 1.24,
GEOS v. 3.4.2,
CURL v. 7.39.0,
Proj4 v. 4.8.0,
SQLite v. 3080700,
Jpeg v. 8d,
PNG v. 1.2.50,
Minizip v. 11.
uuid,
libwebsockets,
rapidjson,
Spatialite,
Coffeecatch,
tinydir,
Freetype-GL,
libtess2,
RTree,
Spline,
SHA,
lodePNG.
Getting this libraries to work on *nix platforms (e.g. Android or iOS) is easy. Getting them to work on Windows Mobile is a nightmare - starting with the fact that they don't even support things like OpenGL...
Those C and C++ dependencies are using OS specific APIs.
The developers not caring about writing portable code doesn't make it less first class on Windows Phone.
I don't see any chapter on ANSI C or ANSI C++ standards about OpenGL.
When I learned C and C++, targeting UNIX only didn't meant much, because POSIX wasn't the same thing across all UNIX systems and Windows wasn't the only non-POSIX OS.
So we learned to abstract the OS APIs properly.
Nowadays it seems we are reaching a UNIX mono-culture.
I have been developing code for 20 years using C/C++ - it sounds like you have been doing this even longer.
I think it is completely unfair that you simply dismiss and blame the libraries "because the developers did not care and wrote it without portability in mind".
I am not sure what your own personal definition of "first class citizen" is, but as such, IMHO it doesnt even make sense to argue it.
All I can tell you is that I can take all these projects and create a Windows 7 build that works - so the work to make it "portable" is there (even with all the nonsense of making sure they are compiled against the exact multithreaded vc runtime version and other windows quirks). MS has specifically chosen to not support other subsystems (e.g. OpenGL) that make portability easy/realistically feasible. To me, having a "hello world" work doesnt make a platform a "first class" system - bringing complex well known libraries and make them work does. That makes a first class citizen. I know we disagree - so we'll just have to agree to disagree :)
Many of those aren't still C++11 compliant, specially in mainframes, classical commercial UNIXes, embedded real time OS and certified compilers.
But it is true, thanks to the productivity of latest standards, there has been an increase in C++ visibility, specially thanks to Microsoft.
People like to bash their C++'s compliance, but they are the commercial vendor with the more up to date support, even than icc last time I checked.
Also they were the main sponsors for Back to native conferences and eventually making it together with CppCon.
https://blogs.msdn.microsoft.com/vcblog/2014/04/03/cppcon-th...
Also Windows Phone is the only mobile OS where C++ is a first class language.
>. A lot of people like the to say that [x] is superior to C or C++ - often ignoring that their favorite language's libraries/runtime/compilers/vm is most likely implemented in the very same languages they are putting down.
A lot of people like to point out that fact, ignoring that many compiler writers tend to use C or C++ out of convenience for existing tools instead of bootraping the full eco-system around a new programming language.
Many use the same route as Go, using one of those languages and when the toolchain gets mature, those parts get re-writen.
All in all, I do like the language, now if we could get rid of those C underpinnings...