diff --git a/README.ja.md b/README.ja.md new file mode 100644 index 00000000..318518a7 --- /dev/null +++ b/README.ja.md @@ -0,0 +1,300 @@ +# 🐱 Nyash プログラミング言語 +**次世代ブラウザーネイティブ開発体験** + +*[🇺🇸 English Version / 英語版はこちら](README.md)* + +[![Build Status](https://img.shields.io/badge/Build-Passing-brightgreen.svg)](#) +[![Everything is Box](https://img.shields.io/badge/Philosophy-Everything%20is%20Box-blue.svg)](#philosophy) +[![WebAssembly](https://img.shields.io/badge/WebAssembly-Ready-orange.svg)](#webassembly) +[![Try Now](https://img.shields.io/badge/Try%20Now-Browser%20Playground-ff6b6b.svg)](https://moe-charm.github.io/nyash/projects/nyash-wasm/nyash_playground.html) +[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](#license) + +--- + +## 🚀 **今すぐNyashを体験!** + +**インストール不要、設定不要 - ブラウザーを開くだけ!** + +👉 **[🎮 Nyashブラウザープレイグラウンド起動](https://moe-charm.github.io/nyash/projects/nyash-wasm/nyash_playground.html)** 👈 + +体験できる機能: +- 🎨 **アーティスト協同制作デモ** - 複数Boxインスタンスの連携 +- ⚡ **非同期計算処理** - シンプルな並列処理 +- 🎮 **Canvas ゲームグラフィック** - ブラウザーでの直接グラフィック描画 +- 🔍 **ライブデバッグ可視化** - プログラムのメモリ状態をリアルタイム表示 + +--- + +## ✨ **Nyashが革命を起こす理由** + +### 🎯 **メモリ安全性の革命** +```nyash +// 従来の言語: 手動メモリ管理、クラッシュ、セキュリティ問題 +// Nyash: Everything is Box - 自動的、安全、エレガント + +static box Main { + init { player, enemies, canvas } + + main() { + me.player = new PlayerBox("勇者", 100) + me.canvas = new WebCanvasBox("game", 800, 600) + + // メモリは自動管理 - クラッシュなし、メモリリークなし! + me.player.render(me.canvas) + return "ゲーム安全実行中!" + } +} +``` + +### 🌐 **ブラウザーファースト設計** +- **ゼロインストール**: WebAssembly経由でWebブラウザーで直接実行 +- **Web API内蔵**: Canvas、DOM、ストレージ - すべてが言語ネイティブ機能 +- **リアルタイム協業**: コードを即座に共有、どこでも実行 +- **モバイル対応**: スマートフォン、タブレット、すべての現代デバイスで動作 + +### 🎨 **創作プログラミングが簡単に** +```nyash +// コードでアートを作る - 自然に! +box Artist { + init { name, color } + + paintMasterpiece(canvas) { + canvas.fillCircle(100, 100, 50, me.color) + canvas.fillText("Art by " + me.name, 10, 200, "24px Arial", me.color) + } +} + +// 複数のアーティストが協力 +picasso = new Artist("ピカソ", "red") +monet = new Artist("モネ", "blue") +// 各Boxが独自の状態と動作を維持! +``` + +### ⚡ **非同期処理の簡潔性** +```nyash +// 複雑さなしの並列処理 +nowait future1 = heavyComputation(10000) +nowait future2 = renderGraphics() + +// 実行中に他の作業を... +setupUI() + +// 準備ができたら結果を取得 +result1 = await future1 +result2 = await future2 +``` + +--- + +## 🏗️ **革命的アーキテクチャ** + +### Everything is Box 哲学 +Nyashのすべての値は **Box** - 統一された、メモリ安全なコンテナです: + +| 従来の言語 | Nyash | +|-----------|-------| +| `int x = 42;` | `x = new IntegerBox(42)` | +| `string name = "Hello";` | `name = new StringBox("Hello")` | +| 複雑なcanvas設定 | `canvas = new WebCanvasBox("game", 800, 600)` | +| 手動メモリ管理 | 自動Boxライフサイクル管理 | + +### Static Box Main パターン +```nyash +// クリーンで予測可能なプログラム構造 +static box Main { + init { database, ui, gameState } // すべてのフィールドを事前宣言 + + main() { + // 論理的順序で初期化 + me.database = new DatabaseBox("save.db") + me.ui = new UIManagerBox() + me.gameState = new GameStateBox() + + // プログラムロジックここに + return runGameLoop() + } +} +``` + +### 視覚的デバッグ統合 +```nyash +debug = new DebugBox() +debug.startTracking() + +player = new PlayerBox("勇者") +debug.trackBox(player, "メインキャラクター") + +// ブラウザーでリアルタイムメモリ可視化! +print(debug.memoryReport()) // ライブ統計、デバッグ地獄なし +``` + +--- + +## 🎮 **創作コーディングに最適** + +### ゲーム開発 +- **内蔵Canvas API**: 外部ライブラリなしでグラフィック +- **入力ハンドリング**: マウス、キーボード、タッチ - すべてネイティブ +- **オーディオサポート**: 音楽と効果音用のSoundBox +- **物理準備済み**: 数学演算最適化 + +### 教育的プログラミング +- **視覚的フィードバック**: コードの効果を即座に確認 +- **メモリ可視化**: プログラムの動作を理解 +- **設定バリアなし**: 学生はブラウザーで即座にコーディング +- **段階的学習**: 簡単なスクリプトから複雑なアプリケーションまで + +### Webアプリケーション +- **直接DOM制御**: WebDisplayBoxでHTML操作 +- **フレームワーク不要**: 言語がネイティブでWeb相互作用を処理 +- **リアルタイム更新**: 変更が即座に反映 +- **クロスプラットフォーム**: 同じコード、どこでも + +--- + +## 📖 **言語の特徴** + +### クリーンで表現力豊かな構文 +```nyash +// 自然なオブジェクト指向プログラミング +box Player { + init { name, health, inventory } + + Player(playerName) { + me.name = playerName + me.health = 100 + me.inventory = new ArrayBox() + } + + takeDamage(amount) { + me.health = me.health - amount + if me.health <= 0 { + me.respawn() + } + } + + respawn() { + me.health = 100 + print(me.name + " がリスポーンしました!") + } +} +``` + +### 強力な演算子 +```nyash +// 明確性のための自然言語演算子 +isAlive = health > 0 and not poisoned +canCast = mana >= spellCost or hasItem("魔法の指輪") +gameOver = playerDead or timeUp + +// 内蔵数学演算 +distance = sqrt((x2 - x1)^2 + (y2 - y1)^2) +angle = atan2(deltaY, deltaX) +``` + +### ジェネリックプログラミング +```nyash +// 型安全なジェネリックコンテナ +box Container { + init { value } + + Container(item) { me.value = item } + getValue() { return me.value } +} + +numbers = new Container(42) +texts = new Container("こんにちは") +``` + +--- + +## 🛠️ **使い始める** + +### ブラウザー開発(推奨) +```bash +# 1. リポジトリクローン +git clone https://github.com/moe-charm/nyash.git +cd nyash + +# 2. WebAssemblyバージョンビルド +cd projects/nyash-wasm +./build.sh + +# 3. ブラウザーでプレイグラウンドを開く +# 任意の現代ブラウザーでnyash_playground.htmlを開く +``` + +### ネイティブ開発 +```bash +# ネイティブバージョンビルド +cargo build --release + +# プログラムをローカルで実行 +./target/release/nyash program.nyash + +# 例を試す +./target/release/nyash test_async_demo.nyash +./target/release/nyash app_dice_rpg.nyash +``` + +--- + +## 🎯 **対象ユーザー** + +- 🎨 **クリエイター**: アーティスト、ゲーム開発者 +- 🎓 **教育者**: プログラミング講師、学生 +- 🌐 **Web開発者**: インタラクティブコンテンツ制作者 +- 🔬 **研究者**: 新しいプログラミングパラダイムの探求者 + +--- + +## 🤝 **貢献** + +Nyashはオープンソースで、貢献を歓迎しています! + +- **Issues**: バグ報告、機能リクエスト +- **Pull Requests**: コード改善、新しい例 +- **ドキュメント**: ガイドと例の改善支援 +- **コミュニティ**: Nyash作品を共有! + +## 📄 **ライセンス** + +MIT ライセンス - 個人および商用利用無料。 + +--- + +## 🔗 **リンク** + +- **[🎮 今すぐ試す - ブラウザープレイグラウンド](https://moe-charm.github.io/nyash/projects/nyash-wasm/nyash_playground.html)** +- **[📚 ドキュメント](docs/)** +- **[🎯 例](examples/)** +- **[💬 コミュニティディスカッション](https://github.com/moe-charm/nyash/discussions)** + +## 👨‍💻 **作者** + +**Moe Charm** - プログラミング言語デザイナー・開発者 +- 🐙 GitHub: [@moe-charm](https://github.com/moe-charm) +- 🐦 Twitter/X: [@CharmNexusCore](https://x.com/CharmNexusCore) +- ☕ 開発サポート: [coff.ee/moecharmde6](http://coff.ee/moecharmde6) + +*AI支援と献身的開発で革新的プログラミング言語を創造 🤖* + +--- + +## 🤖 **プロジェクトのサポート** + +Nyashは最先端のAI協業で開発されています! + +継続的な開発をサポートしたい場合: + +**☕ [開発サポート](http://coff.ee/moecharmde6)** - イノベーションの燃料を! + +*Claude Code による支援 - 高度なAI開発ツールは無料ではありません! 🤖* + +あなたのサポートはプロジェクトの維持、新機能の開発、プログラミング言語設計の境界を押し広げることに役立ちます。すべての貢献が違いを生みます! 🙏 + +--- + +*❤️、🤖 Claude Code、そしてEverything is Box哲学で構築* + +**Nyash - すべての値がBoxであり、すべてのBoxが物語を語る場所。** \ No newline at end of file diff --git a/README.md b/README.md index 77d65c72..42cf9ec4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # 🐱 Nyash Programming Language **Next-Generation Browser-Native Programming Experience** -*革新的プログラミング言語 - ブラウザーで動く新世代開発体験* +*[🇯🇵 日本語版はこちら / Japanese Version](README.ja.md)* [![Build Status](https://img.shields.io/badge/Build-Passing-brightgreen.svg)](#) [![Everything is Box](https://img.shields.io/badge/Philosophy-Everything%20is%20Box-blue.svg)](#philosophy) @@ -239,47 +239,6 @@ cargo build --release --- -## 🌏 **日本語 / Japanese** - -### Nyashとは? -Nyashは「**すべてがBox**」という革新的哲学に基づく次世代プログラミング言語です。 - -**🎯 特徴:** -- **ブラウザーネイティブ**: WebAssemblyで直接実行、インストール不要 -- **メモリ安全性**: Box哲学により、メモリリークやクラッシュを根本的に防止 -- **創作向け設計**: Canvas描画、ゲーム開発、アート制作に最適化 -- **教育フレンドリー**: 視覚的デバッグで学習効果を最大化 - -### Everything is Box哲学の意味 -従来の言語の複雑さを排除し、すべてを統一されたBox概念で表現: - -```nyash -// 🎮 ゲーム開発例 -static box Main { - init { player, enemies, ui } - - main() { - me.player = new PlayerBox("勇者", 100) - me.enemies = new ArrayBox() - me.ui = new WebCanvasBox("game-canvas", 800, 600) - - // すべてがBoxなので一貫した操作 - me.player.moveTo(400, 300) - me.ui.drawPlayer(me.player) - - return "ゲーム開始!" - } -} -``` - -### 対象ユーザー -- 🎨 **クリエイター**: アーティスト、ゲーム開発者 -- 🎓 **教育者**: プログラミング講師、学生 -- 🌐 **Web開発者**: インタラクティブコンテンツ制作者 -- 🔬 **研究者**: 新しいプログラミングパラダイムの探求者 - ---- - ## 🤝 **Contributing** Nyash is open source and welcomes contributions!