More Robust
All variables and members initialized
Contract programming
Unit testing
Automatic memory management
Array bounds checking
Little need for pointers
No preprocessor
Modular symbols automatically