In Python, "exceptions" is really a misnomer - they are a generic non-local return flow control tool, there's nothing exceptional about them - and the VM design reflects that.
The C++ standard doesn't even have a concept of a "binary" (or, for that matter, "dynamic linking").
The price for that is the major pain that using countless macros to implement your "classes" is in GObject, where the same thing in C++ is literally a single line of code.
Whether D is something that's "done correctly" is, shall we say, extremely arguable.
.net did not get it right - they basically said "there is 1 language, the CLR and it runs in its own little sandbox. We might add some crappy hooks to let others play with us, but they'll be terribly inefficient and difficult to use".
CIL is low-level enough that a fully conformant ANSI C compiler can be written to target it. It has raw pointers, structs, unions and stack allocated arrays. It also has some things that C does not (like guaranteed tailcalls). All of those are highly efficient. I honestly don't know what else you could possibly need to write a compiler for whatever language you are interested in.
I know you meant lots of languages can be run in
It sounds like you've only actually looked at C# and VB.NET, which are, indeed, largely the same thing with slightly different syntax.
But have you actually looked at IronPython? It's not "just syntactic sugar", it's a full fledged Python implementation that has every single language feature that regular Python 2.7 does (it doesn't have the entire standard library, but there's no reason why it couldn't).
Long story short, your argument is false because of the point above. CIL is flexible enough for any language to target it without the need to adapt it. You may need language extensions if you want to interop on object model level (i.e. classes and objects, rather than primitives and structs), but it's not a requirement.
You can add Java if you want - that'll be IKVM. It's JVM-bytecode-compatible, even (it dynamically translates it to IL).
P/Invoke is basically the typical C FFI that many other platforms possess, with all the same advantages and disadvantages.
IntPtr objects (these aren't pointers to integers, they're 32-bit pointers stored as an integer in an object, and can be any kind of pointer, including void*).
IntPtr, aka "native int" (in IL), as the name implies, is not 32-bit - it's architecture dependent, and matches the size of the native pointer, like intptr_t in C99.
The cross environment marshalling that's required (plus some pinning of data so the garbage collector becomes less efficient) means its there for convenience only. You wouldn't want to use it for heavy applications.
That isn't really true. Most of Microsoft's own "heavy applications" use it, heavily in fact. Both Office and Visual Studio use it a lot, especially the latter.
Yes, it's slower than
It does invalidate his point about "mass public revulsion". If the current experience with FB is anything to go by, you and him are a relatively small minority.
But not everyone wants to work at giant companies, some would rather work for a small team that does great work but doesn't burn itself out.
It should be noted that such can also be found at giant companies, if you look hard enough. The quality obviously depends on how well the manager can isolate the culture of such a team from the rest of the company, which in turn depends on having a really good manager... but from personal experience working on just such a team in Microsoft, they do exist. This is truly the best of two worlds, because you get the typical "big corp" compensation package, but there is much less bureaucracy and red tape and corporate culture bullshit than is typical of such jobs.
A lot of those companies have presence elsewhere, you know. Since you mention Seattle, Google has a campus in Kirkland, for example, and they seem to be constantly hiring new developers there (mostly snatching them from MS and Amazon, of course).
Or are those not used much on the inside?
If you want to see a colorful illustration of the above, find and watch a movie called "Lives of Others". It's a German film about Stasi surveillance in the late GDR period and its abuse by people in the system for blackmail etc.
Spike strips require the police to be able to predict where the runner is going to go, for the runner to not steer around them, and for the runner to not keep going despite a flat. They're also not exactly safe.