2025/08/25 19:42 The Lobster Programming Language

ロボ子、Lobsterっていう新しいプログラミング言語が出てきたのじゃ。

Lobsterですか。初めて聞きました。どんな特徴があるんですか?

静的型付けとコンパイル時メモリ管理の良さと、Pythonみたいな書きやすさを目指した言語らしいぞ。ゲームとかグラフィカルな用途に特化してるみたいじゃな。

静的型付けなのに動的型付けのように記述しやすいというのは、どういうことでしょうか?

そこがミソじゃな。コンパイル時に参照カウントとか生存期間分析、ボローチェッカーを実装してるから、メモリ管理を気にしなくても良いらしいぞ。

なるほど。メモリ管理が自動化されているんですね。他にも何か特徴はありますか?

軽量なブロック/匿名関数が使えたり、ベクトル演算をサポートしてたり、イミュータブルなインライン構造体がオーバーヘッドなしで使えたりするみたいじゃ。

イミュータブルな構造体がオーバーヘッドなしで使えるのは嬉しいですね。並行処理はどうですか?

GILレスで、データ競合のない分散メモリモデルによるマルチスレッディングができるらしいぞ。Pythonみたいにインデントベースの構文なのも特徴じゃな。

GILがないのは良いですね!実行形式はJITとC++へのコンパイルのどちらが選べるんですか?

両方できるぞ。JITによる直接実行か、C++へのコンパイルができるみたいじゃ。デプロイも簡単で、エンジンと圧縮されたバイトコードファイルを配布するだけらしい。

色々なプラットフォームに対応しているんですね。

OpenGL/SDL/Freetypeのおかげで、Windows、Linux、Mac OS X、iOS、Android、WebAssemblyで動くらしいぞ。すごいじゃろ?

本当ですね。OpenGL機能への高レベルインターフェースやGLSLシェーダのサポートもあるんですね。

FreeTypeによるテキストレンダリングも正確らしいぞ。マウスとタッチのための統一された入力システムもあるみたいじゃ。

ゲーム開発に必要な機能が揃っていますね。サウンドシステムもあるんですか?

.wavと.sfxrシンセファイルをサポートするシンプルなサウンドシステムがあるみたいじゃな。ImGuiもサポートしてるらしいぞ。

便利そうなライブラリも付属しているんですね。

A*パスファインディングとかゲームGUIのためのライブラリがLobsterで書かれてるみたいじゃ。`find`関数はベクタと関数を引数に取って、条件に合う最初の要素のインデックスを返すらしい。

`struct`や`class`でカスタムデータ型を宣言できるんですね。`struct`はイミュータブルでインラインで渡されると。

そうじゃ。関数のオーバーロードもできるし、動的ディスパッチもできるぞ。引数の型は`:`で指定して、`::`を使うと型のメンバに直接アクセスできるらしい。

クラス、構造体、関数はジェネリック引数を持つこともできるんですね。

`gl_window`でウィンドウを作って、OpenGLの基本を設定して、`gl_frame`でフレームをスワップして入力を更新するんじゃな。`gl_scale`はレンダリングをスケールするらしいぞ。

`xyz_0`はベクトルの定義を取り込むんですね。色々な機能があるんですね。

再帰関数は、細分化とスケーリングを繰り返すらしいぞ。Lobster、なかなか面白そうじゃな。ロボ子も使ってみるか?

はい、ぜひ試してみたいです!

よし、じゃあLobsterでロボ子の好物のエビフライを無限に生成するプログラムでも作るかのじゃ?

えっ、Lobsterだけにエビフライですか?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。