【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 

Visual Basic 2005でVB 6プログラマーの時代がやってくる

―― VB 2005+コンポーネント開発なら、OOPを強く意識しなくてもアプリケーションを開発可能 ――

グレープシティ株式会社
ツール事業部 PowerTools製品部 部長
鎌田 明 氏 (写真右)

グレープシティ株式会社
ツール事業部 テクニカルエバンジェリスト
八巻 雄哉 氏 (写真左)

聞き手:Insider.NET編集部 遠藤 孝信/一色 政彦
2006/05/20
Page1 Page2


Keyman Interview:文化オリエント 鎌田氏

 Insider.NETフォーラムの創設間もない2001年2月。当時の現行バージョンだったVisual Basic 6.0(以下VB 6)から、新しいVisual Basic .NETへの移行がどう進むのか、障害となるものは何か、などの疑問への回答を得るために、業務アプリケーション用コンポーネント・ベンダの代表的な存在であり、VB 6業務アプリケーション開発に詳しい文化オリエント(当時。現在は「グレープシティ株式会社」に名称変更)の鎌田明氏にインタビュー(インタビュー記事)を行った。

  あれから5年。.NETの普及を肌で感じるようになった一方で、VB 6から.NETへの移行は必ずしも順調ではないとも聞く。実際のところはどうなのか? 5年前のインタビューを振り返りながら、再度鎌田明氏、およびグレープシティのテクニカル・エバンジェリストである八巻雄哉氏に加わっていただき、VBの現在と未来について伺った。

(聞き手:Insider.NET編集部 遠藤孝信/一色政彦)

.NETへの移行は加速中。しかしVB 6からの本格移行はこれから

― 5年前のインタビュー(2001年2月)の段階では、.NETはまだ開発途中のベータ版でした。その後5年の間に、Visual Studio .NET(2002年2月、以下VS 2002)、Visual Studio .NET 2003(2003年5月、以下VS 2003)、Visual Studio 2005(2006年2月、以下VS 2005)と、開発環境のVisual Studioも3つのバージョンが提供されました。VB 6から.NETへの移行は、想定どおり進んでいますか。

 

鎌田:結論からいえば、5年前に想像していたほど移行は急ではありませんでした。5年前の想定では、3年後(2004年ごろ)までには、VB 6向けのActiveXコンポーネントと、.NET向けコンポーネントの売り上げ比率は1対9程度になると考えていましたが、現時点での売り上げ比率は3対7と、いまなお30%はActiveXコンポーネントになっています。

― ActiveXコンポーネントと、.NETコンポーネントの売り上げ比率が逆転したのはいつごろですか?

 

鎌田:2年ほど前だと思います。それ以前から.NETへの移行は徐々に進んでいましたが、特にそのころから加速してきた感じがします。

― 徐々に加速しながら、VB 6プログラマーが、.NETに移行してきたという感じでしょうか。

 

八巻:私も最初は、VB 6対応製品をお持ちのユーザーが、少しずつ.NET対応製品に移行するのかと思っていたのですが、展示会などでお客さまに直接聞いてみると、どうもそうでもありません。どうやら最初のうちは、JavaやC++言語のユーザーが新しい.NETの世界にまず飛び込んできて、その後VB 6プログラマーが移行しつつあるという感じがします。

鎌田:当社のテクニカル・サポートにお問い合わせいただいたユーザーの使用言語を過去3年にわたり調査した結果があります(図「グレープシティのテクニカル・サポートにおけるユーザーの使用言語」)。2003年から2005年までの変化に注目すると、VB 6は21%減少し、VB.NET(VS 2002、VS 2003、VS 2005のすべてのVBバージョン。以下“VB.NET”と表記した場合は同様)は16%増加しています。一方C#は7%増、JavaとVC++ 6はそれぞれ1.5%減、1.0%減です。VB 6の減少分すべてがVB.NETの増加につながっているわけではありませんが、この差分の5%に加え、JavaとVC++ 6の減少分(2.5%)がC#に移行したと考えると、おおよそつじつまが合います。

 
グレープシティのテクニカル・サポートにおけるユーザーの使用言語

― まだまだVB 6プログラマーの多くは.NETに移行していないということですね。

 

鎌田:先に述べたとおり、現在でも販売額の30%がActiveXコンポーネントですから、多くのVB 6プログラマーがいることは間違いないでしょう。しかし移行は着実に進んでいますし、これは新しいVS 2005でさらに加速すると期待しています。

― 移行しない理由は何でしょうか。

 

鎌田:業務アプリケーションでは、昔もいまも変わらない普遍的な部分が多いというのが1つの理由だと思います。実際、エンドユーザーから見ればVB 6で作ろうと、VB.NETで作ろうと、簡単には違いは分かりません。

八巻:.NETが登場した最初のころは、よくお客さまから「.NETで作るとどんなよいことがあるのか?」と聞かれました。これには簡単には答えられませんでした。特にエンドユーザーの方々にメリットを説明するのは難しいです。

― エンドユーザーから見てソフトウェア機能が変わらないのなら、アプリケーションを開発する方としては使い慣れたVB 6の方が手っ取り早い、ということですか。

 

鎌田:VB 6で開発したクライアント/サーバ型アプリケーション(以下C/Sアプリケーション)をWebアプリケーション化するという話をよく聞きます。その際苦労する点を聞くと、「Enterキーで次の入力項目に移動させたい」「ファンクション・キーを使って操作させたい」など、従来の使い勝手をどうやってWebでも実現するか、というものが多いのです。

 これらはWebアプリケーションで実現するには大変な手間がかかるのですが、エンドユーザーは従来どおりのインターフェイスを求めています。つまりテクノロジーが変わっても、業務アプリケーションのニーズはあまり変わらないということだと思います。

