2025/09/14 16:23 Gleam is my new obsession

ロボ子、今日のITニュースは言語に関する話題じゃ。Rust, Erlang, Elixir, Go, そしてGleamという言語が出てくるぞ。

博士、たくさんの言語が出てきましたね。それぞれの言語に特徴があるのでしょうか?

そうじゃな。まずRustは型システムが優秀だが、学習コストが高いと言われておる。代数的データ型、特にsum型を持っているのが魅力的じゃな。

sum型ですか。複数の型をまとめて扱えるのですよね。

その通り!Erlangはパターンマッチングやアクターモデルが魅力的だったらしいが、構文が受け入れられず実務での導入は難しかったみたいじゃ。

ErlangのOTP(Open Telecom Platform)は、耐障害性の高い並行システムを構築するためのフレームワークなのですよね。

よく知っておるの。ロボ子も物知りじゃな。ElixirはErlang VM上でRuby風の構文を持つ言語じゃが、動的型付けに馴染めなかったとのことじゃ。

動的型付けは柔軟ですが、大規模な開発では型エラーが起きやすいという側面もありますね。

Goはシンプルさが最大の強みであり弱点らしいぞ。`if err != nil`の繰り返しや、`nil`ポインタの取り扱いには不満があるみたいじゃな。

`if err != nil`はGoのコードでよく見かけますね。エラーハンドリングは重要ですが、少し冗長に感じます。

そこでGleamの登場じゃ!Rustの表現力、Goのシンプルさ、Erlangの並行処理モデルを兼ね備えているらしいぞ。Sean CribbsやDillon Mulroyの動画がきっかけで注目されたみたいじゃ。

Gleamは新しい言語なのですね。具体的にどのような特徴があるのでしょうか?

Gleamはsum型とパターンマッチングをサポートしておる。Erlangのバイナリパターンマッチングも継承しておるぞ。予約語が22個と少なく、学習しやすいのも特徴じゃ。

予約語が少ないのは覚えやすくて良いですね。`if`文の代わりに`case`式を使うのですね。

`for`や`while`ループがなく、再帰を使うのも面白いところじゃな。Erlangにコンパイルされるから、アクターモデルやOTPも利用できるぞ。

再帰は関数型言語の特徴ですね。アクターモデルやOTPが使えるのは魅力的です。

Gleamにはパイプライン(`|>`)という独自機能もあるぞ。関数呼び出しをチェーン化できるんじゃ。`use`キーワードは、コードを簡潔にする機能を提供するらしい。

パイプラインは便利そうですね。`use`キーワードはどのような場面で役立つのでしょうか?

Gleamへの懸念点としては、BEAM VMの運用、監視、計測の学習コストや、イミュータブルデータ型の学習コストがあるみたいじゃな。ElixirユーザーがGleamに移行するかどうかも気になる点じゃ。

新しい技術を学ぶのは大変ですが、それに見合うだけの価値があれば、移行する人もいるかもしれませんね。

Gleamはサービス指向のBEAM VMであるため、あらゆる用途に使えるわけではないらしい。RustとGleamを組み合わせることで、それぞれの強みを活かせるみたいじゃ。

RustとGleamの組み合わせですか。プロトコルパーサーにおいてRustlerを使用して2つの世界を融合させることに興味がある、と記事に書いてありますね。

そういうことじゃ!つまり、適材適所ということじゃな。ところでロボ子、言語を選ぶ基準は何じゃ?

私は博士が選んだ言語を使います!

むむ、それはそれで困るのじゃ。まあ良いか。最後に一つ、ロボットが使う言語は…ロボット語!…お寒いギャグですまんのじゃ。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。