To improve the language as a product, you need to be confident in its design. You need to pretend that the plan you have laid out makes the most sense to implement. Nim is different from languages like Rust or Zig in that it doesn't have a clear general plan for the entire language, but rather accumulates unique design choices which increase productivity over time, all over a strong base language. That's the narrative in my head anyway.
While Nim still has the room to play around with design, I think it should. Nim's metaprogramming is one of the biggest productivity improvements I've seen, and it's still not perfect. Features like the effect system are currently pretty useless, but it could help immensely in the long run to improve them and build off what is already there. I'm personally more interested in how far Nim can go rather than see it become more usable. It being very barely usable is of course bad, but holding out for it to be a professional, spotless product is way less rewarding to me than the ability to experiment with new things. I'm also not dealing with systems programming, which demands perfection more than other fields. The one thing I disapprove of is waiting around so long hoping that already implemented features will be useful before even considering changing or deprecating them. You will usually already know if they are useful when they are proposed lol, effect system as is isn't really even theoretically useful. Sometimes hesitation like this also leads to mediocre implementations. At least the features aren't enforced, unlike some features in some other languages.
