> I'm also surprised C is still so commonly used for mission critical software.
If you're surprised at that then you probably have not seen much of the embedded world where (gasp!) assembler is still in use and C is considered a 'high level' language.
It's not that far from the truth. C was designed to be very close to the machine and allows mixing in of inline assembly.
This latter feature is almost unthinkable in what most people would call high level languages today (Java, C#, Swift, etc).
For better or worse, Java is increasingly being used in embedded scenarios. Blu-ray players are a prime example, but televisions, settop boxes of various kinds also use Java these days.
If you're surprised at that then you probably have not seen much of the embedded world where (gasp!) assembler is still in use and C is considered a 'high level' language.