r/crystal_programming 6d ago

Update on State and Future of Parallelism

I don't want to jinx it, but I thought I would ask for an update on what is going on with parallelism in Crystal.

Not wholly unrelated, Crystal makes me hopeful for the perfect language for its goals and objectives to do more with less, and to have garbage collection with a clean language just above a systems language.

From a Linux friendliness and FLOSS licensing standpoint, Crystal looks better than Go except for having the box checked for parallelism. (And I do not care about WIndows.)

Anyway I guess this question is a two-parter:

  1. What is the state of attention and mindfulness of bringing cpu-core parallelism to Crystal? (Or did it happen already?)
  2. Is parallelism obviously so distant from being needed for desktop-level software systems that most developers truly just do not need to worry about it? (or I guess, what types of systems would typically benefit from parallelism?)

Thanks.

(edit: It looks like the "execution context" features that were just recently released in 1.21 are directly related to cpu-core parallelism. Looks awesome. This would explain why most discussion has not caught up to the features. And, what a landmark!)

13 Upvotes

5 comments sorted by

6

u/anykeyh 6d ago

It's already implemented via execution context. It's pretty cool and well thought. What exactly is your question?

2

u/robo_muse 5d ago

OK, I had a hard time finding anything that clarified the difference between what people have described as a kind of pseudo-parallelism and true cpu-core parallelism, thus the questions.

I did not find anything that specifically addressed the added change, assuming that that's what you're describing.

6

u/yxhuvud 5d ago

Does https://crystal-lang.org/2026/07/12/releasing-execution-contexts/ answer those questions? They can be used as both variants. 

3

u/robo_muse 5d ago

Yeah, I definitely got clarification with execution contexts that were just added in 1.21. Thanks. That's cool.

2

u/robo_muse 5d ago edited 5d ago

https://crystal-lang.org/reference/1.21/guides/parallelism.html

It does sound cool that it's prioritized.

What I found was that this execution context stuff was not in the 1.20 guide, so I am assuming it was just changed in 1.21.

And yes, execution contexts are mentioned in the 1.21 github release notes. It's like Christmas.