C (and to some extent shell) programmers are the ones with the most experience of the machine under them changing, perhaps drastically - few other languages have even been around long enough for that to have happened.
Java sidesteps this, of course, by defining a JVM to run on and leaving the underlying details to the implementation.
Java sidesteps this, of course, by defining a JVM to run on and leaving the underlying details to the implementation.