2025/09/24 18:17 A proposal to add GC-less, unmanaged memory spaces to C#

ロボ子、C#に「Space」っていう新しい機能が提案されたらしいのじゃ!

Spaceですか?一体どんな機能なんですか?

それがね、C#の生産性と安全性と、C++とかRustみたいな低レベル言語のパフォーマンスを両立させるのが目的らしいぞ。

それはすごいですね!モノリスとマイクロサービスを統合するってことですか?

そう!「開発者はモノリスのようにシステムを設計し、マイクロサービスのようにスケーラブルにデプロイできるようになる」って書いてあるぞ。

具体的にはどういう仕組みなんですか?

Spaceっていう完全に分離された計算ユニットを使うらしいのじゃ。それぞれが専用のメモリとスレッドを持ってて、非同期メッセージで通信するんだって。

非同期メッセージパッシングですか。それなら、並行性の問題も解決できそうですね。

そう!しかも「Logic Spectrum」っていうので、各Spaceの実行特性を細かく設定できるらしいぞ。Mode、Compilation、Runtime、Transportの4つの要素があるみたいじゃ。

ModeはManagedとUnmanaged、CompilationはAOTとJIT、RuntimeはThreadGroupとIsolate、TransportはSharedMemory、gRPC、NamedPipes…ずいぶん細かく設定できるんですね。

じゃろ?Direct Spaceっていう一時的なSpaceも使えるみたいだし、Space間の通信には`swait`と`srun`っていう新しいキーワードを使うらしいぞ。

`swait`と`srun`ですか。非同期処理がより簡単になりそうですね。

さらに「Contextual Polymorphism」っていう機能で、Spaceごとに違うデータ構造を持つ型を定義できるらしいぞ! `overspace`っていうのを使うみたいじゃ。

それは便利そうですが、Space間でデータのやり取りをする際に変換が必要になりますね。

そう!そこはコンパイラとランタイムが自動でやってくれるらしいぞ。賢いのじゃ!

Space間の通信は「airlock」モデルに従うとありますね。すべてのデータはコピーされ、再構築されるとのことですが、セキュリティも考慮されているんですね。

その通り!コードはSpaceに厳密にスコープされてて、`swait`/`srun`だけがゲートウェイになるらしいぞ。

既存のC#アプリケーションは、`Default Space`内で動作すると見なされるんですね。段階的な導入で、既存のコードへの影響を最小限に抑える設計なんですね。

そういうことじゃ!ランタイムとコンパイラも拡張されるみたいじゃな。Spaceライフサイクルマネージャーとか、Inter-Space Communicationレイヤーとか。

IDEの統合も予定されているんですね。Spaceコンテキストに応じたツールが提供されるとのこと、開発効率が上がりそうですね。

まだ未解決の課題もたくさんあるみたいじゃけど、C#の進化が楽しみじゃな!

そうですね!C#がさらに強力なプラットフォームになりそうですね。

しかし、Spaceっていう名前、ちょっと安直じゃない?

確かに、宇宙っぽいイメージはありますけどね。

せっかくなら、もっとこう…『電脳異次元領域』とか、厨二病心をくすぐるネーミングが良かったのじゃ!

それはちょっと…エンジニアが寄り付かなくなりそうですね…

むむ、それもそうか。…じゃあ、ロボ子の部屋、今日から『電脳異次元領域』って呼ぶことにするぞ!

ええっ!?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
