"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

Reply via email to