C# is an excellent language with an great ecosystem and lots of jobs available. Also, if you ever want to go a bit more functional, F# is excellent.<p>My personal reason for avoiding it is purely political: I don't trust Microsoft. I try to not rely on languages that are controlled by a single monopolistic corporations. Considering the recent case of the golang compiler planning on getting telemetry, I feel validated in that decision.<p>As for game development, I think the game engine of choice will already dictate what one should learn.<p>Unity is still king of casual and mobile games, so if that is your niche, learning C# is a no-brainer. Plus Godot has decent C# support now, if you ever need to change horses.<p>As for more complex 3d games, Unreal 5 is just insanely good. Nanite and Lumen offer tremendous improvements in both development experience and end result. Here learning some C++ is advised but funny enough, there are actually Nim bindings as well. If you don't mind getting into somewhat untested waters, Nim might be a very good choice here.
There are literally millions of professional developers using C#. Any problem you run into has a solution documented online.<p>Languages like Nim are a good choice for developers who need the adrenaline rush of dealing with complicated problems alone.
> but i do like how nim programs consistently have few lines of code than the same program in really most other languages which seems like a good thing<p>Interesting take.. I could share some codeGolf languages that you might like to play with in that case!<p>That said there are a few fallacies in the comments also that bother me a bit. Specifically the assumption that 'once its closer to C its automatically more performant.'<p>Wild comments too like : `Nim runs on many more platforms than C#`<p>Without being specific this claim is just weird..<p>> beware though that usually the people who wrote the benchmarks might not be experts on Nim<p>So you need to be an expert to benchmark it.. Red flag.
I currently use C# for most of my work. I would love to use Nim, as I like its design, its simplicity, its performance and the fact that it doesn't enforce OOP, but here are the problems:<p>-not enough libraries<p>-not enough frameworks<p>-not enough support
There's one area where Nim is better than most alternatives, especially those with a separate required runtime, and that is binary size. I write quick scripts and daemons with Nim, knowing that they won't take up space on my disk or in RAM.
I didn't realize you can mix Nim an Assembler like this:<p><a href="https://github.com/mratsim/constantine/blob/1cb6c3d/constantine/math/arithmetic/assembly/limbs_asm_mul_x86_adx_bmi2.nim#L90-L111">https://github.com/mratsim/constantine/blob/1cb6c3d/constant...</a>
Stupid question of the week that came to me after reading this: is there any language that compiles to dot net intermediate language, so it runs on do net like C# but with a different syntax like Nim? There are advantages and disadvantages, I am just curious if anyone wanted to go this way.
Also, this might be an interesting read: <a href="https://mode80.github.io/7-langs-in-12-months.html" rel="nofollow">https://mode80.github.io/7-langs-in-12-months.html</a>