Thoughts
My hot take is that `comptime` is bait. It gets you interested in the language but it's very rarely the right choice.
People are excited about using Comptime for four things that it shouldn't actually be used for:
1. Macros. comptime isn't a macro system. It can't be used to analyze or transform the code AST.
2. I forgot what two was. Maybe forcing optimizations?
3. Compilation customization. Not everything at compile time happens at comptime. Comptime is one step of the complication process and it has no ability to change the behavior of compilation or linking.
4. Creating their own type system and their own type system rules.
Edit (Nov 9): 5. Establishing safety checks to prevent bugs.
Comptime can be used for three things:
1. Generating or initializing static data.
2. Conditional compilation—removing sections of code on unsupported platforms (edit: or based on build flags or optimization mode)
3. Types as values—generics, dynamically choosing types, inspecting type information, etc. Edit (Nov 9th): in particular: generics/anytype, constructing types from data (analogous to 1.), and choosing types based on platform (analogous to 2.).