5 Years Anniversary of Crystal 1.0

It’s been 5 years since the release of Crystal 1.0. This anniversary is an opportunity to celebrate. :tada:

We’re going to do that with a live-streamed video call in which we look back at that big milestone, what happened since then, and what’s coming next.

On the call will be members from the Core Team and the community, and we’ll be answering questions in an AMA format (“Ask me anything”).

Mark your calendar:
Friday, 27 March 2026 16:00 UTC (check your time zone)

Follow either of these links to participate in the event:

We accept questions from the following channels:

  • Hashtag #Crystal2026AMA on Mastodon or Twitter
  • Community Discord channel #ama-questions
  • Zoom chat

Hope to see you next week! :partying_face:

If you want to socialize during the event or hang out afterwards, you’ll find like-minded people on the Community Discord server.
Let’s get together in the voice channel for an aftershow party.

In case this sounds familiar, we did a similar event a couple of years ago to commemorate Crystal’s first commit: 10 years of Crystal celebratory AMA

Damn, time flies.

I will be there!

Crazy question when do we get 2.0 and what changes are gated by the version bump?

I would say that the landing of new multi-thread features could be a good reason for a 2.0 major bump.

For anyone who missed the event, a video recording is available on Youtube:

Thanks for all the good questions and the participants who helped answering them splendidly :clap:
Let’s do this again sometime!

I saw thsi video today.

I noticed that one of the most important topics we’re discussing is incremental compilation (or modular compilation), and how to avoid the intrusive requirement of forcing users to add types to every method in order to achieve better compilation performance.

I have an idea:

We could indirectly implement type specification for methods, with the goal of making compilation more efficient and making better use of caching.

I’ve been following this project for a long time. It can automatically supplement types and return values for all methods. When I used it previously, it worked surprisingly well. However, unsurprisingly, after it gained some traction but failed to be merged into the standard library as a Crystal CLI tool, development has stalled again.

Following is my two cents: (with steps)

  1. The core team could collaborate with the original author to actively develop cr-source-typer, integrate it into Crystal, and maintain it so that users can easily add types to their codebase via the command line whenever they need to, free, no pain.

  2. Once the types are complete and the code compiles without errors, we can enable more caching and incremental/modular compilation to significantly boost compilation speed.

There is one potential issue: as new (untyped) code is added or errors occur, caches might become invalidated. However, I believe this is a worthwhile trade-off. After all, cr-source-typer is doing all the heavy lifting for us for free; the increased speed is just a nice added bonus. Even if users don’t use typer, they aren’t actually losing anything compared to how things are now.

(Translated from Chinese using gemma4:26b)

cc @straight-shoota @bcardiff