2025-09-01 23:44:34 +09:00
|
|
|
|
# Phase 12: Nyashコード共有エコシステム - Everything is Box の実現
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
## 🎯 重要な変更 (2025-09-01)
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
Phase 12の議論とビルトインBox廃止により、プラグインシステムが進化:
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
**新しい3層プラグインシステムが確立されました!**
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
|
|
|
|
|
```nyash
|
2025-09-01 23:44:34 +09:00
|
|
|
|
# Nyashスクリプトプラグイン(ユーザー定義Box)
|
|
|
|
|
|
box DataProcessor {
|
|
|
|
|
|
init {
|
|
|
|
|
|
me.file = new FileBox() # C ABIプラグイン使用
|
|
|
|
|
|
me.math = new MathBox() # C ABIプラグイン使用
|
|
|
|
|
|
me.cache = new MapBox() # これもC ABIプラグイン(ビルトイン廃止)
|
2025-08-30 22:52:16 +09:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
process(data) {
|
|
|
|
|
|
local result = me.math.sin(data)
|
|
|
|
|
|
me.file.write("log.txt", result.toString())
|
2025-08-30 22:52:16 +09:00
|
|
|
|
return result
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
# 使用例
|
|
|
|
|
|
local processor = new DataProcessor()
|
|
|
|
|
|
processor.process(3.14) # すべてプラグインで動作!
|
|
|
|
|
|
```
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
## 📝 なぜ誤解が生まれたのか
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
「プラグイン」という言葉から、特別な仕組みが必要だと考えてしまいましたが、Nyashの「Everything is Box」哲学により、ユーザー定義Boxこそが最高のプラグインシステムでした。
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
詳細な分析:[なぜ天才AIたちは間違えたのか](./WHY-AIS-FAILED.md)
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
## 🚀 Phase 12の真の価値:コード共有エコシステム
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
### 本当に必要なもの
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
1. **export/import構文**
|
|
|
|
|
|
```nyash
|
|
|
|
|
|
# math_utils.ny
|
|
|
|
|
|
export box MathUtils {
|
|
|
|
|
|
factorial(n) { ... }
|
|
|
|
|
|
fibonacci(n) { ... }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# main.ny
|
|
|
|
|
|
import { MathUtils } from "math_utils.ny"
|
|
|
|
|
|
local utils = new MathUtils()
|
|
|
|
|
|
```
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
2. **パッケージマネージャー**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
nyash install awesome-math-utils
|
|
|
|
|
|
nyash publish my-cool-box
|
|
|
|
|
|
```
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
3. **ドキュメント生成**
|
|
|
|
|
|
```nyash
|
|
|
|
|
|
# @doc 素晴らしい数学ユーティリティ
|
|
|
|
|
|
# @param n 計算したい数値
|
|
|
|
|
|
# @return 階乗の結果
|
|
|
|
|
|
export box MathUtils { ... }
|
|
|
|
|
|
```
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
## 📊 新しい3層プラグインシステム
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
```
|
|
|
|
|
|
Nyashエコシステム(ビルトインBox廃止後):
|
|
|
|
|
|
├── Nyashスクリプトプラグイン(ユーザー定義Box)← .nyashファイル
|
|
|
|
|
|
├── C ABIプラグイン(既存のまま使用)← シンプル・高速・安定
|
|
|
|
|
|
└── Nyash ABIプラグイン(必要時のみ)← 言語間相互運用・将来拡張
|
|
|
|
|
|
└── MIR命令は増やさない(BoxCallにabi_hint追加のみ)
|
|
|
|
|
|
```
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
### プラグイン選択の指針
|
|
|
|
|
|
- **C ABIで済むなら、C ABIを使う**(シンプルイズベスト)
|
|
|
|
|
|
- Nyash ABIは以下の場合のみ:
|
|
|
|
|
|
- 他言語(Python/Go等)からの呼び出し
|
|
|
|
|
|
- 複雑な型の相互運用が必要
|
|
|
|
|
|
- 将来の拡張性を重視する場合
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
## 🛣️ 実装ロードマップ(修正版)
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
### Phase 12.1: export/import構文(2週間)
|
|
|
|
|
|
- [ ] exportキーワードのパーサー実装
|
|
|
|
|
|
- [ ] importステートメントの実装
|
|
|
|
|
|
- [ ] モジュール解決システム
|
|
|
|
|
|
- 📄 **[詳細仕様書](./export-import-spec.md)**
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
### Phase 12.2: パッケージ管理(3週間)
|
|
|
|
|
|
- [ ] nyash.tomlのdependencies対応
|
|
|
|
|
|
- [ ] 中央リポジトリ設計
|
|
|
|
|
|
- [ ] CLIツール(install/publish)
|
|
|
|
|
|
- 📄 **[パッケージマネージャー設計書](./package-manager-design.md)**
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
2025-09-01 23:44:34 +09:00
|
|
|
|
### Phase 12.3: 開発者体験向上(継続的)
|
|
|
|
|
|
- [ ] ドキュメント生成ツール
|
|
|
|
|
|
- [ ] VSCode拡張(補完・定義ジャンプ)
|
|
|
|
|
|
- [ ] サンプルパッケージ作成
|
2025-08-30 22:52:16 +09:00
|
|
|
|
|
|
|
|
|
|
---
|
2025-09-01 23:44:34 +09:00
|
|
|
|
|
|
|
|
|
|
### 🗄️ 議論の過程
|
|
|
|
|
|
|
|
|
|
|
|
AIたちがなぜ複雑な解決策を提案したのか、その議論の過程は `archive/` ディレクトリに保存されています。良い教訓として残しておきます。
|