Re: @DrXym (was: So you can write drivers in Java now?)
"(good) C-coded drivers are hand-massaged after the compiler spits out the assembler code, before anything even resembling linking."
There are plenty dos and don'ts for kernel development but it doesn't mean C is not a suitable for development since it clearly, demonstrably is a suitable language for development. Especially in kernels that supports multiple architectures and where it would be desirable for a driver be portable regardless of the CPU being MIPS, ARM, x86 or whatever.
"Yes, modern C compilers are pretty good ... but they rarely do what I want the hardware to do at the driver level."
Like what? Most drivers do little more than marshal data to and from memory locations or messages from a bus. There really isn't much scope for improving the code since it's so straightforward anyway. And the more complex a driver is the more reason to use a higher level language. Linux has drivers for even complex hardware like GPUs which are written in C.
"Note that I said "sane". OSX & Windows need not apply."
So what OS are you thinking of? Clearly it's not Linux. Or BSD. Or OSX. Or Windows. Which kernel benefits from writing drivers in pure assembly? Which OS is so down to the metal that raw performance is paramount, even over code maintainability, or portability, or system stability. Perhaps you're writing code for some embedded system in which case, perhaps your point is valid in that scenario. I don't see it being valid for anything bigger.