The problem with low level languages, isn't anything technical about the languages.
It is about a common attitude among programmers.
As a kid, We learn things by taking steps up.
We Walk/Run, Then we Ride a Bike, then we Can Drive a Car. It is a simplistic way of viewing things. One is better then the other, and you need to be better to use the better method.
The same idea goes with programming languages. (I'll Show my age hear)
You code in Basic, then you go to Pascal, then you can do C finally you will be able to code assembly. It is common for the C developers who start doing C to think oh I am programming in C now, I am an experienced coder, and I will laugh and snark at all you Basic Programmers now. So many of the C applications will have a lot of issues due to these ego's of the time, and people really using the C Language as the wrong tool for the job. It is like using a Car to go a few blocks where your bike or walking would be easier and faster.
So their are ton of legacy apps in C which are not secure because the Managers of software companies thought the same way, and wanted to code it in the Best Language. Even if such an app would probably work and perform much better in Visual Basic.