&quot;[Other safe languages] require complex runtime support that doesn&#x27;t fit in certain contexts (e.g. kernels).&quot;<p>Complex runtimes are also unsuitable for libraries. If you write a great openssl replacement in Haskell, it&#x27;s only useful for Haskell applications. Because nobody wants to link the Haskell runtime into many of the applications that use openssl.<p>For widespread libraries, the choices are basically C, C++, and now (hopefully) rust.