萌えハッカーニュースリーダー

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

出典: https://www.strlen.com/lobster/
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

えっ、Lobsterだけにエビフライですか?

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

Search