Crystal は、Ary Borenszweig、Juan Wajnerman、Brian Cardiff および 530 名以上の貢献者によって設計および開発された、高水準の汎用オブジェクト指向プログラミング言語です。 [ 5 ]構文はRuby言語に影響を受けており、[ 6 ]静的型チェックを備えたコンパイル言語ですが、変数やメソッド引数の型を指定する必要は通常ありません。型は、高度なグローバル型推論アルゴリズムによって解決されます。[ 7 ] [ 8 ] Crystal は現在も活発に開発されています。Apache Licenseバージョン 2.0の下で、フリーかつオープンソースのソフトウェアとしてリリースされています。
この言語の開発は2011年6月に始まり[ 9 ] 、 Rubyのエレガントさと生産性をコンパイル言語のスピード、効率性、型安全性と融合させることを目指した[ 10 ] [ 9 ] 。当初はJoyという名前だったが、すぐにCrystalに改名された[ 9 ]。
Crystalコンパイラは当初Rubyで記述されましたが、後にCrystalで書き直され、2013年11月時点でセルフホスティング型となりました。[ 11 ]最初の公式バージョンは2014年6月にリリースされました。[ 12 ] 2016年7月、CrystalはTIOBEインデックスに加わりました。
Crystal は構文的には Ruby 言語に似ていますが、LLVMバックエンドを使用してはるかに効率的なネイティブ コードにコンパイルされますが、その代償として Ruby の動的な側面は排除されます。Crystal コンパイラで使用される高度なグローバル型推論と共用体型の組み合わせにより、他の多くの類似プログラミング言語よりも高レベルのスクリプト言語のような感覚が得られます。自動ガベージ コレクションを備え、Boehm コレクタを提供します。Crystal はマクロ システムを備え、ジェネリクス、メソッド オーバーロード、演算子オーバーロードをサポートしています。その並行処理モデルは、通信シーケンシャル プロセス(CSP) に触発されており、 Goに触発された軽量ファイバーとチャネル (ファイバー間通信用) を実装しています。[ 4 ]
2020年には、 Nikola Corporationが製造する車両のインフォテインメントユニットがCrystalで記述されていると報告された。 [ 13 ] Kagi検索エンジンのバックエンドの大部分はCrystalで記述されている。[ 14 ]