Elixir v1.20リリース:段階的型付き言語に
原題: Elixir v1.20: Now a gradually typed language
なぜ重要か
動的型付き言語への型システム導入は開発効率向上とバグ削減の重要な技術革新であり、関数型プログラミング分野の発展に寄与する。
プログラミング言語Elixirがバージョン1.20をリリースし、段階的型付き言語となった。José Valim氏が6月3日に発表。型注釈なしで型推論と段階的型チェックを実行し、デッドコードや実行時エラーの検証済みバグを報告する。dynamic()型により既存プログラムで効率的にバグを発見し、開発者の負担や偽陽性を極めて低く抑える。
Elixirプロジェクトは2022年に集合論的型システムの追加を発表し、2023年6月には型システム設計に関する論文を発表していた。今回のv1.20では最初の開発マイルストーンが完了し、型注釈を導入せずにすべてのElixirプログラムで型推論と段階的型チェックが実行される。この実装により、実行時に失敗が保証される型違反である「検証済みバグ」とデッドコードを報告できる。
新しい型システムは音響性、段階性、開発者フレンドリーという3つの目標を掲げている。特にdynamic()型は他の段階的型付き言語とは異なり、互換性と型絞り込みという2つの重要な特性を持つ。多くの段階的型システムのany()型が「何でもあり」であるのに対し、Elixirのdynamic()型はより制限的で精密な型情報を提供する。
型システムの開発はCNRSとRemoteの提携により実現し、現在FreShaとTidewaveがスポンサーとなっている。「If T: Benchmark for Type Narrowing」ベンチマークでは13カテゴリ中12カテゴリでテストに合格し、通常のElixirコードから精密な型情報を回復できることが実証された。