だれがCrystalを使っているのか
Crystalをやってると、こんなことを思います。
「このプログラミング言語はどこで使われているんだろ?」
私は趣味でCrystalを使っています。ネット上で見かける人も、だいたい趣味で使っています。
この記事では、Crystalをプロダクションで使っているっぽい人たちを紹介します。
Crystal公式資料
公式資料を見るとある程度書いてあるんですよね。
企業
Crystalを使っている企業で特に存在感を感じるものについて紹介していきます。
Manas.Tech
Crystalの開発元企業です。Manas社内には「Manas Labs」というR&D(研究開発)部門があり、Crystalはそこで生まれました。現在もCrystalの開発者の多くはこの会社に雇用されています。本社はアルゼンチンにあります。
ManasはCrystal専門企業ではなく、さまざまな事業を展開しています。決して大きな会社ではなく、社員は30〜50名程度と推測され、少数精鋭のITコンサルティング・システム開発企業のようです。MIT、NASAとの共同開発や、世界銀行からの受託の実績もあるようです。
84codes
スウェーデンのストックホルムに本社を置く企業です。
メッセージキューイング(Message Queuing)のホスティングサービスを提供しています。CloudAMQPというRabbitMQのホスティングの世界大手ですが、LavinMQという高速で軽量なメッセージブローカーをCrystal言語で開発しています。
Crystalユーザーの間では、CrystalのDockerイメージを提供していることでも有名です。Webアプリの開発に、84codesのDockerイメージが使われることが少なくないです。
kagi
Kagi Inc.は、アメリカ・カリフォルニア州パロアルトに拠点を置くスタートアップ企業です。広告やトラッキングがない月額有料制の検索エンジンを提供する企業です。この検索エンジンに全面的にCrystal言語が採用されているとされています。
PlaceOS
PlaceOSはオーストラリアのシドニーに本社を置く企業で、「建物をスマートフォンのようにアプリで制御できるようにする基盤ソフト」の開発を目指しています。コア技術としてCrystalを採用しており色々なものがCrystalで作られているらしいです。
Crystalコミュニティの間ではSpider-GazelleというCrystal用の高速Webフレームワークを開発していることでも有名です。多くの Spider-Gazelle のライブラリがGitHubに公開されています。
Bulutfon
Bulutfonは、トルコのイスタンブールやデニズリに拠点を置くVoIPプロバイダです。トルコにはCrystalで広く使われているWebフレームワークのKemalの開発者が住んでいますが、BulutfonはRailsをCrystalにリプレイスした成功例として知られているようです。
DMM
日本でCrystalを使っている企業ってあるんですかね。私がPerplexityで検索したところ、2018年のDMMのブログしかヒットしませんでした。
この時期、DMMの一部でCrystalが使われていたようですが、現在も使われているのかはっきりしません。
何か知っている人がいたらコメントにでも書き込んでくださると幸いです。
OSSプロジェクト
Crystalのプロジェクトのなかで、Webフレームワークやライブラリではなく、利用性が評価されてGitHubスターを集めているものを2つ紹介します。
Invidious
YouTubeの動画を広告・追跡なしで見られるWebアプリです。海外ではいくつかインスタンスが立っており、CrystalのOSSとしてかなり有名です。
OWASP Noir
ソースコードを静的解析し、APIのエンドポイントや隠れたURLなどを自動で洗い出すセキュリティツールです。
考察
私の記憶に残ったCrystal言語を使う企業やプロジェクトを見てきました。
恣意的な選定になりますが、ここに一定の傾向が見られると考えています。
第一に、大量のデータの通信が関わるプロジェクトが多い。
84codesのようなメッセージングやキューイング、Kagiのような検索エンジンの構築、BulutfonのようなIP電話、Invidiousのような動画データがそれに該当します。日本における動画配信のDMMの事例もその一つかもしれません。
第二に、セキュリティに関係するプロジェクトが多い。
Kagiのようなプライバシーに配慮した検索、InvidiousのようなGoogleに追跡されないYouTube、OWASP Noirのような脆弱性チェックのセキュリティツールが目立つ傾向があります。
私見ではこれには2つの相互補完的な理由があります。まず、Crystalのような尖った技術を好む人々は、しばしばセキュリティに関心を持ちやすい。そしてセキュリティに関心がある人は、Crystalのような珍しいために他人に解析されにくい技術を好む傾向がある。
第三に、Railsのリプレイスやゲーム・組み込みでの採用は多くない。
CrystalはRuby代替として語られることが多いですが、RailsをCrystalのフレームワークで置き換えた試みは実は多くありません。Crystalが歴史的にRubyの代替として宣伝されていた時期があったことを考えると、多くの企業が実際にRoRからCrystalへの移行を検討し、失敗したのではないかと私は推測します。
Crystalは高速な静的言語ですが、組み込み分野とゲーム開発では採用事例がほとんどないのが特徴的です。ガベージコレクションを含むためリアルタイム処理とメモリ最適化に弱いのが大きな理由だと考えられます。
まとめ
今回あえて省略しましたが、Crystalを利用して趣味でWebサイトを作っている人が非常に多いことは言うまでもありません。私もCrystalでWebサイトを作っています。
しかし今回は、一旦それを忘れて、実際にCrystalを使っている企業やプロジェクトのは誰で、どのような特徴があるのかを検討してきました。そして主観的ではありますが、そこに私なりの一定の傾向を見いだしました。
どうやら Crystalは大量のデータを高速処理して通信する 人たちがよく使っているようなのです。
この記事は以上です。最後までお読みいただきありがとうございました。
もしも感想や情報がありましたら、コメント欄にお寄せください。