MicrosoftがJavaを巡るSUNとの訴訟に負けたことがきっかけで(と私は解釈していますが本当はどうだか知りません)開発され公開されているプログラミング言語C#がJIS X 3015として公示されたとのことです。CNET Japan

C#は、異なるシステム同士がXMLを使って連携する形態であるウェブサービスを開発する用途で作られたプログラミング言語である。言語仕様、実行環境、適用用途ともにJava言語に位置付けが似ている。

と説明されている通り、C++によく似ていて覚えやすいという文法は当然Javaにもよく似ていますし、.Net FrameworkというVirtual Machine上で動作するという点もJavaとそっくりです。一番違うのはVMがWindows用しかないという点ではないかと思いますが、Javaが一つの言語を各種プラットフォーム上のVMで動作させることをターゲットにしているのに対し、.Netの方は各種言語を一つのプラットフォームのVMで動作させようとしていますので、目指す方向が全く逆を向いていると言えるのではないでしょうか。

今回のJIS化についてMYCOM PC WEBには

これについてマイクロソフトの古川享・最高技術責任者は、言語仕様を公開して標準化団体にゆだねたことで、古川氏が以前から話していた「マイクロソフトがオープンな会社である」ことの証明だとするほか、「C#のプログラマーにヒーローはまだいない」と指摘。まだ新しい言語であるため、これから言語を学び始める場合でもライバルが少ない点を、C#のメリットの1つに挙げる。

などと書かれていますが、私には何を言いたいのか全く理解できません。そもそもプログラミング言語などというものは仕様が公開されていなければ全く使いようがないわけで、それをもって「オープンな会社」とはとても言えません。他のプラットフォームに移植するために有用な実装に関する仕様が公開されているというのであれば話は別ですが、そういうわけではないでしょう。また、一部の人はそうなのかもしれませんが、プログラマーはヒーローになりたくてプログラミングしているのだと思っているのであれば大きな誤解をしているのではないでしょうか。確かにほとんど自己満足の世界だとは思いますが、ヒーローになりたくてマイナーな言語を使い初めるような人は、もともとろくなものではないかと思ってしまいます。マイナーであることを売りにしてしまおうという発想は大したものかもしれませんが…

また、

マイクロソフトは、開発環境の「Microsoft Visual C#」を学生向けに低価格で提供しているほか、JIS化で仕様がオープンになったことで、フリーのコンパイラなどが登場してくる可能性もあり、C#の利用拡大に期待を寄せている。

(MYCOM PC WEB)ということですが、MSのC#コンパイラ自体はフリーで配布されていますので、Windowsプラットフォームではこれに対抗するのは難しいでしょうし、オープンであったとしてもそれ以外の意味もあまりありません。また、その他のプラットフォームではJavaが普及していて、わざわざC#に移行する理由も特にないのではないかと思われます。そもそもC#は「MS謹製である」ということに最も価値があるのではないでしょうか。可能性がないとは言いませんが、あまり期待できないような気がします。

ただ、

Ecma規格としては、.Net Frameworkが規格化されており、JISでも標準化に向けた作業が進められているところだという。

(MYCOM PC WEB)ということなので、これによって他プラットフォームにも.Netが実装されるようになると状況は変わってくるかもしれません。.Netのオープンな実装が登場すると、.Netの場合にはプログラミング言語に依存せず共通のVMを仕様できるというメリットがあるので、Javaの掲げる”Write Once, Run Anywhare”というスローガンに”Anyway You Like”のような言葉が付けられる、汎用プログラミング環境が構築されることになるかもしれません。現状では.Netの実装がプロプライエタリなものとなってしまっているためにオープンソース系の人は興味を持っていないのではないかと思いますが、Linuxや*BSDでも.Netが実装されるようになったとすると、互換性の問題に悩んでいるような人には魅力的に感じられるものがあるかもしれません。Javaの場合には新しく言語をマスターしなければならないという障害があるわけですが、.Net Frameworkでは自分の好きな使い慣れた言語を使うことができるのが大きなメリットがあると言えます。.Netの仕様が公開されることで、.Netに対応した言語の種類も飛躍的に増える可能性があります。その場合、結果的にC#の普及は妨げられることになるかもしれませんが…とはいえ、パフォーマンスを追求するとネイティブコンパイラに頼ることになってしまうので、どこまでニーズがあるかはやはり未知数ですね。

関連投稿