それが SQL Server Quality

SQL Server 2005 Yukon が CRL を In Process に host する」,ということが CLR にとってどれほど重要な意味を持っていたのかは,CLR 2.0 になって新しく追加された機能が如実に物語っています.CLR という基盤的な製品が特定領域の一製品である SQL Server に配慮しすぎることは微妙な問題かもしれませんが,以下のような見方も出来ます.

  • SQL Server の要求する「スケーラビリティ」や「安定性」,「信頼性」を達成するために必要な改良である
  • 追加された機能は等しく全てのアプリケーションに公開される

SQL Server の要求するクオリティーを CLR が達成したこと自体は全てのアプリケーションにとってもメリットとなりうることです.敢えて言うならば,SQL Server が必要な機能拡張が優先され,その他の機能拡張は後回しにされた疑いが残りますが,まあこれについては主張すべき時に主張すべきということで今回は特に扱いません.
さて,国内コミュニティでも .NET 環境のスレッドを安全に停止させる問題やリソースの確定的破棄について議論が行われてきたのをいくつか見ましたが,議論が「難しい問題です」という一言に集約されてしまうことも少なくありません*1.しかし,"SQL Server Quality" はそのような曖昧な状況を許しませんでした.最初の .NET Framework がリリースされて 3 年,徐々に明らかになってきた問題点により醸成された緊張は,CLR 2.0 で一旦の解放をみることになるかと思います.

*1:海外に目を向ければ,http://blogs.msdn.com/cbrumme/archive/2003/06/23/51482.aspx が書かれたのが 2003 年というのもすごいですが,Slashdot 本家でこの記事が引用されて議論が行われるのも国内ではあまり考えられない世界に見えたり見えなかったり