BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Microsoft .NETプログラミング言語の未来

Microsoft .NETプログラミング言語の未来

ブックマーク

具体的に.NETプラットフォームを対象としているプログラミング言語での最新の傾向を見てみると、いくつかのことが現れている。PDC2008では、.NETやプログラミング言語にまつわるMicrosoftの考えが、多く明らかにされた。.NETの今後を観察するのが興味深くなった。

.NETプラットフォームは、Common Language Runtime(CLR)(リンク)上で実行するC#やVB.NETで始まった。CLRは、Common Language Infrastructure (CLI)(リンク)スペックの実装である。CLIスペックは、新しい言語を作成したいと考えている人なら誰でも、実装することができる。それにより、デベロッパ は、幅広いプログラミング言語から選択することが可能になる。2008年12月10日、MicrosoftはCLR上に構築されるDynamic Language Runtime (DLR)(リンク)のバージョン0.9をリリースした。.NETプラットフォームでも言語デベロッパが動的言語を作成することができる。

こうした言語によっては、Microsoft、C#、VB.NETおよびF#によって開発、維持されるものもある。しかしそれらのほとんどは、オープンソースプロジェクトとしてコミュニティで作成されている。よく知られたオープンソース言語には、IronPython(リンク)、IronRuby(リンク)(ど ちらも動的)およびBoo(リンク)(静的)がある。最初の2つは、オープンソースプロジェクトとして積極的にMicrosoftで開発されている。既存の PythonとRubyに基づいている。Booは2003年からあるが、Rodrigo B. De Oliveira氏により作成され、今でも開発中である。さらに完全な.NET言語のリスト(リンク)をWikipediaで参照することができる。

.NET言語がどこへ向かっているのかを知るには、Anders Hejlsberg氏(C#の作成者)は、まずはC#の今後について確認するのが自然であると、言っている。C#の以前のバージョンでは、 Microsoftはマネージドコード(C# 1.0)、総称型(C# 2.0)および統合言語クエリ(LINQ) (C# 3.0)に重点を置いた。まもなくリリースされるVisual Studio 2010に搭載されるC# 4.0では、主に動的言語にフォーカスされた。PDC2008での講演(リンク)で、Anders氏は言語の最新の傾向(リンク)について、以下のように話した。

大きく3つに分類できると思います。最初は、プログラミングでより宣言型のスタイルを求める、この動きです。2つ目は、一種の復活のようなもので、過去数 年間に動的プログラミング言語で、またそれがわれわれにどのように影響するかです。最後に、マルチコア変曲点です。

わたしにとって、こうした傾向で興味深いことは、プログラミング言語の古めかしい分類法は、崩壊し始めているのではないかと思います。従来、われわれは言 語を分類する際、オブジェクト指向、機能的、動的もしくは構造的かどうかから分けていますが、言語がますます互いに借用していることが分かります。ある意 味で、新たなパラダイムはマルチパラダイムだと思います。

それが、C#にDeclarativeプログラミング(LINQ)やDynamicプログラミングの要素がある( C# 4.0に動的キーワードがある)理由の説明になる。

Anders氏およびGuy Steele氏との並行処理および言語デザインについての以前のインタビュー(リンク)で、Anders氏は以下のように指摘した。

すでにC#と呼ばれる既存のプログラミング言語があり、並行処理が実行されています。ですので、それがどういう意味を持つのか考える必要があります。C# 3.0での多くの作業およびLINQは、並行処理にかなり関連していると思います。追加したラムダ式のようなものがあると、より高位のAPIらしきものを 構築することができます。

言ってみれば言語において、副次的な悪影響をコントロールしたり、それらに注意を促すメカニズムが不足しているみたいな感じです。純粋な機能に対する言語 サポート、不変データの形式化、また可能であればある形式での分離に対するサポートがあれば素晴らしいと思います。コンパイラでオブジェクトが他の誰かに 公開されているかどうかについて推論することができます。公開されておらず、ローカル変数で扱っている限り、変更しても安全です。

並行処理に関連して、MicrosoftではParallel Computing Initiative(リンク)と呼ばれるプロジェクトが進行中である。Microsoftのデベロッパ部門の副社長であるS. Somasegar氏が、Q&A形式でVisual Studio 2010で期待すること(リンク)について話した。

これには、Task Parallel Library (TPL)やParallel LINQ (PLINQ)などの新たな.NET Frameworkライブラリの他、Parallel Pattern Library (PPL)やC++でネイティブアプリケーションを作成するためのConcurrency Runtime、並列プロファイリングおよびデバックツールが含まれます。また、MicrosoftはWindows Communication Foundation (WCF)およびWindows Workflow Foundation (WF)の新機能の追加を通じて、.NET Frameworkへ継続的に出資しています。

Microsoftにとってこのプロジェクトは、より簡単に並行処理をサポートするために、.NETプログラミング言語でどの変更が必要なのかについて フィードバックを得るためには自然な場所である。ムーアの法則は、トランジスタの密度にまだ適用できるが、CPUの速度(GHz)には適用できない。その ため、並行処理はなくならない。当然Microsoftはこのことを知っており、同じ空間で作業している言語実装者と共に解決すべき、大きな課題を抱えて いる。それどころか、これはC#のような言語の次のステップになる。

.NETプラットフォームでのプログラミング言語について話すと、VB.NET対C#の話題が持ち上がる。Anders氏は、C#とVB.NET間の共同進化について話している。

… あることろで別の機能を装備しようとすると、他のグループもそれを要求します。現実は、こうした言語の進化に、共同進化は正しい方法です。

結論としては、並行処理は、次に重要な事項であるということは間違いない。動的コーディングの可能性は、C# 4.0ではありそうだが、今後のバージョンでもそれを望むものがいるかもしれない。VB.NETは、C#を進化させることを約束しており、2つの言語が構 文的には異なるが、同様のアウトプットをする。今後Visual Studio 2010でのDLRで動的言語の可用性はますます期待できる。またIronPythonやIronRubyも同様である。

 

原文はこちらです:http://www.infoq.com/news/2009/01/Future-.NET-Languages

この記事に星をつける

おすすめ度
スタイル

BT