C3 is a systems language based on C. It is an evolution of C, improving on what C can't easily change for legacy reasons while retaining its syntax and feel as far as possible.
Some changes from C:
- Module system
- Integrated build system
- Generics
- Semantic Macros
- Error handling
- Defer
- Value methods
- Associated enum data
- Subtypes
- Optional contracts
- Subarrays (slices)
- [] overloading to create container types
- Foreach
- "any" type for runtime polymorphism