Typing systems and language choices are really small potatoes in this field. There are much more scary problems to solve to make software work right.
When you can side channel attack any CPU with a branch predictor and bits get flipped regularly by cosmic rays at high altitude then you need to rethink what software engineering really means. The big problems are rarely actually about the software or proving some algorithm is correct.