> Why not put every chance on our side and use languages (e.g. Rust, Ada, ATS, etc.) that make entire classes of errors impossible?
I don't think intentionally preventing the programmer from doing certain things the computer is capable of doing on the theory it makes errors impossible makes sense.
As I've said several times in this thread, somebody has to deal with the pointers and raw memory because that's the way computers work. Using a language where the language runtime itself handles such things only serves to abstract away potential errors from the programmer, and prevents the programmer from doing things in more efficient ways when she wants to. It can also be less performant, since the runtime has to do things in more generic ways than the programmer would.
> Including people responsible for one of the most important security-related library in the world.
I think you've hit on a crucial part of the problem: practically every software company on Earth uses OpenSSL, but not many of them pay people to work on it.
calvinow@Mozart ~/git/openssl $ git log --format='%aE' | grep -Po "@.*" | sort -u -
@baggins.org
@benl-macbookpro3.local
@chromium.org
@cloudflare.com
@comodo.com
@cryptsoft.com
@esperi.org.uk
@fh-muenster.de
@fifthhorseman.net
@fsmat.at
@gmail.com
@google.com
@igalia.com
@infradead.org
@innominate.com
@leeds.pl
@linaro.org
@links.org
@neurodiverse.org
@openssl.org
@opensslfoundation.com
@pobox.com
@roeckx.be
@secondstryke.com
@torproject.org
@trevp.net
@v3.sk
@velox.ch
I was very surprised how short that list is. There are a lot of big names that make heavy use of this software that are not on that list.