I have been thinking about a new language. A language simpler than C, yet more complex than C++. I want it to strongly support metaprogramming – something I’m surprised more languages haven’t tried. XL seems to be the most advanced, but I think it obscures things too far and isn’t really a specific language.
The basic ideas:
- You cannot create a program without defining what things are with metaprogramming.
- Meta and non-meta would have 2 different languages with some similarities.
- It should be possible to define types, functions, classes and unions in metaprogramming terms – for use in the non-meta code.
- It would be nice to be able to define exceptions and C++ style templates in metaprogramming terms.
- Using the metalanguage would be optional – everything needed for general-purpose code would be included in the standard library.