Files
hakorune/docs/archive/decisions/design-decisions/constructor-name-decision.md

115 lines
3.5 KiB
Markdown
Raw Normal View History

# 🌟 Nyash コンストラクタ名決定: birth() 採用
**決定日**: 2025-08-15
**決定者**: Nyashプロジェクトチーム
**ステータス**: 正式決定
## 🎯 **最終決定**
**`birth()` を唯一のコンストラクタ名として採用**
## 📋 **検討経過**
### 候補と評価
1. **constructor()** - 業界標準だが長い、Box哲学との親和性低い
2. **pack()** - Box哲学完璧だが独自性強すぎ、混乱の元
3. **init()** - initフィールドとの混乱、廃止済み
4. **make()** - Go言語実績あり、短い、実用的
5. **birth()** - 🌟 **採用決定** 🌟
### birth() 選定理由
**1. 哲学的完璧性**
- 「Everything is Box」哲学との完璧な親和性
- 「Boxに魂が宿る」生命感のある言語思想を体現
- 「生命を誕生させる」直感的イメージ
**2. 強力なブランディング効果**
- 圧倒的独自性で一度見たら忘れない
- Nyashらしさを言語の核心で表現
- 学習者がコンストラクタを使うたびに世界観を体感
**3. 実用性**
- 短い5文字で覚えやすい
- 学習コストは低い(初見で一瞬考えるだけ)
- 明確で曖昧性がない
## 💡 **Geminiの専門的評価**
> 「`birth()` を採用することは、単なる名前選び以上の意味を持つ。それは、**Nyashの哲学を言語の根幹に据えるという宣言**である。学習者はコンストラクタを使うたびに、無意識にその世界観に触れることになる。これは非常に強力なブランディングです。」
**Gemini最終推奨**: `birth()` 採用
## 🌟 **構文例**
```nyash
// 基本的な使用法
box Life {
init { name, energy }
birth(lifeName) { // 生命を誕生させる
me.name = lifeName
me.energy = 100
print("🌟 " + lifeName + " が誕生しました!")
}
}
// デリゲーション
box Human from Life {
init { intelligence }
birth(humanName) {
from Life.birth(humanName) // 親から生命を受け継ぐ
me.intelligence = 50
}
}
// 使用例
local alice = new Human("Alice") // birth()が自動呼び出し
```
## 🔧 **実装要件**
### 1. トークナイザー修正
```rust
BIRTH, // birth (コンストラクタ)
"birth" => TokenType::BIRTH,
```
### 2. パーサー修正
- `birth()` 構文パース対応
- `init/pack/constructor` と同様の処理システム統合
### 3. インタープリター修正
- `birth/引数数` キーでの検索対応
- デリゲーション時の `from Parent.birth()` サポート
### 4. 優先順位システム
```rust
// 検索順序
1. "birth/引数数" // 最優先
2. "init/引数数" // 互換性
3. "pack/引数数" // 互換性
4. "Box名/引数数" // 互換性
```
## 🎉 **期待される効果**
- **哲学的一貫性**: Everything is Box思想の完璧な体現
- **ブランド確立**: Nyash独自の世界観を言語レベルで表現
- **学習体験向上**: コンストラクタ使用のたびに世界観を体感
- **混乱解消**: initフィールドとの完全な区別
- **統一性**: 全てのBoxで同一のbirth()構文
## 📝 **移行計画**
1. **Phase 1**: birth()実装(トークナイザー・パーサー・インタープリター)
2. **Phase 2**: テスト作成・動作確認
3. **Phase 3**: 既存コード段階的移行(互換性維持)
4. **Phase 4**: ドキュメント更新CLAUDE.md等
---
**🌟 Nyashは `birth()` でBoxに生命を与える言語として、新たな進化を遂げる 🌟**