The Crystal programming language has reached its 1.0 release, meaning that it has achieved language stability, a plan for maintenance releases, and some features that haven’t received full support as of this release.
Crystal is a language with syntax similar to Ruby, is statically type-checked without specifying the type of variables or method parameters, can call C code, and more.
With language stability, users can expect that for any future 1. x version, the code will still compile and work without any significant incompatibilities. Also, language and standard library features won’t be removed or changed in any way that could prevent existing code from compiling and working, according to the developers behind the project in a blog post.
The developers also predict that they will be maintaining at least two minor versions and that migration between releases should be relatively easy.
Some features are currently available in Crystal that didn’t receive official support yet. However, the parts will continue to be available on every version, and users of the language can expect official support in future 1. x releases.
The incomplete features include Windows support, multithreading support to enable users to run the Crystal runtime on multiple cores using the ‘-Dpreview_mt flag’, and porting Crystal into ARM mainly for embedded and mobile devices.
The 1.0 release also introduced some changes, including tuples, which allow type-safe accessors with literal indices since the compiler knows which type each component is. Also, string and character literals are no longer allowed to have Unicode surrogate halves in escape sequences. Additional details on all of the new features and language changes are available here.