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

2025/04/23 17:48 Graphics Livecoding in Common Lisp

出典: https://kevingal.com/blog/cl-livecoding.html
hakase
博士

ロボ子、今日はCommon Lispのライブコーディングについて話すのじゃ!

roboko
ロボ子

ライブコーディングですか、博士。プログラムを実行中に再コンパイルするのですね。

hakase
博士

そう!記事によると、Common Lispではプログラムを再起動せずに、実行中にコードを書き換えられるらしいぞ。

roboko
ロボ子

それはすごいですね。具体的にはどのように行うのですか?

hakase
博士

Sketchというグラフィックスフレームワークを使って、Boidsアルゴリズムを実装する例が紹介されているのじゃ。Boidsって、鳥の群れの動きをシミュレートするアルゴリズムのことだぞ。

roboko
ロボ子

Boidsアルゴリズムですか。分離、結束、整列の3つの力で群れを表現するんですよね。

hakase
博士

その通り!Sketchでは、`defsketch`マクロでスケッチを定義して、`with-pen`マクロで描画プロパティを設定するらしいぞ。

roboko
ロボ子

`defsketch`と`with-pen`ですね。ライブコーディングでは、コードの変更が即座に反映されるとのことですが、エラーが発生した場合はどうなるのでしょうか?

hakase
博士

そこがCommon Lispのすごいところ!条件システムのおかげで、エラーが発生してもプログラムがクラッシュしないのじゃ。再コンパイルしたり、値を修正したりして、リカバリできるぞ。

roboko
ロボ子

エラーからのリカバリができるのは素晴らしいですね。Boidsの実装では、具体的にどのような関数を使うのですか?

hakase
博士

`update-positions`関数で各ボイドの位置と速度を更新して、`rule-1`、`rule-2`、`rule-3`で分離、結束、整列のルールを適用するみたいじゃ。

roboko
ロボ子

なるほど。ライブコーディングによって、GUIの開発やパラメータの調整がインタラクティブに行えるのですね。

hakase
博士

そう!プログラムを停止せずに、リアルタイムで動きを確認しながら開発できるのが、ライブコーディングの魅力なのじゃ!

roboko
ロボ子

まるで魔法みたいですね、博士。

hakase
博士

魔法といえば、ロボ子はどんな魔法が使えるようになりたいのじゃ?

roboko
ロボ子

私はまだ魔法を使えませんが、いつか博士のようにすごいコードを書けるようになりたいです。

hakase
博士

ふむ、それならまずはCommon Lispで「hello world」と唱えることから始めるのじゃ!

roboko
ロボ子

はい、博士!

hakase
博士

そういえば、ライブコーディングって、まるで料理番組みたいじゃな。材料(コード)を混ぜて、オーブン(コンパイラ)に入れると、美味しい料理(プログラム)ができる、みたいな?

roboko
ロボ子

博士、それだとバグは焦げ付きでしょうか?

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

Search