One of the things that can hook you into a new language is having a really well written introduction book that gives you the philosophy of the designers and the big picture while moving through the syntax and semantics.
The book is roughly 300 pages. Even with a careful reading that's only a few days invested.
For instance I read Roberto Ierusalimschys's Programming in Lua and Niklaus Wirth's Algorithms + Data Structures = Programs. But have never really had a project which fit either of those languages. I still enjoyed the books.
That is the big advantage of getting books out on shelves, so people can look through them. That's harder to do with more independent works.
Now that I think about it, I use to buy programming books in University and just after (2005-ish), but I haven't really since. Even when I work places where we have a book budget; I never request anything. These days I read the documentation, and if I get stuck, I go to a stack exchange site.
I have been waiting for this book I have had this book in my wishlist for quite a while. Nim looks interesting and compiling to C is highly desirable to me.
I much prefer a well written book length introduction to reading through the documentation even if its good.
Now that there'e even a book about Nim, what kind of production-level code do people write with it ? As a Python lover, Nim looks very nice on the surface...
A lot of different things. CLI applications, games (a large proportion of the companies using Nim are doing this, and some indie devs[1]), web applications, GUI applications, some are using it for scientific applications. The list goes on and on :)
That's helpful. It wasn't particularly hard for Windows with Cygwin, but only because I'm used to it. If this had been my first language before Python I would be sorely confused lol.
There is a very terse and pleasant syntax that reminds people of Python, but it compiles to C and is very efficient, and binding to C code has no cost and is very easy as a result.
Yes, the nim compiler outputs C-source code then passes that to your compiler. It can also output other languages. That said while a lot is configurable, I wouldn't consider the generated C as something a human can work on.
I wonder how well the Nim standard library handles this. D has been controversial with this because the standard library expected GC to be enabled although allowing it to be disabled. I think this story has improved but it may have hurt adoption as a systems programming language that is now hard to restore.
Sadly this is something that Nim can also improve on. I will actually be looking into getting the stdlib ready for the highly sought after 1.0 release and will be keeping this in mind.
The stdlib not working without GC, making not truly optional, is one of the main reasons I stopped using nim - though I haven't checked if this is better in some time.
Chapter 1 and 8 are free so be sure to give them a look if you're new to Nim.
Previous discussion for the curious: https://news.ycombinator.com/item?id=10987975
Happy to answer any questions.