I don't think the choice of C for NNG (vs C++ for ZMQ) was because of safety.
One of the goal of NNG was less dependency and more portability towards embedded (I assume their goal is for NNG to replace MQTT for IoT). They have a presentation <https://staysail.github.io/nng_presentation/nng_presentation.html> for more details. Basically, my personal opinion is that ZMQ is the reliable old-one while NNG is the young & dynamic library with new features, async supports, and wider variety of network protocol and patterns. Both library actually define protocols - ZMTP for ZMQ, Scalability Protocol for NNG - that could be implemented in any language.
