At my school, the first two semesters of programming instruction are in C. Thereafter, the emphasis seems to shift to C++ (and some Java). This approach seems to work well; what we learned of C serves as excellent preparation for learning C++. In fact, until yesterday I was under the impression that C++ is precisely a superset of C, and that anything written in C would be compatible with a C++ compiler. In fact, it seemed that C was basically a set of "training wheels" to ease us gently into C++.
I was surprised to find out, through Mr.C's thread about C99, the David Tribble link that Salem posted there, and other material that I found through google, that the recent evolution of C is making it less compatible with C++.
And so, I'm wondering why -- what purposes are served by introducing changes in C that are incompatible with C++ (or, why it was not considered appropriate to make the same changes to the C++ standard)?
Also, since this makes it apparent that there must be categories of users or categories of applications which are providing the impetus for this divergence, I'm wondering who and/or what they are? Who uses C specifically (as opposed to using a subset of C++), and why?