C++ “Successor” Language / Syntax
Cilia is similar to
- Cpp2/CppFront,
- Carbon, or
- Circle,
and a bit like the evolution
- from Java to Kotlin,
- from Objective-C to Swift.
Why a new language, why not extending C++?
- The CamelCase style could basically be archieved in C++, too
- C++ could be extended by some features:
- Aliasing of member names (functions and variables) seems necessary for having a CamelCase standard library, that is realized as a shallow but “perfect” wrapper for the C++ standard library (i.e. a translation layer).
- Some parts are impossible – or at least extremely unlikely – to include in a future C++ standard:
- Const reference as default type for function parameters
- Fixing C++ “wrong defaults”
- Restricting integral promotions and no implicit narrowing conversions, etc.
- New array declaration (
Int[3] arrayinstead ofInt array[3],Int[] arrayinstead ofvector<Int> array) - New/simplified keywords
- No trailing semicolons
Why “Cilia”?
Starting with “C” is a kind of tradition.
All the most obvious names (like D, C2, C3, Cpp2, Cone) and many others were already taken ¯\_(ツ)_/¯.
Julia is a nice language,
so now Cilia got a “cute” name.