StefanSalewski / NimProgrammingBook

Computer Programming with the Nim Programming Language -- A gentle Introduction
262 stars 19 forks source link

Minor update to the book for nims 2.0 release as of today (01.08.2023) #28

Open PhilippMDoerner opened 1 year ago

PhilippMDoerner commented 1 year ago

This is honestly more of a notification than an actual issue.

I'm not sure if you're already aware that nim 2.0 was released today (https://nim-lang.org/blog/2023/08/01/nim-v20-released.html).

With that come some minor changes, but honestly it shouldn't be much given that I'm pretty impressed with how on top you've been with all developments. At least from what I can gather skimming through: https://ssalewski.de/nimprogramming.html. Seems to me like it'd mostly just be a slight wording change in the About this book section?

StefanSalewski commented 1 year ago

Note that the book has its own website since a few months: https://nimprogrammingbook.com/

You can buy the HTML and PDF versions already for 49 euro. Also, there seems to be a new tiny book from another author available, see https://nimprogramming.com/books/allbooks/

While after all the trouble with THEM (e.g. https://forum.nim-lang.org/t/10101#66729) I only rarely use Nim myself these days, I think the book is mostly up-to-date with Nim 2.0. Nim 2.0 features are used through the text, and explained in detail in the appendix. I noticed that official Nim 2.0 was released some days ago. But I think that incremental compilation and CPS support is still not available. I will try to find some motivation to look at the "new" 2.0 features. I just spent more than 100 hours for the final grammar fixes -- as you may know, initially I intended to hire a professional for that, but as the selling revenue can never compensate that costs, I had to do it myself, with comments from a few kind readers and various tools, see acknowledgement in the appendix. So I think I could already print it at Amazon or another on-demand printing service. I will see if people still requests a printed copy. Two did in the past, but they have not been seen again. I really intend to print it, now that the grammar is not too worse anymore, but of course it would be good if someone would read it carefully before printing. My feeling is that most people have not the motivation to read a full book about Nim in these days, so I may have to read it myself. Actually, I am still considering adding some more topics, like FFI, JS, games, GUI, debugging, pragmas and effects. But that could make the book too heavy for beginners, and my motivation is very low. Currently, I am skeptically if I will be able to sell at least a dozen pieces. For my own feeling, the book is not bad, maybe 3 of the 5 Amazon stars. And it generally appears in the top 3 when searching for "nim book" with Google. But of course, THEY have refused to mention it on their website from the beginning and always talked bad about it, which really does not help selling it. I do not intent to do advertising by Google Adds, but Amazon listing would help I guess.

StefanSalewski commented 1 year ago

I have just updated the page https://nimprogramming.com/. I think that update is more important than the book update. Release 2.0 date was updated, and I have added the last 3 Nim projects Malebolga, Atlas, and HappyX. For the last there have been rumors that it is from Russia, but I am not sure -- let me know if I should better remove that link again. And I have added some more video links, that "Nim in 100 secs" and a few more.

Book update will follow.

StefanSalewski commented 1 year ago

OK, I have updated the references to Nim 2.0 in the book, so that it is clear that Nim 2.0 has been already released. I think the explanations of the actual new features of Nim 2.0 were already good enough. I may proofread the whole book in winter, and apply a few more fixes before printing.

ringabout commented 1 year ago

Nim Programming: The Next Generation Programming Language For Software Development

Nim Programming for Data Science: Harnessing the Power of Nim for Data Analysis

These are GPT-generated low-quality books. You might read samples and find that they recommend to use nimble install nimble in their books.

StefanSalewski commented 1 year ago

These are GPT-generated low-quality books.

Thanks for the info. I was not able to find samples to read, but I was skeptical, I assumed it might be just some copy&paste.

But GPT-4 is a great tool, it can generate high quality texts when you guide it properly. I let them write the disclaimer of my Nim book, and let them correct the grammar as a third pass after langtool, quillbot, and grammarly. Well, I let them not really correct my text on its own, I only asked to report errors and to make suggestions. And most of the suggestions were fine.

Note that I have already added a remark about the 2.0 version for the book of Mr. Rumpf at https://nimprogramming.com/books/allbooks/. For the two books of Mr. Jeffery Owens I may add a warning about GPT content.

StefanSalewski commented 12 months ago

07:50:36 | FromDiscord | Somehow my brain concocted together that the ref-type is stored in heap and if it has a value-type field that somehow gets stored in stack.

I assume this "Phil" are you? So my book did not really helped you to understand all that? Really sad. As an alternative, I could recommend you reading the official Rust book, it does explain this stuff also. Maybe start with the chapter about "Smart pointers", see https://doc.rust-lang.org/book/ch15-00-smart-pointers.html

PhilippMDoerner commented 12 months ago

Yep, that is my account. However, I didn't read the book. I was aware of it, skimmed through some of the contents to see if it was something with good enough information that people are likely to read it or occasionally recommend and decided based on that whether to notify you about the nim 2.0 release here.

And thanks, but all good. It was merely a misconception I hadn't been aware of that I had until I actually thought it through. Further, this is an issue, not a discord chat. So I don't think this relates to said issue that I opened.

StefanSalewski commented 12 months ago

Well, my book was intended for beginners mostly. With all your questions in IRC, and I think even on StackOverflow, I had some doubt about your progress. I think I had seen your name already long time ago. I hope you read at least the official tutorials. In the past I saw some people who refused to read the tutorials, and tried to learn Nim by copying Python or JavaScript, guessing, and a lot IRC traffic.