Fast like C, slick like Ruby


Got errata or suggestions? Email us at

Release Schedule: 2019-09-16 through 2019-10-31

Version: Nov 1, 2019

Programmer Passport Crystal


Exploring Crystal


Crystal is a language built to be a much smoother C++. Created by Ary Borenszweig, Juan Wajnerman, Brian Cardiff, the object oriented language has Ruby-like syntax. It’s less dynamic than Ruby but has several advances as well, including much better performance.

With full support for macros, you can extend Crystal in many interesting ways. Because it has strong and static typing, you won’t experience as many runtime errors. Since the types are mostly inferred, the type sysem does not come with much overhead. Crystal is open-source software released under the Apache License version 2.0.


Crystal was created to solve a problem. Manas.Tech member, Ary Borenszweig, wished there was a language like Ruby, only faster and more type safe. Crystal was born in June 2011 when Ary took the challenge to prove if it was possible to have a compiled Ruby-like language. Work on the language began in June 2011, with the purpose of creating a language with the elegance and productivity of Ruby and the speed, efficiency, and type safety of a compiled language.

The Crystal compiler was first written in Ruby, but later rewritten in Crystal, thus becoming self-hosting, as of November 2013.

Crystal soon became an official Manas.Tech project with most of the initial work being done by Ary Borenszweig, Juan Wajnerman and Brian Cardiff. The first commit was in 2012. The first official version was released in June 2014. In July 2016, Crystal joined the TIOBE index.

You can read more at the blog


Public & Private

Introducing Crystal

This video sets the scene and walks through the essence of Crystal. Nicolás Tada, founder of Manas.Tech, tells the story of Crystal's creation from the inside. Bruce walks you through what makes Crystal interesting. Maggie's wizardry shows the highlights of why Crystal is rising so far, so fast.

Conway's Game of Life

This video shows how to shape programs in Crystal by introducing the Crystal playground. We'll build a game called Conway's Game of Life, a game that builds graphs and changes them from generation to generation.

Moving Life to a Project

This video shows how to take a playground experiment in Crystal to a full Crystal project with teests. We continue to build Conway's Game of Life, experimenting with tests and tools.

Wrapping Up Crystal

This video wraps up the Crystal programming language. It shows a few final thoughts based on the work we've done together and offers some ideas for further exploration.

The Crystal Vote

In Programmer Passport, the community chooses the itinerary together. This video announced the voting candidates of Crystal, Smalltalk, Kotlin and Python. Bruce walks through these alternatives, bringing out the highlights of each.

Crystal Wins

The announcement of the winner of the first Programmer Passport language.

Community Resources

Cool quick trips for Crystal

Learn It

These resources will get you on the path to learning with background information, tooling and exercises.

Do It

You decide how deep to go. These resources are exercises and projects to cement your learning.

Grok It

These resources will help you put your new knowledge into context so you'll be better at your everyday job.


Longer Excursions (chapters 3 and 4)