| - Fine grained control over allocation whilst maintaining memory safety (stack, heap, RC, GC, or roll your own) - No null pointers (with an Option type that compiles down to a nullable pointer) - Data race free concurrency - Zero cost abstractions - RAII and destructors - No exceptions - A modern, highly expressive type system - Generics that throw type errors at the call site, not deep in a template expansion - True immutability (not `const`) - An excellent C FFI - Compiles to native code - You don't pay for what you don't use - Safe by default, but you can circumvent the safety checks if you know what you are doing, and those places are clearly marked and easy to audit. Inline assembly is supported. - Most safety is enforced statically, so you don't pay for it at run time. |
No exceptions is my only objection, but I know they're dubious for a systems language.