This year, the Crystal team launched the first official State of Crystal survey. We’re amazed by the fantastic feedback from the community.

We received 757 responses. Thanks a lot to everyone who took the time to respond! We tried our best to read through all of your comments and suggestions.

Without further ado, let’s take a look at the results.

How did you discover Crystal?

(hover for more info)

We wanted to learn how you discovered Crystal, and were surprised to find that a lot of you arrived at Crystal through search engines. On the other hand, we confirmed how important HackerNews and Reddit are to divulge young and small projects such as Crystal. Every now and then, someone from the community posts something interesting about Crystal, the post makes it to HN and Reddit front pages and in the next few days we notice a wave of new users and contributors on the different community channels.

Using Crystal

(hover for more info)

There’s a deeper story that we see in these numbers, which is consistent with what we hear in informal discussions about Crystal: the community is eager to start using the language in production, but is waiting for more concrete signals from the project. A considerable part of the community doesn’t even mind about that and trusts the ecosystem enough to take the leap.

(hover for more info)

Crystal community is growing rapidly. We’ve got a steady growing user base with a lot of new Crystal developers joining every week.

(hover for more info)

Most of the current Crystal projects are less than 1000 lines, however there are also 17 projects which are in between 10000 and 100000 lines.

(hover for more info)

Crystal is a beauty, we know that a lot of you are excited to use it for your daily work :)

What are some ways you or your company are using Crystal at work?

220 people answered this free form question. Here are the most common answers to how companies are using Crystal:

Microservices

CPU performance intensive apps

CLI tools

Background workers

Big Data processing

Ruby replacement

Some very interesting ones

Genome analysis

HPC

Embedded GUI applications

How could we help make Crystal more accepted at your company?

No surprises in the list: we know all of these are the main gaps to fill and we’re happy to be aligned with the community.

Stable release (1.0)

Parallelism

Windows support

More resources and documentation

Better tools (IDEs e.g)

More libraries

More streamlined release cycles

What editor(s) do you use when writing Crystal?

Crystal developers do love using Vim, here’s the major editors being used

Vim - 34%

Atom - 32.2%

Visual Studio Code - 28.8%

Sublime Text - 28.4%

Emacs - 8.1%

Platforms

(hover for more info)

Linux is the main platform Crystal developers choose followed by Mac OS. There’s also a notable amount (17.9%) of Crystal developers using Windows.

We see a similar pattern in target platforms. Linux is the most targeted platform. Interestingly we see Android, iOS and Javascript in a noticable ratio.

Towards 1.0

(hover for more info)

Crystal developers tend to follow the latest stable release.

(hover for more info)

We try to keep breaking changes as minimum as possible. More than %60 of Crystal developers don’t have any significant changes to their code when upgrading to a new version.

(hover for more info)

Using OS package managers to install Crystal is the most common and simple way to start. There are also prebuilt binary tarballs for major platforms.

What critical libraries are missing in the Crystal ecosystem?

To improve the Crystal ecosystem, we asked what libraries are needed the most

GUI

ORM

Third party SDKs (AWS, Google, etc.)

Machine learning

We asked what tools would make Crystal developers more productive.

IDE

Debugger

Code coverage & Linters

Faster compile times

Learning Resources

Which learning resources, if any, did you use to learn Crystal?

The official Crystal docs (https://crystal-lang.org/reference/)

Crystal for Rubyists (http://www.crystalforrubyists.com/)

Gitter/IRC/Help from the community

Ruby background :)

From 1 to 5, 1 being not difficult and 5 being very difficult.

Crystal’s Future

What can we make to make you well informed about Crystal’s future?

More blog posts

Monthly development updates

More social media (Twitter, Facebook e.g) activity and interaction.

More transparency.

What improvements are needed before Crystal v1.0 can be released? (General feedback)

Parallelism

Windows support

Stable APIs

Compiler improvements

Better type inference

Community & Demographics

Crystal community takes its’ welcoming and niceness from Ruby. We’re happy to see that over 64% of all respondents said they feel welcome in the Crystal community, with 33.3% not sure.

What can we do to make you feel more welcome in the Crystal community?

Feeling quite welcome already :)

Merch store!

More events, meetups, project discussion

What domain do you use Crystal in?

Crystal developers use Crystal for many different domains.

Servers / Backend Web Development Network Programming DevOps IoT Data Science Gaming Big Data

Which programming languages are you most comfortable with?

Crystal developers come from various programming languages, most of them being dynamic programming languages. However Ruby definitely has a special place :)

Ruby JavaScript Python PHP Java C C++ C#

Closing Thoughts

At the end of the survey, we asked: “Anything else you’d like to tell us?”

I’ll let some of the quotes speak for themselves:

Keep up the great work!

I love Crystal, and I want to use it more! Thank you!

Crystal is my first loved programming language :)

I can’t wait for the 1.0 release! Great job on everything so far.

I love you guys, keep it up! As a Rubyist with no prior experience with compiled languages, this was definitely and by far the easiest way to learn about them and get used to a strongly typed language.

Thanks to everyone who make Crystal and this survey possible <3

Happy Crystalling!