Rhombus言語 1.0がリリース
原題: Rhombus Language 1.0
なぜ重要か
汎用プログラミング言語の拡張性と使いやすさのバランス実現、ドメイン特化的な言語設計への示唆、マクロシステムの実用的な進化が情報システムの多様化に貢献する可能性がある。
Racket プロジェクトが6月22日、新しいプログラミング言語「Rhombus 1.0」の提供を開始した。Rhombus は Racket をベースに構築され、従来的な構文を採用しながら Racket の高度なマクロシステムと拡張性を継承する汎用関数型言語。開発には20人以上の貢献者が携わった。
Rhombus 1.0 は Racket エコシステム上に構築された新しいプログラミング言語として正式リリースされた。言語設計の主な目標は、最新のプログラミング言語に共通する概念(字句スコープ変数、クロージャ、オブジェクト、パターンマッチング、型パラメータ性)を備えながら、Lisp 伝統のマクロシステムによる高度な拡張性を実現することである。
従来の Lisp 系言語は強力なマクロ機能を持つが、括弧中心の最小主義的記法が使いやすさの障壁となっていた。Rhombus はこの課題に対し、日常的な用途では従来的で分かりやすい構文を採用しつつ、Racket と同等の拡張性を提供する設計を目指している。
言語の主な特徴として、楕円形記号(...)を用いたコンパクトな反復処理、デフォルトで実装される良好な漸近計算量を持つ関数型データ構造、包括的なパターンマッチング、新しいクラスシステムが挙げられている。また静的情報の拡張可能性により、契約(contracts)から型システムまでのスペクトラムに新たな位置付けが実現されている。
Rhombus は DrRacket 開発環境、raco コマンドラインツール、VSCode の Magic Racket、Emacs の Racket モードなど既存の Racket インフラを活用できる。関係性としては Elixir と Erlang、または Kotlin と Java に類似し、Racket モジュールで #lang rhombus を指定することで Rhombus モジュールとして機能する。Racket はマルチ言語エコシステムとして設計されており、Rhombus はこの多言語化の推進と新たな言語・方言開発の基盤を担う位置付けにある。