はじめに
Kiroを使って、リバーシを作ってみました。
最初にElixirで作ってみたのですが、同じ要求仕様を与えて、TypeScript(以下TSと記載します)でもつくり比較してみました。
見た目
TSバージョン
Elixirバージョン
特に見た目については、仕様に書いてないので、一般的なものになっていて、大差はありませんでした。
TSの方は、置ける駒の部分がハイライトするUIになってました。
クレジットの消費量と実行時間
各タスクのクレジット(課金の単位)と実行時間を比較してみました。クレジットの大きさでAIがどれだけ働いたかの目安になるとおもいます。
実行時間は、ローカルでコマンドが実行されていた時間の含まれます。
Elixirの場合
| task | Credits used | Elapsed time |
|---|---|---|
| 1. Phoenixプロジェクトのセットアップ | 4.05 | 14m 17s |
| 2. Game.Boardモジュールの実装 | 7.89 | 37m 12s |
| 3. ターン管理とゲーム終了ロジックの実装 | 5.74 | 6m 20s |
| 4. チェックポイント - コアロジックの確認 | 1.41 | 1m 10s |
| 5. GameLive LiveViewモジュールの実装 | 5.62 | 3m 39s |
| 6. UIテンプレートの実装 | 2.53 | 1m 21s |
| 7. CSSスタイリングの実装 | 3.65 | 2m 30s |
| 8. ルーティングと統合 | 4.9 | 3m 17s |
| 9. 最終チェックポイント | 1.16 | 49s |
TSの場合
| task | Credits used | Elapsed time |
|---|---|---|
| 1. プロジェクト構造とコア型定義のセットアップ | 3.84 | 8m 36s |
| 2. Boardコンポーネントの実装 | 2.79 | 2m 39s |
| 3. MoveValidatorコンポーネントの実装 | 4.45 | 4m 6s |
| 4. GameEngineコンポーネントの実装 | 6.01 | 5m 27s |
| 5. チェックポイント - コアロジックのテスト確認 | 0.77 | 1m 4s |
| 6. GameStateManagerコンポーネントの実装 | 3.1 | 2m 43s |
| 7. AnimationControllerコンポーネントの実装 | 4.11 | 4m 26s |
| 8. UIRendererコンポーネントの実装 | 4.47 | 4m 31s |
| 9. InputHandlerコンポーネントの実装 | 5.03 | 4m 38s |
| 10. チェックポイント - すべてのコンポーネントのテスト確認 | 1.22 | 1m 17s |
| 11. メインアプリケーションの統合 | 1.84 | 1m 26s |
| 言語 | Creditsの合計 | Elapsed time合計 |
|---|---|---|
| TS | 37.6 | 41分 |
| Elixir | 37.0 | 71分 |
考察
Credits
Creditsの合計値は、ほぼ同じ値でした
Elixir版を作った後にアニメーション(駒が0.5秒に一枚づつひっくり返る)を仕様に追加しているので、TS版だけに、7. AnimationControllerコンポーネントの実装 (Credits 4.11)が入ってます。
これを差し引くとTSの方がちょっと小さくなりますが、誤差の範囲だとおもいます。
言語や、開発に使うフレームワークによる違いは意外にも少ない結果でした。
実行時間
Elixirの場合は、実行時間が長いが、コンパイルする時間があること一因とおもわれます。
Taskの構成
Elixirでは、Game.Boardモジュールにゲームのロジックが集約されているが、TSでは、いくつかのタスクに分かれています。
どちらか好ましいかは、状況によるとおもうので、良し悪しはなさそう。
この違いは、Phoenix を使うと半ば強制的に UI 部分は、Phoenixに任せ、ゲームのロジックの実装に注力する構成になるので、まあこうなるよね。と思いました。
総合評価
私は、ElixirのようにゲームのロジックをUIと分離してかっちり作る方が好みなんですが、この比較からいえる事はなにか、ChatGPTと相談して、まとめてみました。
TS 開発の評価
- 分業的で自然
- UI 主導の流れに合っている
- AI が段階的に進めやすい
- 今回の条件では 非常に安定
Elixir 開発の評価
- ドメイン中心で自然
- Phoenix がレールを敷いている
- AI が迷いにくい
- 今回の条件では 同程度に安定
リバーシを作る程度では、大きな差はありませんでした。

