Nim is really nifty. For those who aren't familiar, Nim is a systems development language, much in the same way Go is intended to be. Nim isn't trying to solve the same class of problems that Rust is trying to solve. Basically if you have any experience with trying to develop something like a webapp or a backend application in c, you'll realize that you can get mired in re-implementing a lot of stuff.
What's Nim for?
First of all it has concurrent programming support built into standard api. Think of how Go makes concurrent programming easier to approach. Nim is similar in that sense.
Garbage Collector?
Nim has a garbage collector. That alone is a turn off for a lot of people gathering around Rust. But use of garbage collector is optional for Nim.
Compiling to c?
Nim dev team has a long term plans for compiling directly into binary. I think compiling to c is a good first step, and it allows no-nonsense portable development.
One thing I don't like about is the syntax, it seems like it's heavily influenced by Python. Other than that, there is a lot to like about the language.
So we have another YACC (Yet another Compiler Compiler).
I have been playing with these way way back and for small projects they appear OK but as your projects scale, it is holding you back. In the end they make developers easy and sloppy and will create applications that look like Frankenstein.
I have seen a lot of "Hello World" programs. The problem is not in the small scale programs that are below 1000 lines of code the problem is the projects that takes years to build and start at 10,000 lines of code and bigger.
You can use Nim for quick and dirty projects but the time you invest in that Nim project could have been used to create a C++ framework from day 1. There is a big different if you generate C code or if you write C code. If you generate C code it gets ugly pretty fast.
5 comments
1 u/dchem 04 Mar 2017 01:49
Nim is really nifty. For those who aren't familiar, Nim is a systems development language, much in the same way Go is intended to be. Nim isn't trying to solve the same class of problems that Rust is trying to solve. Basically if you have any experience with trying to develop something like a webapp or a backend application in c, you'll realize that you can get mired in re-implementing a lot of stuff.
What's Nim for? First of all it has concurrent programming support built into standard api. Think of how Go makes concurrent programming easier to approach. Nim is similar in that sense.
Garbage Collector? Nim has a garbage collector. That alone is a turn off for a lot of people gathering around Rust. But use of garbage collector is optional for Nim.
Compiling to c? Nim dev team has a long term plans for compiling directly into binary. I think compiling to c is a good first step, and it allows no-nonsense portable development.
One thing I don't like about is the syntax, it seems like it's heavily influenced by Python. Other than that, there is a lot to like about the language.
0 u/roznak 25 Feb 2017 14:51
So we have another YACC (Yet another Compiler Compiler).
I have been playing with these way way back and for small projects they appear OK but as your projects scale, it is holding you back. In the end they make developers easy and sloppy and will create applications that look like Frankenstein.
1 u/Vladar [OP] 25 Feb 2017 15:13
I don't think YACC means what you think it means.
As for the project scaling, I'm using Nim for a pretty long time and for the most time it's quite enjoyable and productive experience.
If you want to know more, check out the official site, or this blog post.
0 u/roznak 25 Feb 2017 16:31
I have seen a lot of "Hello World" programs. The problem is not in the small scale programs that are below 1000 lines of code the problem is the projects that takes years to build and start at 10,000 lines of code and bigger.
You can use Nim for quick and dirty projects but the time you invest in that Nim project could have been used to create a C++ framework from day 1. There is a big different if you generate C code or if you write C code. If you generate C code it gets ugly pretty fast.
1 u/Vladar [OP] 25 Feb 2017 18:32
You don't get the point. You shouldn't even look at an intermediate C-code, for it is not for human eyes, only for the C-compiler.