
2026/10/17 6:07
テール - Lua の静的型付け拡張言語
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Teal は、配列、マップ、レコード、インターフェース、ユニオン型、ジェネリクスといった型注釈を追加しつつ、Lua のミニマリズム、ポータビリティ、組み込み可能性を保持した、現代の静的型付け Lua 方言です。TypeScript に似たプロジェクトとして Lua エコシステム向けに設計されており、開発者が Lua の核心的な強みを損なうことなくコードベースを強化することを可能にします。
tl コンパイラは .tl ソースファイルを標準の .lua に変換し、Luarocks や Visual Studio Code、NeoVim などのエディタサポートといった既存のツールチェーンとのシームレスな統合を確保します。インストールは luarocks install tl を用いて可能であり、Linux および Windows 向けのプリコンパイル済みバイナリも利用可能です。より大規模なプロジェクトでは、各ファイルを個別にコンパイルする必要のない構築ツール Cyan の使用が推奨されます。文書化、オンライントーク(2019 年–2025 年)、コミュニティフォーラム、Matrix チャンネルがコントリビューター向けのリソースを提供しており、開発は GitHub で行われ、プロジェクトは Teal 自体でホストされています。Hisham Muhammad が開始し、Lua と同じ許可的である MIT ライセンスの下でリリースされた Teal は、動的な柔軟性と静的な安全性を橋渡しする、真面目な Lua アプリケーションのための堅牢なニッチを提供します。本文
Teal: 静的型付け Lua のための言語とエコシステム
Teal は、既存の Lua を拡張した動的型付けから静的型付けへ移行するためのダイアレクトです。インターフェースやユニオンタイプ、ジェネリクスなどの高度な機能に加えつつ、Lua 本来のシンプルさと移植性を維持しています。JavaScript 圏での TypeScript に似た役割を果たします。
コンパイラは
tl という名前で実装されており、以下の処理を行います:
- ソースコード形式:
.tl - コンパイル先形式:
.lua
コード例と試行方法
型付けされた関数の基本的な記法は以下の通りです:
local function add(a: number, b: number): number return a + b end local s = add(1, 2) print(s)
- ブラウザで直接試す: Teal プレイグラウンドを利用可能。
- ソースコード確認: この記事の GitHub リポジトリなどで確認できます。
インストール方法とビルドツール
コンパイラのインストール
LuaRocks を利用している場合:
luarocks install tl
Linux と Windows 用の事前コンパイル済みバイナリも公式に提供されています。
ビルドツールの活用(Cyan)
大規模プロジェクトでは、各ファイルを個別に処理するのは非効率です。そのような場合は Cyan というビルドツールの利用が強く推奨されます。
エコシステムツール
以下のような開発環境統合用の拡張機能や言語サーバーも入手可能です:
- Visual Studio Code 統合用:
vscode-teal - NeoVim 用言語サーバー:
teal-language-server
ドキュメントと講演記録
公式ドキュメントを参照すると、以下のトピックについて詳しく学ぶことができます:
- Lua と型付けの歴史的背景
- Teal を採用した動機
- プロジェクトの進捗状況
過去の録画講演による技術的な考察は以下にあります:
- 「ミニマリズムと型の対立」(2019)
- 「ミニマルで型付きの Lua がついに登場」(2020)
- 「Teal の今後」(2021)
- 「五年目の Teal:言語設計におけるミニマリズムと成長」(2024)
- 「Teal は何であるべきか?FOSS プロジェクトの方向性に関する考察」(2025)
コミュニティと開発状況
プロジェクトは以下の場所で活発に議論・進められています:
- GitHub: コードリポジトリおよびコミュニティフォーラム。
- Matrix: チャンネル
での対話が可能。#teal-language_community:gitter.im
Hisham Muhammad氏が立ち上げたこのプロジェクトは、現在多くの貢献者が参加し活発に開発が進められています。興味深いことに、コンパイラ本体のコードも Teal で書かれています。
ライセンス
Teal は完全なオープンソースソフトウェアであり、以下の条件で利用可能です:
- ライセンス: MIT ライセンス(Lua と同一)
- 費用: 無料