読者です 読者をやめる 読者になる 読者になる

Nullable 2005 (2)

.NET

Nullable が急遽 C# 2.0 に追加されることが発表されて一年ちょっとですが,ここに来ての仕様変更の発表とどうもドタバタ感が否めません.WhidbeyYukon が同時リリースを目指したからこそ時間がひねり出せたようにも見えます.これがもし「Visual Studio 2005 はいらないから .NET Framework 2.0 と C# 2.0 だけ先にリリースして」いたとたら,我々の居る2005年8月とは異なる世界の Nullable になっていたかもしれませんね.
さて,一年ぐらい前の Atsushi Eno さんの記事(id:atsushieno:20040822)で言及されているように,Nullable の boxing についてはその発表時から指摘が入っていたようです.
http://blogs.msdn.com/ericgu/archive/2004/05/27/143221.aspx#143264
http://blogs.msdn.com/ericgu/archive/2004/05/27/143221.aspx#173670
そのままコメント欄を読んでいくと,null propagation 絡みで Haskell の Maybe を挙げる人も.
http://blogs.msdn.com/ericgu/archive/2004/05/27/143221.aspx#143602
や Spec# では既に Non-Null Type が導入されていますが,その流れで C# 3.0 にも Non-Null Type が導入されるとすれば,C# 3.0 の登場によってもう一段階の整理されるのかもしれませんね.現在のように参照型が最初から Null を許容のではなく,Non-Null Type な参照型から Nullable な参照型を生成するようにした方が素直に見えます.
今回,波村さんは「(具体的にはまだ話せないけど)C# 3.0 にはかなり期待していいです」と言われていましたが,今年9月中旬に開催される PDC 2005 で具体的な発表が行われた後には,色々な方が NDA の縛りから解放されて活発な議論が行われることかと思います.C# 2.0 がまだリリースもされていないうちから C# 3.0 が盛り上がるというのもなんだか変な話ですけどね*1

*1:このように数年ごとに言語が変わっていくことに疑問を抱くのはある種正常な感覚だと思いますが,Microsoft は一方で Domain Specific Language (DSL) 方面でも攻勢を強めていて,うまい二方面作戦(包囲作戦?)だなぁと.