It's also true that the failure of Java is that it cannot express a mis-initialized pointer.
A good programmer has to know both high-level and low-level stuff. And also has to be able to understand or, at least, to make a decent hypothesis on why GCC core-dumped.