Why you should give Crystal Lang a try: a quick review

I've been trying out Crystal Lang for a few months now and I have to admit that, I am really happy with it, even if it's not a functional language nor has a very strict compiler. The reason why is pretty simple: it's as easy to write as any dynamic language like Ruby, Python or PHP while still providing a compiler that is helpful. Kudos to the Crystal team for that!

Coming from Rust and Python

Last time, I wrote a blog post where I explained how I came from Python to Rust. Here is a quick summary: I love when a compiler has my back. Since this blog post, I spent quite some time coding with Rust but, at some point, I always came to the same conclusion: the compiler is way too much on my back!

I know I should try to understand lifetimes and ownership and that once I will be mastering those topics my life as a Rust programmer will be perfect… and blah blah bah. But, for whatever reason, it doesn't seem to work for me. And one day, while looking for a Web Framework, I came across Crystal Lang, and more especially, the Lucky Framework. That's how it all began.

Being productive

I'm a doer. I've been a doer of web stuff since 20 years now (😱) and I love when tools are helping me to achieve what I want, and that's what Crystal Lang has to offer. It's been a long time since I've enjoyed programming with a langage so much. Here is why:

What I do and don't love

The pros

So for me, here are the main selling points of Crystal Lang:

The cons

And here are the main difficulties (IMHO) with the language right now:

The reality

Was it a show stopper for me? Not at all because :

Here are some concrete examples:


Should you give it a try? Definitively! It's very fun to write Crystal Lang code. I've rewritten the engine of this blog in a few days from scratch and it was a real pleasure to do so.

Here are my feeling compared to other popular languages:

You should give Crystal Lang a try if you want a language that helps you to write code that is fast and reliable. If you love the web, you should also give Lucky Framework a try. The documentation is very well done and people on the discord server are very (very) welcoming.