DEV Community

loading...

Dreams from the multiverse where Crystal is as popular as Go and Rust

sam0x17 profile image Sam Johnson ・3 min read

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

Discussion (3)

pic
Editor guide
Collapse
andyrosenberg profile image
AndyRosenberg • Edited

I, for one, would love to live in this multiverse. Don’t think it’s the name’s fault (google crystal-lang instead). I honestly think it needs better frameworks to draw bigger crowds, and it needs more devs in the community to build and maintain them. Amber is my personal fav (b/w Kemal, Amber and Lucky) because it uses Rails-esque conventions as a small MVC library. Its documentation is sparse and you often end up having to work around some of its underdeveloped areas, but I believe it has the best chance if it gets some love. I would not be surprised if another framework emerges and outshines all three post-1.0 release. Either way, I’ve got my fingers crossed.

Collapse
joshbaptiste profile image
Reynold Chery

I feel the same way with Nim-lang

Collapse
sam0x17 profile image
Sam Johnson Author

Yeah it's sad -- Nim has a similar situation to Crystal, and an even smaller community last time I checked