コンテンツにスキップ
{/* SVG アイコン */} GitHub リポジトリ {/* SVG アイコン */} フォーラム {/* SVG アイコン */} RSS ニュースフィード

Crystal 0.21 の現状

Santiago Palladino

バージョン 0.21 のリリースに伴い、年末までに1.0 バージョンを目指して、今年の Crystal 開発の現状をお伝えしたいと思います。

まず第一に、ロードマップを更新し、今年度の Crystal の目標だけでなく、Ruby 拡張を簡単に記述するための完全な DSL やデスクトップ UI ライブラリなど、将来的にこの言語を使用して構築したいツールについても盛り込みました。また、GitHub issue のラベル付けスキームを変更し、それに応じて貢献ガイドラインを更新し、コミュニティの誰もが Crystal に貢献する方法を簡単に見つけられるようにしました。

1.0 の主要機能に関して、コミュニティメンバーの lbguilherme とコアチームメンバーの bcardiff の尽力により、Windows サポートを着実に進めています。現在、Crystal は Windows でいくつかのプログラムをコンパイルすることができ、最新の成果として、Windows プラットフォームでの例外のサポートが実現しました。標準ライブラリに関しては、すべてのモジュールが UNIX のみを念頭に置いて実装されているため、まだ多くの作業が必要です。Windows プラットフォームに興味のある方の貢献は大歓迎です。

次の大きな課題は並列処理です。コアチームメンバーの ggiraldezjuanedi が、waj が開始した作業に基づいて、精力的に取り組んでいます。マルチスレッドサポートを備えたコンパイラの動作バージョンが完成したことを嬉しく思います。これは Go と同様のモデルで、ファイバーからのタスクを実行する固定スレッドプールで、ワークスティーリングなどの優れた機能も備えています。この作業はまだ実験段階であり、明示的なスレッド処理など、定義すべき破壊的な変更がいくつかあります。しかし、コンパイラと標準ライブラリの仕様のほとんどは現在、正常に動作しています。Kemal の作者である sdogruyol は、既にWeb フレームワークを複数スレッドで実行することに成功しています。しかし、ワークロードを複数スレッドに分散することによって生じる競合が速度向上を相殺しないように、テストとパフォーマンスに関してまだ多くの作業が必要です。

また、インクリメンタルコンパイルの実現可能性を確保するために、型システムに関する議論も開始しました。 generics と modules-as-interfaces に潜在的なボトルネックがあることがわかっており、これらに対処する必要があります。また、必要な破壊的な変更をできるだけ早く特定し、その影響を最小限に抑えるよう最善を尽くします。

コミュニケーション面では、公式ブログから素晴らしいプラットフォームである dev.to にクロス投稿するようになりました。もしかしたら、あなたは今この投稿を dev.to で読んでいるかもしれません。ThePracticalDev の皆さんは非常に親切で、サイトにcrystal-lang アカウントをすぐに開設してくれました。Crystal コアチームの多くは、長い間このサイトと Twitter フィードをフォローしており、Crystal がこのプラットフォームに参加できることを大変嬉しく思っています。

また、サプライズを台無しにしたくはありませんが、よりクリーンなデザインの新しいバージョンのウェブサイトがほぼ完成しました。近日中に公開される予定です。

最後に、今月初めにはGoogle NYC と Recurse Center で講演を行い、また別のミートアップを開催しました。また、4 月にサンフランシスコで開催される初の Crystal Code Camp を企画しています。参加に興味のある方はお知らせください。イベントのスポンサーになりたい方はご連絡ください

Crystal の現状に関するニュースは定期的に共有しますので、ブログやその他のコミュニケーションチャネルにご注目ください。Happy Crystalling!