- Object oriented programming
- Strong typing
- Generic programming/templates
- Exception handling
- Facilities for modular organization of code
- Standard libraries for I/O, string handling, numeric computing
- Systems programming
- Concurrent programming
- Real-time programming
- Helps for periodic and event driven tasks
- Avoids unbounded priority inversion
- Efficient implementation of Priority ceiling in ADA
- Distributed systems programming
- Interfaces to other languages (C, COBOL, Fortran)