.NETは普及するか

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

DelphiにはCanvasというグラフィック機能をカプセル化したプロパティがあり魅力の一つになっていた。.NETにはこれと似たGraphicsオブジェクトがあり、面倒だったGDIまわりのプログラミングが大幅に楽になっている。
しかし、.NET付属のビジュアルコンポーネントだけでは本格アプリを作るために不足だ。ネットで公開されているコンポも少ない。生産性の高い言語を提供しながら、企業が.NETに移行しないのは、このあたりが原因かもしれない。

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

MS社が.NETプログラムしかできないIDEを無償配布したのは、.NETを普及させたい意図が見える。C++/CLIが過去の互換を重視したのも、乗り換えを促すため戦略とみられる。しかし、いくら互換があるといっても.NETに移行するメリットは見えない。

私もC#への移行を検討したが、次のコントロールに実現の見通しがないため断念している。
純正のActionList
エクスプローラ並のシェルコントロール(フォルダツリービューなど)
MDIアプリで使えるドッキングサイト
フローティング&ドッキングできるウインドウ

すくなくともIDEで実現されているデザインが付属コンポを組み合わせて簡単に出来ないと、「結局このレベルのアプリはできないのか」と思えてくる。
企業の場合は、.NETで不足しているコンポを自前で開発するなら、社内コンポが充実した従来のC++で書いたほうが工数が少ないケースが多いだろう。

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

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

 

<関連商品>
Delphiソフトウェア
プログラミングソフト