Why is C++ a mid-level language? It can almost do everything and the worlds most widely used operating system is written in it.
[Note: SO C++ Info page quotes Wikipedia citing C++ The Complete Reference Third Edition, by Herbert Schildt,
It is regarded as a “middle-level” language, as it comprises a combination of both high-level and low-level language features.
— Potatoswatter]
“mid language” is not English, so one has to guess at what you mean. If you mean, “a language of intermediate level of abstraction”, that’s a fair assessment, although you are correct that, compared with most other language, it stretches to cover an uncomfortably wide range of abstraction levels.
Languages that provide (first and foremost) automatic, intrinsic garbage collection, are clearly working at a higher level of abstraction — probably too far from the machine to be fully usable for the lowest-level parts of kernels, device drivers, &c, but far more convenient and free from memory-management bugs than languages that offer no such facility (or offer it only through “allegedly smart” pointers which typically do extremely rudimentary GC — often as rudimentary as reference counting (!), worlds away from modern GC architectures). Almost all wide-spread languages deployed after C++ have included garbage collection as part of their intrinsic characteristics.
At the other end of the spectrum, machine-specific assembly languages are clearly working at a lower level of abstraction than C++ (and indeed it’s common for C++ compilers to provide, as non-standard extensions, the ability to embed assembly language in order to empower advanced programmers to make use of its facilities where warranted).
As for “the most wide world user opareting (?) system”, it’s becoming a hard question to decide — more and more gadgets of all kinds, for example, are based on a Linux core, from phones (think Android) to TVs &c (I found it fun a few months ago, on unpacking and installing my newly purchased flat-screen TV, Blu-Ray DVD player, and DVR, to find out that each of them came with a DVD holding some of the sources to its software… they had to, you see, since that software is based on Linux, of course!-).
At least in the case of Linux, it’s easy to check that the language at its core is not C++, but C (which is really a very different language, of course — for example, it doesn’t even offer the “smart-ish pointers” on whose basis some would argue that C++ does have GC;-). Just try confusing C and C++ in proximity to Pike or Thompson… and if you do be ready to duck fast, just in case they can grab something heavy to throw at you!-) ((I suspect other of their ex-colleagues at Bell Labs, like Ritchie, might react similarly, but I don’t know that first-hand, as I do with those who are my colleagues today;-)).
Similarly for the OSs powering Apple’s extremely popular products (Macs, iPhones, iPads, …): Objective C for application programming, but C itself for the kernel &c, that is, at the very core (while Apple’s OSs, per se, are not open-source, the traces of BSD and Mach in them are still quite clear and visible). I believe most other phones (Blackberries, Nokia’s stuff both Symbian and Maemo, Windows Mobile’s current offerings) also rely on C at the core, not C++ (this can easily be checked for the open-source ones, not so easily for the closed-source ones, but, again, the hints all point that way).
If you’re thinking of Windows, I’m pretty sure (until the time of Win 2000 included at least, based on recruiting attempts Microsoft directed at me in that timeframe) the kernel was also based on C, not C++ (I don’t know if it was entirely rewritten for XP, Vista, Windows 7 — it would be astonishing, but, of course, that doesn’t make it impossible;-).
Overall, it seems to me the dominating language for the cores of all widespread OS’s is most likely to be C, not C++. No intrinsic reason at least a reasonable subset of C++ could not be used instead (I can program in C as well as in C++, but boy do I miss templates when I do!-), but there just doesn’t seem to be enough “effective demand” to make it happen!-)