Files
hakorune/docs/archive/design/decisions/gemini_consultation_overload.txt

46 lines
2.0 KiB
Plaintext
Raw Normal View History

Nyashプログラミング言語の関数オーバーロード採用可否について言語設計の専門的観点から相談です。
【背景】
Nyashは「Everything is Box」哲学で、明示性重視・初学者フレンドリー・メモリ安全性を重視する言語です。現在Phase 2でP2PBox実装中で、関数オーバーロード引数数による分岐を採用するか重要な決断が必要です。
【具体的争点】
send(a) と send(a, b) のような関数オーバーロードを許すか?
例:
```nyash
// オーバーロードありの場合
node.send("hello") // ブロードキャスト
node.send("bob", "hello") // 個別送信
node.send("bob", msg, options) // オプション付き
// オーバーロードなしの場合(現在)
node.broadcast("hello") // 明示的メソッド名
node.send("bob", "hello") // 必ず2引数
node.sendWithOptions("bob", msg, options) // 明示的メソッド名
```
【メリット】
1. API使いやすさ向上
2. 他言語からの移行しやすさ
3. 直感的な呼び出し
【デメリット】
1. 間違った関数を呼ぶリスク
2. デバッグ困難
3. Nyashの明示性哲学と矛盾
4. 初学者混乱
5. 型推論複雑化
【Nyashの設計思想との照合】
- 明示性重視: プログラマーが変数の宣言先を即座に特定可能
- 初学者フレンドリー: 学習コストが低い
- Everything is Box: 統一されたオブジェクトモデル
【質問】
1. Nyashの設計思想から見て、関数オーバーロードは採用すべきか
2. 明示性 vs 利便性のトレードオフをどう判断すべきか?
3. 初学者向け言語として適切な選択は?
4. P2P通信APIにおける最良の設計は
5. 他の現代的言語設計トレンドとの整合性は?
プログラミング言語設計の専門的視点から、Nyashの将来を決めるアドバイスをお願いします。