設計者が語るVisual Basicの来た道、進む道

米Microsoft
Technical Lead
Visual Basic .NET
ポール・ビック(Paul Vick)

聞き手、文責:デジタルアドバンテージ
2005/12/07
Page1 Page2 Page3

VB2005の新機能

―― では、VB6からの移行を動機付けるVB2005の特徴のトップ3を挙げてください。

 

 3つ挙げるとすれば、まず1つ目は、VB2005が非常にパワフルな言語だということです。見た目の素晴らしい非常にパワフルなWindowsアプリケーションを構築できます。VB6と比較してもユーザー・インターフェイスの機能性・利便性がより向上するように、多くのコントロールやWindowsフォーム・デザイナなどについてさまざまな改善を行ってきました。そしてジェネリクスや演算子オーバーローディングといった強力な機能も追加されており、上級のユーザーにとっても満足のいくものになっていると思います。

 2つ目として、VB6と比べVB2005は、使い勝手が大幅に改善されています。My機能についてはすでに触れましたが、これ以外にもアプリケーションやフォームへのデータの結合(データ・バインディング)も非常に簡単になっています。本当にドラッグ&ドロップするだけで可能です。

 そして3つ目としては、やはり.NET Frameworkのパワーをフルに活用できるという点でしょう。ライブラリの中にはVB6にない機能がたくさんあります。先述したように今後WPFなどが登場すればさらに強力になります。

―― VB6の開発の現状は、Windowsアプリケーションをクライアント/サーバ形式で使用するケースが圧倒的に多いと思います。パワフルなWindowsアプリケーションの開発が特徴であるというお話ですが、VB2005でもWindowsアプリケーション開発がメイン・ターゲットになるのでしょうか?

 

 Webサイト開発やWebサービス開発ももちろん重要ですが、やはり(VBによる開発では)クライアント・アプリケーション開発が非常に重要だと考えています。今回の新しいVBの機能の1つとしてClickOnceデプロイメントというものがありますが、これを使うとクライアントの配置や更新は非常に容易になります。

―― 現行のVB.NETとVB2005の互換性はいかがでしょうか?

 

 VB6とVB.NETの互換性の問題は珍しいケースでありましたが、基本方針としてバージョン間の互換性はしっかりと確保しており、VB.NETの2003版や2002版とは完全な互換性を確保しています。将来“LINQ”(Language Integrated Query:クエリ統合)が搭載されるVB(=VB9、これについては後述)においても互換性のある形で設計しています。

―― VB2005(およびVisual Studio 2005)で新しく追加された機能として、コード・スニペットが個人的には非常に気に入っているのですが、C#のコード・スニペットが構文ベースであるのに対して、VB2005ではそれが機能ベースで用意されています。このような違いがあるのはなぜでしょうか?

 

 C#がなぜそのようになっているかについては私には分かりませんが、私たちは、スニペットは機能ベースであることが最もパワフルであると考えたということです。C#とVBとを比べた場合、われわれはVBをタスクの観点(タスク指向)で考える傾向があるのですが、C#チームでは言語や言語機能といった観点で考えているようですね。

―― 米国ではすでにVB2005がリリースされたわけですが、コード・スニペットに関する評価はいかがでしょう?

 

 非常に好意的に受け入れられていると思います。多くの人から、新しいバージョンのVBの中でも気に入っている機能であるということを聞きました。米国のあるコミュニティでは、自分で作った新しいスニペットを共有して使おうという取り組みが行われています(例えば「GotCodeSnippets.NET」など)。従来のVBユーザーならコードを受け渡すということをしていましたが、コード・スニペットによってよりフォーマルな形でコードをチームやこのようなコミュニティなどで共有することができます。

―― では、PaulさんがVB2005の機能の中で一番気に入っている機能を教えてください。

 

 私は主に言語設計に携わっているので偏ってしまうかもしれませんが、私が最も気に入っているのはVB6から復活した「エディット&コンティニュー」の機能です。プログラムの実行中にそれを編集できるという機能は、私自身も非常に便利だと思っていたので、復活させることができてすごくうれしいです。そして恐らくエディット&コンティニューがVB2005の中でも最も実装が難しい機能だったのではないかと思います。

C#との関係について

―― 次にC#との関係についてお話を伺いたいのですが、実際、VBの開発チームはC#チームとは仲がいいのですか?

 

 とても面白い質問ですね(笑)。私たちは友でありライバルであるという表現をよくします。お互いに協力し合う必要があると同時に、常にお互いに負けないぞというライバル心も持っています。

 例えば、ジェネリックなどに関しては、フレームワーク上でどのような実装が必要かといった点でお互いに協力しました。またエディット&コンティニューの機能は、われわれの方が先に追加しましたが、それを知ったユーザーからの要望があって、C#チームでもその機能が追加されることになりました。要は、いつもお互いのいいアイデアを盗みあっているという感じです。

 両者とも.NET上で一番成功した言語になりたいと思っていますが、同時にお互いが成功すればいいという気持ちもあります。当然1つの言語がすべてのユーザーを満足させることはできないので、やはりどちらも必要だと思います。

―― VB2003においては、C#とVB.NETは文法に違いがあるだけで機能そのものには違いがないという印象でしたが、VB2005ではそれぞれが独自路線を進み始めているように感じます。これは何か方針の変更があったのでしょうか?

 

 両者を違うものにしていこうという明確な方針が具体的にあったわけではありません。最初のバージョンであるVB.NETでは.NETの機能をサポートすることが最大の目的でした。その後、それぞれの言語にとって重要なことは何かを考え始めたとき、そのような方向性の違いが出てきたのだと思います。

 この2つの言語はいまでこそ同じ開発環境、同じフレームワーク上にありますが、どちらも重要なミッションを持っていますから、そこにもっとフォーカスするようになれば、将来的にはさらに違いがはっきりしてくると思います。

―― VB.NETやVB2005には「Microsoft.VisualBasic」という名前空間の中にVB用のクラスがありますが、これらはVBで作られているのでしょうか、C#で作られているのでしょうか?

 

 VBで書いています。VB用のライブラリやMy機能、それからIDEのいくつかのデザイナ部分などはVBで書かれています。それ以外のクラス・ライブラリのほとんどの部分はC#で書かれています。これは、開発を行っていたデベロッパーがもともとC++やJavaを使っていたためで、そこでC#が使用されたのは自然だと思います。

―― ではVBとC#は、それぞれどのような開発者に推奨されるものなのでしょうか?

 

 これらの言語を使う開発者には重複する部分がけっこうあると思いますが、ローエンドを見てみますと、初心者やホビーストと呼ばれるユーザーにとっては、VBは非常によいツールです。反対にハイエンドを見れば、先進的な機能やアンマネージ・コードなどを使いたいユーザーにとってはC#の方がよいでしょう。

 では、最も多いと思われるミドルレベルではどうかというと、これはその人のワーク・スタイルやフォーカスしているものによると思います。タスク指向な開発や、いわゆる繰り返し型の開発スタイルを好む人には、VBは非常によく設計されていると思います。

 私のアドバイスとしては、すべての人はVBを使うべきですが(笑)、いろいろなニーズがありますで、それはその方々によると思います。

 

 INDEX
  [Trend Interview] 設計者が語るVisual Basicの来た道、進む道
    1.VB6からの移行は進んでいるか?
  2.VB2005の新機能、C#との関係
    3.今後のVBについて
 
インデックス・ページヘ  「Trend Interview」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間