Originally posted by JeanPaul145
View Post
Modern languages like C# and Java (though I suppose these two aren't too modern anymore) don't actually provide much static protection and while far simpler than C++, are still quite complicated (Java's type system for instance was originally thought to be safe). Additionally while dynamic checks for something like bounds will help security, it doesn't always help squash bugs (i.e. some backtraces are more useful than others). Static bounds checking on the other hand will help uncover bugs since the types act as a trail of evidence leading to the location where the bound became unsafe or we no longer have enough information about the value etc. The problem with backtraces is that I only get information about an error in some extremely specific program state but I might have no idea where the state came from in the first place.
Unrelated while I like C++ for some tasks, I hope that no one argues for it citing potential safety.
Leave a comment: