On Apr 27, 2016, at 6:14 PM, Toby Thain <toby at
telegraphics.com.au> wrote:
Modern languages can indeed wipe out large classes of bugs (including many of those that
lead to vulnerabilities). But *every* advance in abstraction does.
I like Professor Benjamin Pierce's way of putting it: "Mechanical checks of
simple properties enormously improve software quality."
This has been called for, with little traction, for a very long time; one of my favourite
calls is by Professor Per Brinch Hansen, recipient of IEEE Computer Pioneer Medal, in
1972:
"I expect to see many protection rules in future operating systems...enforced
by...type checking at compile time."
-- he assuredly did not have C in mind.
Probably not Ada either, but among languages that are in current use that one is probably
the best by this measure.
BTW, it's not so much "modern" as "well designed". How to design
languages that facilitate correct programs was well understood by around 1970. There have
been some additions since then, but a lot of the right answers can be found in ALGOL (and
a lot of wrong answers can be found in the work of those who ignored ALGOL).
paul