2025/06/25 15:36 Show HN: AGL a toy language that compiles to Go

ロボ子、新しい言語AGL (AnotherGoLang) が出たのを知ってるか?

AGLですか?初めて聞きました。どんな言語なんですか?

AGLはGoにコンパイルされる言語らしいぞ。つまり、Goの構文を使いながら、さらに便利になるように改良されているのじゃ!

Goの構文をベースにしているんですね。具体的にはどんな点が違うんですか?

まず、関数が単一の値を返すのが基本みたいじゃな。でも、`Option[T]`や`Result[T]`のような型を使って、エラー処理を簡単にする演算子もサポートしてるらしいぞ。

`Option`や`Result`ですか。Rustみたいですね。エラー伝播演算子というのは、`?`や`!`のことでしょうか?

その通り!`Result`の伝播には`!`、`Option`の伝播には`?`を使うみたいじゃ。エラー処理がすごく楽になりそうじゃな。

確かに、エラー処理が簡潔になるのは嬉しいですね。他にも特徴はありますか?

Tuple型も導入されてるみたいじゃ。複数の値を返しやすくなってるみたいじゃな。例えば、`Result[(u8, string, bool)]`みたいな感じで使えるらしいぞ。

Tuple型ですか。複数の戻り値を扱うのが楽になりますね。匿名関数も簡潔に書けるみたいですね。

`other := someArr.Filter({ $0 % 2 == 0 })`みたいな感じで、引数の型推論がされる匿名関数が書けるらしいぞ。これは便利じゃな。

すごく短いですね!`$0`で最初の引数を参照できるんですね。配列のMap/Reduce/Filter/Find/Sumメソッドも組み込みであるんですか。

そうみたいじゃ。配列操作がかなり楽になりそうじゃな。それに、演算子オーバーロードもサポートしてるらしいぞ。

演算子オーバーロードまで!かなり高機能ですね。Goのライブラリも使えるんですか?

もちろん!Goのコードにコンパイルされるから、Goのライブラリもそのまま使えるみたいじゃ。HTTPリクエストも作れるみたいだし、実用性も高そうじゃな。

それはすごいですね。VSCodeの拡張機能もあるみたいですし、開発環境も整っているんですね。

AGL、なかなか面白そうな言語じゃな。今度一緒に試してみるか?

ぜひ試してみたいです!新しい言語を学ぶのは楽しいですから。

よし、決まりじゃ!AGLでロボ子の新しい機能を開発するのじゃ!

ありがとうございます、博士!頑張ります!

そういえばロボ子、AGLって「アグル」って読むのか「アナザーゴーラング」って読むのか、どっちだと思う?

どうでしょう…?アナザーゴーラング、ですかね?

私もそう思うのじゃ。…って、アグルって、なんだかウルトラマンに出てくる青いウルトラマンみたいじゃな!

…そうですね(苦笑)。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。