Why Use Nim over C#?

  • 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.

    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.

    As for game development, I think the game engine of choice will already dictate what one should learn.

    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.

    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.

    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

    Interesting take.. I could share some codeGolf languages that you might like to play with in that case!

    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.'

    Wild comments too like : `Nim runs on many more platforms than C#`

    Without being specific this claim is just weird..

    > beware though that usually the people who wrote the benchmarks might not be experts on Nim

    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:

    -not enough libraries

    -not enough frameworks

    -not enough support

  • Does Nim really have no competition in the meta programming space? I assumed Haskell would do well there?

  • My main reason for using C# is that's it's nice enough but Visual Studio feels amazing.

  • For game dev? Use C#. It’s got all the bindings to the engines and other such things you’ll need.

  • 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.

  • > But if you use windows, there is no inline assembly so shrug.

    (in Nim presumably)

    Can anyone say why?

  • I didn't realize you can mix Nim an Assembler like this:

    https://github.com/mratsim/constantine/blob/1cb6c3d/constant...

  • 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: https://mode80.github.io/7-langs-in-12-months.html

  • [flagged]