All these points mentioned in the post are also applied to C except latest language standard revision. Also, C have C11.
Why I am pointing out C? Because I am still not fan of C++ syntax.
I think it is a stretch to say C is in active development. It is at best in maintenance mode.
C++ is in active development.
It looks like C is on track to possibly get a new published standard around 2021/2022. It also seems to me that C has always been a significantly simpler language than C++. Where C++ is getting everything and the kitchen sink, making an already complex language even more complex, C has less to change and therefore changes less frequently.
One barrier here is that Microsoft has seemingly decided to stop working on C compatibility with MSVC; it doesn’t even fully support C99 yet, let alone C11. A new standard doesn’t matter much if one of the largest platforms in the world won’t support it.
A new standard doesn’t matter much if one of the largest platforms in the world won’t support it.
These days I would not be much surprised if Microsoft would replace MSVC with clang or even GCC.
Why? My impression is that the MSVC compiler is quite good. I only use the linker daily, not the compiler itself, but especially recently, I’ve only heard good things. Very different than ten or even five years ago.
Why?
A project manager making their numbers look better on the compiler side by using less programmers and moving at higher velocity. The reason: clang or GCC are doing most of that work now with MSVC a front end for them.
I’m sorry, I’m finding this reply really hard to parse.
Are you saying, people will move compilers because they want to use the new standard, which brings benefits?
And what’s this about MSVC being a front-end for Clang?
You asked why Microsoft would ditch their proprietary compiler that they pay to maintain in favor of a possibly-better one others maintain and improve. I offered cost cutting or possibly-better aspects as reasons that a Microsoft manager might cite for a move. Business reasons for doing something should always be considered if wondering what business people might do.
Far as front end part, that was just speculation about how they might keep some MSVC properties if they swapped it out for a different compiler. I’ve been off MSVC for a long time but I’d imagine there’s features in there their code might rely on which GCC or Clang might not have. If so, they can front end that stuff into whatever other compiler can handle. If not and purely portable code, then they don’t need a front end at all.
In the old days, you could get in trouble (fines, etc) for claiming to be an engineer without a Professional Engineering license.
I believe this is the case for Canada and some (many? most?) other countries. My previous employer acquired a couple Canadian companies which triggered a much larger, company-wide, discussion regarding “engineering” job titles (e.g., software engineer, sales engineer, …) I want to say that Texas and a couple of other states are similar in that they require licensure to use the title. I think Microsoft changed some of their certification titles for a similar reason.
The U.S. doesn’t generally have any restrictions on using engineer in a title, even in states/fields where there’s a PE exam. Texas now has a software engineering PE exam, but it’s still not an actual requirement for calling yourself a “software engineer”. This is similar to other fields of engineering, where there’ve been chemical engineering and petroleum engineering PE exams in Texas for decades, but the vast majority of people working in the petrochemicals industry in Texas holding jobs with those titles aren’t PEs. It’s generally only required for people with direct signature authority over things that are specifically required by statute to be approved by a PE, like signing off on final blueprints.
I’m curious what book people would recommend for someone to pickup C++. I already can program, but I’ve avoided C++ because of the reputation and also the syntax, but its something I’d really like to get at least comfortable in.
A Tour of C++ isn’t bad, particularly if you’re already familiar with C. After that it’s mostly practice – write a ray-tracer or some such.
The second edition comes out in a month.
I think it’s more than practice. There’s no way I was going to learn all the wrinkles in C++ without reading Scott Meyers’ Effective C++ series.
Sure, something like Effective Modern C++ is a fine choice after becoming competent at C++. That’s advanced material though, more for the kind of people who set coding guidelines for teams.
IME, without a detailed understanding of C++ ownership semantics you are going to hit some utterly impenetrable bugs pretty quickly.
thanks for posting this, I’ll definitely check out the book, especially if a new edition is right around the corner.
I like C++ Primer. It’s a whole lotta book, but it’s a whole lotta language and the book does an excellent job running you through a relatively recent version of the language. I’m currently working through Introduction to Design Patterns in C++ with QT. It’s a little dated but I’ve heard good things. Accelerated C++ is another I’ve picked up recently that seems to be well regarded. I’ve worked a bit with older C++98 style code in the past, but things have changed a bit with the advent of C++11 and especially later…
thanks for taking the time to reply. One of the reasons I’ve avoided the language so far is just the massive size of it in comparison to my other languages.