Incremental compilation and better tooling
Crystal uses a type inference system that applies to the whole program at once to analyze and identify every expression type on the program. This is different from the usual type inference of other languages because it works across method boundaries, and argument types don't need to be explicitly typed. It has a cost, however. Analyzing the entire program for types requires, well, the entire program, all at once. Any change to any line in any file causes the whole analysis to be repeated from the start.
Compiling and analyzing Crystal programs is a little slower than in other languages, but this is the tradeoff for the excellent performance and awesome syntax, semantics, and expressiveness.
There are extensions for many code editors and IDEs supporting Crystal, but they are mainly based on the compiler itself, and thus they don't offer incremental analysis of the program and the developer often has to wait a few seconds before...