small medium large xlarge

Programming Crystal, in print

February 06, 2019

In nature, a crystal is a substance with molecules arranged in a lattice. Some substances, such as halide crystals, are composed of separate elements arranged perfectly to make them stronger than they would be alone. Crystal, the language, aims for a similar solution, marrying an object-oriented base with functional elements. Crystals grow by aggregating material from their environment, and the Crystal language attempts to take the best features of other languages that have gone before, such as static typing, automated garbage collection, generic support, concurrency, and a macro system. If you're a fan of Ruby, it's worth checking out.

Come and get it!

Programming Crystal: Create High-Performance, Safe, Concurrent Apps

Crystal is elegant to read and easy to program like Ruby, allowing full object-oriented development. Its compiler is powerful enough to nearly always infer the type of your variables. So you get the benefits of a statically typed language: more robust code, safety, and execution speed while still reaching high productivity in development. Null pointer exceptions as in JavaScript, Java, or C#, are a thing of the past: Crystal annihilates them, just like Rust.

Explore the building blocks and design of the language and how you can use the Crystal tool-chain to build and manage powerful applications. Harness the power of the macro system, as well as how to work with fibers and channels, making concurrency as easy as possible. Learn how to use the Kemal web framework and access databases and how to tap the potential of existing Crystal libraries. Find the spot that Crystal fills in today's software world with real-world examples.

With Crystal, you can combine the best of both worlds: the high-level coding of dynamic languages and the safety and blazing performance of a natively compiled language.

Now available from

February PragPub Magazine

Adam Tornhill has had some sleepless nights in the past two decades. In his 21 years as a professional developer, he has experienced his share of epic failures. They weren’t all his fault, but he got to deal with their consequences and ponder how they could have been avoided—or at least mitigated. In this month’s PragPub, Adam shares his five worst bugs and the lessons learned.

Current tech trends often come with an air of mystery. Machine Learning is no exception. Frances Buontempo has some experience in demystifying Machine Learning (as she does in her book Genetic Algorithms and Machine Learning for Programmers: Create AI Models and Evolve Solutions). This month, she cuts through the mystification and the trendy language, asking, does Machine Learning really involve data?

Jason Charnes is a committed Ruby developer, and he has made it his mission to stay on top of what’s happening in the Ruby ecosystem. This month, he shares his perspective on the state of Ruby in 2019.

For the past year in PragPub, Mike Swaine has been detailing the history of the computer, zeroing in on the concept of the personal computer—a concept both technological and political. This month, he looks past the personal computer to ask what’s next. Is the next step beyond persona impersonal—or intra-personal? How personal is too personal?

Our regular columnists are on board as well. John Shade thinks every tech leader should have a hobby. Marcus Blankenship offers more sage advice on transitioning from developer to developer/manager. Antonio Cangiano has all the new tech books. Russ Olsen offers up a thoughtful and enlightening essay on three answers to the question, how do you build software? And of course there’s a puzzle.

We hope you enjoy this February issue of PragPub.

Upcoming Author Appearances

  • 2019-02-21 Frances Buontempo, nor(DEV):con 2019, Norfolk, UK
  • 2019-02-28 Fred Hebert, CodeBEAM San Francisco
  • Did You Know?

    If you've bought a paperback copy of one of our titles, you can still buy the ebook at our discounted "combo" price—even if you bought the paperback from a book store. Look on the last page of your paper book for directions.

    Don't Get Left Out

    Are your friends jealous that you get these spiffy email newsletters and they don't? Clue them in that all they need to do is create an account on (email address and password is all it takes) and select the checkbox to receive newsletters.

    Are you following us on Twitter and/or Facebook? Here's where you can find us and keep up with the latest news and commentary, and occasional discounts:

    Tell your friends! Tweet this

    Follow us on Twitter: @pragprog, @pragpub, Andy Hunt @PragmaticAndy.

    Coming Soon:

    • Docker for Rails Developers: Build, Ship, and Run Your Applications Everywhere, in print
    • Practical Security: Simple Practices for Defending Your Systems, in print
    • The Ray Tracer Challenge: A Test-Driven Guide to Your First 3D Renderer, in print

    Recently Released:

    Thanks for your continued support,

    Andy Hunt Publisher, Pragmatic Bookshelf

    Books • eBooks • PragPub Magazine • Audiobooks and Screencasts