Crystal Icon


Crystal is a self-hosted, general purpose programming language.
5 Stories
All Topics

Pat Shaughnessy

To learn a new language, read its standard library

This post by Pat Shaugnessy echoes Matt Rickard’s sentiment that we discussed in-depth on The Changelog 463:

The best way to learn a new programming language, just like a human language, is from example. To learn how to write code you first need to read someone else’s code. But who is the best person to learn from? Which code should we read? Where should we look to find it?

Pat was looking into Crystal and found its standard library to be excellent reading. I think his conclusion generalizes pretty well, with caveats.

  1. Older languages often have areas of the standard library that were written prior to new language features, so they are no longer idiomatic.
  2. Some standard library code is necessarily low-level, even dipping into the underlying language or using esoteric features. This can make for some tough sledding.
  3. Standard library code is used so frequently that it’s often highly optimized for performance, which reduces readability.

InfoQ Icon InfoQ

Crystal goes 1.0

Congrats to the entire Crystal team and community on the big One O!

Crystal, a new object-oriented, compiled systems programming language that aims to blend the conciseness and friendliness of Ruby with the efficiency of C, recently released its first major version. Crystal 1.0 has a syntax close to Ruby’s and features statically inferred types, C bindings, and macros. Crystal may attract developers with a Ruby/Rails, Elixir/Phoenix background.

This has been a long time in the making. Can you believe it’s been five years since we had Ary and Juan on The Changelog? On that episode we discussed what it would take to get Crystal to 1.0…


Mint – a programming language for writing single page apps

Mint has all the tools you need to write error free, easily readable and maintainable applications in record time.

Built-in styling, data management, language-level routing, and JavaScript interop make this a very interesting project, indeed. It’s still in heavy development, so the only real-world example you’re going to see is their implementation of

0:00 / 0:00