4 comments

[ 2.9 ms ] story [ 24.6 ms ] thread
If you are interested in books covering Nim, besides this linked one there is also another by the main dev of the language:

    https://www.amazon.com/Mastering-Nim-complete-programming-language-ebook/dp/B0CGGHZ4HP
and also a much more dated one from like 6 years ago:

    https://www.manning.com/books/nim-in-action
I thought this one was interesting message because

  - it covers Nim 2.0, which just came out, making it extremely current
  - it's written first in English by someone who is not a native English speaker, using GPT4 to help catch spelling and grammatical mistakes as well as non-idiomatic phrasing
  - its target audience includes people who have never programmed before at all
  - it is available for free online
  - it has been developed in public view on GitHub
  - it is written by someone who is not a professional programmer, but a working scientist
I'm about 10% of the way through it, evaluating it with the possibility in mind of using it for a reading group to introduce people to programming in multiple paradigms. So far, it has seemed very thorough and approachable.
Oh, it's interesting, and I wish you the best of luck with your reading group!

I mentioned the others more out of thoroughness than any intended criticism. A wide diversity of students implies that different materials aimed at various levels always helps - some styles "speak" to some readers more/less. I would be personally quite curious if you decide to go with that book for teaching programming just happening to be in Nim. (Someone else who likes to teach elementary programming once said he might try to teach programming with Nim.) [1]

There are also a lot of free online resources like "Nim for ... Python Programmers" type things off the documentation site. [2]

[1] https://github.com/nim-lang/RFCs/issues/456#issuecomment-111...

[2] https://nim-lang.org/documentation.html

I'm also interested in Andreas Rumpf's book, _Mastering Nim_, which you mention. I'm not currently also reading that book only because I can't easily do so on my e-reader, as I can't find it in EPUB.

It's a relatively distraction-free format, and nice for me not only because I already have way too many paper books, but also because my vision is not great. A large e-reader (10+ inches) allows me to make almost any book large print, and to increase the font weight at the same time.

I could probably buy the Kindle version, strip any DRM, convert it to EPUB, and then sideload it on my device, but that would be enough of a pain that I haven't seriously considered doing it yet. Any EPUB would be enough to get me started, but I mildly prefer to buy books from the device vendor (Kobo) because that way it's guaranteed to perform well on my device, and my annotations will be synced to 'the cloud' in a way that makes them hard to lose.

Nim in Action is available in compatible formats as well as on the vendor's storefront, but I'd prefer to wait for a second edition since it's a relatively old book for a relatively young language at this point.

Rumpf, if you're reading this, please know that if you release an EPUB somewhere I will buy your book. And if you release it on the Kobo store, I'll buy it again! :)

> A wide diversity of students implies that different materials aimed at various levels always helps - some styles "speak" to some readers more/less.

Totally! I'm reading through a bunch of programming language books right now looking for something fun and beautiful to try, and some of my personal favorites are much more brief. At the same time, I'm interested in books that could be widely appealing because I think working through one of these books with friends could be a way to help a diverse group (re)connect.

> There are also a lot of free online resources like "Nim for ... Python Programmers" type things off the documentation site.

The Python connection/resemblance is a complicated thing for me. I've written a little bit of Python code, but truthfully I feel really negatively about the language. The culture/community/ecosystem feels at odds with my values with respect to some of my greatest interests in computing (package management and functional programming) and the language lacks some things that I consider really nice to have, like static typing. There's a reflex in me that wants to 'reject Python back' for the way I feel rejected by it. And sometimes I even feel envious and resentful towards the language, because it's always the first or second language to get an official SDK for interesting projects while languages that I'd actually like to work in are afterthoughts.

At the same time, there are people in my life and workplace whose programming experience is exclusively in Python, and I'd like to connect more with them and with what they like about Python. So while the inspiration Nim takes from Python is of no direct interest to me, Nim seems well-positioned to bridge the gap between me and Pythonistas in my life by ticking lots of boxes for both of us. :)