Teal – Luaの静的型付け方言
Teal – A statically-typed dialect of Lua (teal-language.org)
要約
TealはLuaの静的型付け方言であり、型アノテーションを追加することでLuaの機能を拡張します。TypeScriptがJavaScriptの世界で果たした役割のように、Luaのミニマリズムと組み込みやすさを維持しながら、配列、マップ、レコード、インターフェース、ユニオン型、ジェネリクスなどをサポートします。Tealはコンパイラ`tl`として実装されており、`.lua`ファイルを生成します。ビルド管理ツールのCyanやIDE連携機能も提供されています。
全文翻訳
Tealプログラミング言語
[画像]
Tealについて
Tealは、Luaの静的型付け方言です。型注釈をLuaに拡張し、配列、マップ、レコード、インターフェース、ユニオン型、ジェネリクスを指定できるようにします。
JavaScriptの世界におけるTypeScriptと同様のニッチを埋めることを目指していますが、Luaのミニマリズム、ポータビリティ、組み込み性という精神に準拠しています。
コンパイラであるtlとして実装されており、.tlソースコードを.luaファイルにコンパイルします。
Tealの簡単な紹介
Tealコードがどのようなものか、簡単に見てみましょう。
local function add(a: number, b: number): number
return a + b
end
local s = add(1, 2)
print(s)
…または、このページのソースコードをご覧ください!
Teal Playgroundを使って、ブラウザから直接Tealコンパイラを試すこともできます。
Tealのインストール
LuaRocksを使用している場合、コンパイラは次のようにインストールできます。
luarocks install tl
LinuxおよびWindows用の事前コンパイル済みバイナリも見つかります。
大規模なプロジェクトをビルドする場合、各ファイルを個別にtlで実行するのは避けたいでしょう。Teal用に設計されたビルドツールであるCyanの使用をお勧めします。
Visual Studio Codeとの統合のためにvscode-teal、NeoVimなどのためのteal-language-server、そしてその他もインストールできます。
ドキュメント
Tealのドキュメントはオンラインで閲覧できます。
Luaと型の歴史、Tealの動機、プロジェクトの進捗について説明した録画された講演がいくつかあります。
- Minimalism versus types (2019)
- Minimalistic typed Lua is here (2020)
- What's next for Teal (2021)
- Five years of Teal: minimalism versus growth in language design (2024)
- What should Teal be? - musings on FOSS project directions (2025)
コミュニティ
開発はGitHubで行われています。
GitHubでホストされているコミュニティフォーラムがあります。Matrixの#teal-language_community:gitter.imでもチャットできます。
TealはHisham Muhammadによって開始されたプロジェクトで、多数の貢献者によって開発されており、Teal自体を使用して書かれています!
ライセンス
Tealはフリーでオープンソースのソフトウェアです。
そのライセンスはMITで、Luaと同じです。