Needed: comprehensive documentation for lesser used concepts

We all know Crystal is a wonderful language, but even the best language/library/framework/etc can be hamstrung by a lack of good documentation. Crystal has this issue unfortunately.

That being said, I’m working on a project right now that makes heavy use of Crystal’s concurrency patterns, however that is one of the least documented sections of the standard library. Documentation is sparse or completely nonexistent for many aspects of Concurrent, especially for things like select, Channel.select, etc.

For now I would accept a good tutorial or two covering concurrency in Crystal in depth, but we really need to do something about the lack of documentation. If anyone is well versed in those areas maybe consider making a contribution.

5 Likes

I would second this.

As someone spoiled by years of doing Ruby (Rails) I was living in a happy little world without all these scary multithreading/concurrency/whatever things to worry about.

Sadly the single CPU core speed pretty much stoped increasing with Moore’s law quite some time ago. So unless some miraculous technology like graphene replacing silicone improves things a lot in the near future it’s time crawl out of my cave and adopt to a new world with lots of CPU cores.

Languages needs to adopt too. Ruby is doing fine for now, but needs to do something to improve concurrency story to survive. Crystal needs to improve concurrency too.

Good documentation on concurrency will help a lot with this! Instead of saying like just go read Go docs on concurrency (no pun intended), people will read Crystal documentation and that I would see as a huge win. Concurrency support is one of the biggest things attracting people like me coming from Ruby.

Sure, Go can work similarly with concurrency, but is it really exactly the same? Also, for someone who don’t know Go, having to learn one more language to understand concurrency in Crystal is quite a task.

3 Likes

Definitely agree. Since you’ve had some experience, maybe you could start by enhancing some sections of the book?

https://crystal-lang.org/reference/guides/concurrency.html :)

Someone without previous experience just figured out some new concept might be able to better explain it to other newcomers. So maybe it’s good idea for those of us who still haven’t figured it all out to do it. I can try when I have more time, not sure when it will be though :(

Even better if someone highly experienced in this topic will review this explanation.

1 Like

A beginner who just went through the pain of figuring it out is an excellent person to write it, since it’s burned into their psyche now… :)

1 Like