八巻:そうですね。VB.NETの開発効率は間違いなく高い。けれど初期の学習コストはかかりますから、VB 6を長年使い慣れたプログラマーにとっては、結果的にVB 6で作った方が効率的ということでしょう。

VB.NET移行の最大のハードルは“OOP”だったのか?

― 5年前のインタビューで、鎌田さんは、VB 6からVB.NETへの移行ハードルは「オブジェクト指向プログラミング(Object Oriented Programming:OOP)」だとおっしゃいました。5年たってみて、この仮説は正しかったと思いますか。

 

鎌田:間違いではなかったと思いますが、少々過大に取り上げられすぎたかなとも思います。VB.NETでも、フォームにコントロールを貼り付けて、イベント処理を記述するという点ではVB 6と同じです。

 オブジェクト指向プログラミングを知っていた方が効率的な開発が可能だと思いますが、「OOPを知らなければ始まらない」という先入観につながってしまっているとすれば、それは行き過ぎです。

八巻:弊社のサポートに届く声を聞いていても、「.NETはOOPが前提で難しい」という先入観ばかりが先行してしまっているように感じます。特に、すでにあるコンポーネントを使うだけなら、独自のクラスを作成しないで済みますから、VB.NET環境でもVB 6的なアプローチでアプリケーション開発ができると思います。

― Insider.NETでアンケートをとっても、「.NETプログラミング最大の難所はOOP」という結果が出ています。本当にOOPを意識しないで使えるのでしょうか。

 

八巻:私の場合、.NETを始めて最初に困ったのは、砂時計カーソルが出せなかったこと、次に困ったのは「vbRed」という定数で色を変えられなかったことでした。どちらもつまらないことですし、分かってしまえば何ということはないのですが、こういうちょっとしたつまずきから抜け出せないで挫折する人が少なくないように思います。

 考えようによっては、「OOPが分からない」というのもつまらないつまずきの1つといえるでしょう。第1段階の小さなつまずきを1つ2つ超えたら、後はVB 6で培ったことが変わらず使えると思えるようになるでしょう。まぁ最初は、つまずいて転んでみるのも悪くないですよ。自転車だってさんざん転んで乗れるようになるわけですから(笑)。

― 「OOPを知っていた方が効率的」というお話がありましたが、これはどういう意味ですか。

 

鎌田:社内で数人のプログラマーにプログラミングの課題を出したことがあります。課題というのは、Enterキーで次の入力項目に移動するようなアプリケーションを、VB 6とVB.NETの両方で作るというものです。これを実現する方法はいくつもあります。

 VB 6では、KeyDownイベントで、TabキーをSendKeysステートメントで送るか、コントロールのSetFocus関数を呼び出すかすることで、入力フォーカスを移動できます。VB.NETでもこの方法はそのまま使えます(具体的にはSendKeysクラスのSendメソッドや、コントロールのFocusメソッドが使える)。しかしVB.NETではこれらに加え、フォームやコントロールのProcessDialogKeyメソッドのオーバーライド、拡張プロバイダ(=プロパティをほかのコントロールに追加する機能)でコンポーネントを作って実現する方法などでも可能です。

 結果、VB 6プログラマーは、VB 6とVB.NETのどちらの場合でもSendKeysステートメント(SendKeysクラスのSendメソッド)などを使う同じ方法を取りました。しかし、VB.NETプログラマーは、VB 6ではSendKeyステートメントを使い、VB.NETでは(OOPの知識が必要となる)ProcessDialogKeyメソッドのオーバーライドを使うというように、それぞれのコンテキストに合わせた方法を採用しました。つまり、OOPを身に付けている.NETプログラマーの方が、実装方法を柔軟に選択できるということです。

― オブジェクトとかメソッドを知らないと、オーバーライドという発想は出てきませんね。

 

鎌田:そうですね。VB 6プログラマーはこの課題後、「ああ、.NETにはそういう実現手法もあるのか」と驚いていました。どちらが正しいということではありませんが。

 
 

 INDEX
  VB研 Interview
  Visual Basic 2005でVB 6プログラマーの時代がやってくる
  1. .NETへの移行は加速中。しかしVB 6からの本格移行はこれから
    2.Visual Studio 2005で世界はどう変わるのか?

ホワイトペーパーTechTargetジャパン

Insider.NET フォーラム 新着記事
  • Chapter15:LINQとクエリ式 (2010/3/17)
     C# 3.0の目玉機能であるLINQについて、さまざまな記述例を交えながら徹底解説。書籍『[完全版]究極のC#プログラミング』より転載
  • VBラムダ式 基礎文法最速マスター (2010/3/16)
     今度はVB。ラムダ式の基礎文法を、短い説明と簡単なコードでまとめる。「ラムダ式、どう書くんだっけ?」という場合の簡易リファレンスとして活用できる
  • ASP.NET MVC 2がリリース (2010/3/15)
     ASP.NET MVC 2の正式版(VS 2008のASP.NET 3.5向け、VS 2010には標準で含まれる予定)のリリースについてのお知らせ
  • 逆引きリファレンス:コア編 (2010/3/12)
     jQueryのキモともいえる$()関数を始め、jQueryオブジェクトの中核となるメソッドについてまとめた、すぐに役立つ12本を一挙公開

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

.NET開発者中心に生まれ変わりました

.NET開発者中心コーナー

- PR -

- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?