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.

Reply via email to