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.
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:
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 :/
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.
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.
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.
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.