explicit error handling
minimal runtime
no exceptions
no null pointers by default
compile-time evaluation
direct access to hardware
portable build system
manual memory management
cross-compilation
generics
error handling
C interoperability
compile-time code execution
no garbage collector
no hidden control flow
no hidden memory allocations
compile-time reflection