"The risk is being frustrated and giving up. But doing something you're intrinsically curious and motivated about also give you strength to overcome the obstacles. Though don't hesitate to take a break if you're stuck, you can try a new language or a small project or do something else before coming back."
This++ There is so much noise and hype around using X or Y language because there are people trying to get you to buy in to their ecosystem and satisfy their own interests, take economic rents from you or sooth their own FUD/FOMO.... Follow your own interests, curiosity, what helps you learn and achieve what you want to do. It doesn't have to be a binary choice, use nim, c#, rust, zig... and you will pick up different ideas that will make you a better programmer. A note on benchmarks, speed is not the only thing that you can take away. Benchmarks also serve as a way to learn X in Y minutes. Personally: I appreciate code that is readable. Being able to decipher what you did or what someone else did months ago is important to; * Writing code with fewer bugs, both from a code and business logic POV. (Just because its memory safe or runs without crashing doesn't mean the code actually does what you or the business want it to do) * Writing more efficient code (it seems that "Efficient, expressive, elegant" kind of goes hand in hand) * Writing code that is easier to maintain, share and extend. and nim helps me achieve this. A quick pros/cons IMO: C# * pros; big eco system support, huge financial backing, industry standards, tooling * cons; needing a runtime like mono, c# redistribute, confusing asp.net/asp.core, reflection system is slow, it's not fun to write. Nim * pros; fun to write, easy to read STD & packages, package management is simple and fast, binaries are fast and small, easy to read & write, fast prototyping, flexible, macros * cons; flexible, macros, smaller eco system, tooling All that said, if you are concerned about time preference lean into the language that has a more mature ecosystem in what you are trying to achieve. Games (UE4 -> c++, Unity -> c#), Data sci(python, R...), Websites frontend(JS, TS)... If you are looking for a Harry Potter sorting hat kind of answer, * Write some small identical toy program in some languages that you like. * That covers things like; type/object creation, string manipulation, maths, random, networking, async and threading... * Example: A small server/client cli chat application. * Take a break * Rewrite the program in your own words (pseudo code). * Compare the languages and lean into the language that looks closer to your pseudo code Hope this helps