Dreams from the multiverse where Crystal is as popular as Go and Rust
Tags: crystal, ruby, go, programming
Published: 2021-02-03 06:29:45

---
title: Dreams from the multiverse where Crystal is as popular as Go and Rust
published: true
description: Musings about the Crystal programming language and, why I think it deserves more attention, and how it perhaps missed the opportunity to go viral
tags: #crystal, #ruby, #go, #programming
//cover_image: https://direct_url_to_image.jSearchabilitypg
---

I often look in dismay at the growing popularity of Go and wonder if Crystal could ever catch up.

Really, programming languages are a lot like people in real life... popularity is seldom deserved, but very roughly correlates with some degree of skill or utility.

For me, Crystal is like the unpopular, down-to-earth nerdy kid, who once you meet him you wonder why he isn't running the whole school – or at least, the nerdy non-mainstream parts of the school where Go and Rust rule supreme. Obviously JavaScript and probably Python are running the show at the top of the hierarchy, wearing their undeserved varsity jackets and cheer-leading uniforms or whatever the modern zoomer equivalent is of this worn-out 90s trope.

If Crystal could just become, like, the head of the drama club or something, I'd be super happy.

I really like Crystal. I think it absolutely _nails_ that sweet spot between high level syntactic sugar and low level systems programming features and performance. With Crystal I feel like I really can have my cake and eat it too. As advertised I get the slickness of Ruby with the performance of optimized C/C++, or so goes the tagline.

If that is the case, though, why didn't Crystal take off with the same viral popularity enjoyed by other languages? When Crystal was introduced in 2014, Ruby was all the rage. Why didn't Crystal take over?

I have some theories:

## Audience
Crystal is laser-focused on poaching Rubyists, but Ruby is on the decline, and never had the market penetration of languages like JavaScript – as Ruby languishes, so does Crystal.

## Naming
I think naming has a lot to do with the virality of a language, and there is tons of unrelated competition for the keyword "crystal" with everything from people selling quartz on Etsy to the millions of "crystal reports" stackoverflow posts. Crystal content gets buried.

This has happened before if we look at what happened to D lang. How do you google D?? That poor, amazing, early language never had a chance :/

## Association
I think the association with Ruby scares away non-Rubyists. It really is a shame because Crystal is a great languages regardless of your experience with Ruby.

## Timing
In a lot of ways, Crystal has been both too late and too early. The 1.0 release still isn't out and the ideal time for it to come out was right when Go started showing up in tons of job postings and the world was looking for an easy to use systems language that isn't terrible.

At the same time it was _too early_ in that most of the excitement around Crystal happened in 2015, before the "hipster systems programming language wars" really started.

## Stewardship
Languages like Rust and Go have enormous institutional backers (Mozilla, Google, etc) and thousands of companies who contribute money and resources.

Manas has held the line for Crystal for years, but at the same time they have also been rather vacant and neglectful stewards at times, in particular doing a very poor job of communicating status to the community.

In any case, it's _ridiculous_ that Rust gets the kind of community support it gets considering how difficult to use and anti-user it is. Don't get me wrong – it's a great language – but how many people chadding Rust would be happier coding Crystal? Probably a lot.

## Last Thoughts

Anyway, if you read this far and you haven't tried Crystal, you totally should. It's my favored choice for the winner of the hipster systems languages war, and you'll find that unlike Go, it has real generics, and unlike Rust, it won't cripple every attempt you make to get something done.

https://crystal-lang.org