The first major release of the Crystal programming language happened this week as the project hit version 1.0. The much anticipated language has been created with the aims of offering the speed of C/C++ but with a programmer-friendly syntax as readable and easy to understand as Ruby.
Crystal has been under development for around a decade and is described as a general-purpose, object-oriented programming language. It is a compiled language with static type-checking and a syntax heavily influenced by the Ruby language.
Although some developers have already been making use of Crystal in projects, a version 1.0 release means devs now have the reassurance that the platform has reached a point of stability, as the Crystal team explained on its blog.
“After this release, everyone can expect that, at least for any future 1.x version, your code can still compile and work without any significant incompatibility. Language and standard library features won’t be removed or changed in any way that could prevent existing code from compiling and working. The built-in standard library will continue to be enriched but always with backward compatibility in mind,” the team wrote.
To ensure predictability, the team said it plans to release maintenance releases as patch versions, so that the first maintenance release will be 1.0.1, for example, and will only include fixes of existing features. Meanwhile, new features will be reserved for minor releases, such as 1.x, but will always maintain backwards-compatibility with previous versions.
Crystal has been developed by Manas Technology Solutions, with the involvement of over 450 open-source contributors, and has been released under the Apache License version 2.0.
According to the Crystal team, the syntax was influenced by Ruby so that it would feel natural to read and easy to write, granting high productivity to development teams. However, the addition of compile-time static type checks provides an additional safety layer which proves invaluable in larger code-bases, and above all, Crystal is claimed to run “blazingly fast”, with a very low memory footprint.
The language has already gained admirers, with one developer stating that one of the big selling points for Crystal is the ease with which you can interface with C libraries. Others point to its combination of readability and performance making the language suitable for developing low-level code.
Some features are currently available in Crystal but have yet to receive official support, which means they will continue to be improved until the project team is confident about their stability.
One of these is Windows support, despite the level of progress being made to make Crystal available on Windows. This work should not impact the semantics or libraries available for UNIX/Linux platforms, so the Crystal team decided not to delay the 1.0 release because of incompleteness in this area.
ARM support is another area that needs polishing, with the Crystal team saying that some core libraries need work before it can be confident to give the “production-ready” mark on ARM machines.
Multithreading is another, with support to run the Crystal runtime on multiple cores still a preliminary feature. The Crystal team said there are many improvements still to be made to guarantee the language’s expected performance and quality in a multi-core environment.