.NETは普及するか

 マイクロソフトから無償配布されている個人向けのIDE(Visual Studio Express) を使って、C#とC++/CLI で簡単なサンプルソフトをいくつか作ってみた。.NETのクライブラリを使うことで、生産性はDelphiに近いものが達成されていると感じた。

 DelphiにはCanvasというグラフィック機能をカプセル化したプロパティがあり魅力の一つになっていた。.NETにはこれと似たGraphicsオブジェクトがあり、面倒だったGDIまわりのプログラミングが大幅に楽になっている。

 C#はDelphiと開発者が同じアンダース・ヘルスバーグ[Wiki]ということもあり、言語の構造がよく似ている。

 

少なすぎるコンポーネント

 しかし、.NET付属のビジュアルコンポーネントだけでは本格アプリを作るために不足だ。ネットで公開されているコンポも少ない。生産性の高い言語を提供しながら、企業が.NETに移行しないのは、このあたりが原因かもしれない。

 C++,C#の不足コンポは、codeproject.comで探すくらいしかアテが無い。しかしその質と量は、Delphiに比べるとずいぶん少ない。C++の利用は企業が多い。多大な工数をかけて作り上げたコンポは資産であり、門外不出という事情があるのかもしれない。

 私は一度、手持ちのソフトのC# (.NET)移行を検討したが、次のコントロールに実現の見通しがなかったため断念した。

 純正のActionList
 エクスプローラ並のシェルコントロール(フォルダツリービューなど)
 MDIアプリで使えるドッキングサイト
 フローティング&ドッキングできるウインドウ

 すくなくともIDEで実現されている機能が付属コンポで作れないと、「結局このレベルのアプリはできないのか」と感じてガッカリしてしまう。

 企業の場合も、不足するコンポを自前で開発するなら、今までの資産が豊富なC++で書いたほうが工数が少なくて済むと考えるだろう。

 

.NETに移行するメリットが見えない

 他にも、XORの描画が弱いことや、ホットキーの実装がややこしいなど、機能的にも中途半端な部分が目立つ。結局APIの呼び出し頼る結果が増えて生産性が生かされないと、「ネイティブでい書いた方がマシ」という結果になるのではないか。

 新しい言語に移行するためには、「移行が面倒でない」ことがとても重要だ。その視点から見ると、.NETにはまだまだ課題が多いといえる。

 

<関連商品>
Visual Studio