46 lines
2.0 KiB
Plaintext
46 lines
2.0 KiB
Plaintext
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の将来を決めるアドバイスをお願いします。 |