Trying to articulate why I like it: it marries the low-level control and type safety from C++ to modern language features as found in Python/Ruby etc, and in doing so manages to hit a pretty sweet spot in terms of having the compiler finding actual bugs early. With enums and pattern matching and the borrow checker, there are a bunch of features that help make the type system expressive enough that you can generally express what you need and still allow the compiler to perform very thorough, important checking on it, with the effect that "it compiles -> it works" is true much more than for, for example, C++.