ちょっとひと言

物言わぬ多数派: Visual Basic 6 が今でも成功している理由

David Platt

 

David Platt

マイクロソフトは最近、Windows 8 の有効期間は Visual Basic 6 アプリケーションが「動作する」よう、互換性を確保する期間を延長することを発表しました (詳しくは今月の編集長のコラム、「老兵は死なず」をお読みください)。最初に Visual Basic 6 がリリースされたのは 1998 年なので、Visual Basic 6 アプリケーションは少なくとも 24 年にわたってサポートされることになります。Windows 7 (2009 年) と互換性がない Microsoft .NET Framework 1.0 (2002 年) とは対照的です。

Eric という私の生徒が、Visual Basic 6 を、Windows エコシステムに巣くう「なかなか退治できないゴキブリ」と冗談めかして言ったことがありましたが、このたとえは、意外に核心を突いています。ゴキブリが繁栄しているのはシンプルだからです。彼らは、生態系のすきまで生き残るために必要なことをしているに過ぎません。Visual Basic 6 は、「経験の少ないプログラマが、制限のあるプログラムを非常にすばやく開発できるようにする」という市場のすきまを目指す作成者の意図が感じられます。決して複雑なアプリケーションを開発する上級プログラマを対象としているわけではありませんでした。

Visual Basic 6 は、基盤となる Windows OS の複雑さを取り除くことで、目的を達成しています。きわめて簡単に実行できる作業もあれば、スレッドの処理など、実行が不可能な複雑な作業もあります。私が得た Visual Basic 6 の経験則によれば「10 分でできなければ、それは不可能」です。

Visual Basic 6 が成功を収めたもう 1 つの鍵は、機能が限られていたのでたいへん学習しやすい点にありました。バスの運転は、戦闘機の操縦よりもずっと早く習得できます。優秀な Visual Basic 6 のプログラマになるのに必要な時間は、優秀な C++ プログラマ (現時点で主に代わりとなるのは C++ です) になるのに必要な時間に比べればずっと少なくて済みます。

マイクロソフトは、スレッド、バックグラウンド操作、継承など、C# の持つすべての能力とそれに伴う複雑さも詰め込んで、Visual Basic .NET を「本格的な言語」にしました。そのため、C# のプログラミングと同じスキル、学習時間、経験が必要になりました。

マイクロソフトがこのようにした理由は、それが Visual Basic 6 のコミュニティの声だと考えたためです。ところが、Visual Basic 6 のプログラマは「物言わぬ多数派」の典型でした。「物言わぬ多数派」とは、1969 年にニクソン米大統領が広めた言葉で、その激動の時代において、抗議しない、体制に反対しない自身の支持者を表していました。当時の Visual Basic 6 に不満がある Visual Basic 6 のプログラマはほとんどいませんでした。彼らは、バスの運転手として、午後 5 時 (とてもラッキーな日には午後 4 時 30 分) に会社を出て、週末は家族と遊び、夜は愛する人と過ごす生活に満足していたのです。深夜まで働き、週末は重い足取りで会社に向かい、夜は同じく徹夜でコードを記述する人間と過ごし、冷えたピザを朝食に食べる生活は望んでいませんでした。Visual Basic 6 に演算子のオーバーロードやポリモーフィズムがないことに不満を感じなかったので、あまり多くを語りませんでした。

ところが、マイクロソフトに届いた声は、Visual Basic 6 のバス運転手の中でも、積極的に戦闘機のパイロットを目指していた 3% から寄せられたものでした。彼らは、カンファレンスに出席したり、CompuServe のフォーラムに質問を投稿したり、記事にコメントを残したりすることに、時間を割きました。道路で行く手を遮る車の排気管にサイドワインダー ミサイルを撃ち込むことを夢想するだけでは飽き足らず、バスにアフターバーナーやミサイル、防衛兵器、ヘッドアップ ディスプレイを設置することまで、マイクロソフトに求めたのです。そして、マイクロソフトはそのとおりにしました。

ですが、Visual Basic 6 のコミュニティに Visual Basic .NET を提供するのは、コヨーテを飼い犬にして、森に放ち、「優秀なる我が飼い犬よ。神が望みたもうように、今日の獲物を捕っておいで!」と叫ぶようなものでした。「そんなことはどうでもいい。おいしいペットフードを用意してもらって、暖炉のそばの温かいクッションでくつろいでいたいのに」というのが、多くのコヨーテの本音です。そして Visual Basic 6 は、今までと同じように進み続けました。

もちろん、Visual Basic 6 に不備がないわけではありません。OnError Resume Next ステートメントを使い、エラーが発生しても実行し続けて何が起こるのか確認するのは、おそらく最適なアイデアではありません。それでも、スキルの高くない社員が、制限のあるアプリケーションをすばやく開発できることは、非常に多くの問題を解決する重要なソリューションです。

賛否両論ありつつも、このすきまを埋めようとしているのが LightSwitch です (bit.ly/n9crJj、英語)。しかし、ひいき目に見ても 10 年遅いというのが妥当なところです。

Visual Basic 6 が果たした役割は、今も必要とされています。この役割を果たす別のツールをマイクロソフトが開発しない限り、Visual Basic 6 はこれからも活躍し続けるでしょう。マイクロソフトは Windows 9 や 10 まで Visual Basic 6 のサポートを延長しなければならないという予想に、私はビール 1 杯を賭けてもかまいません。

David S. Platt は、ハーバード大学の公開講座や世界中の会社で .NET のプログラミングの講師をしています。『Why Software Sucks...and What You Can Do About It』(Addison-Wesley Professional、2006 年) や『Microsoft .NET テクノロジ ガイド』(日経BPソフトプレス、2001 年) などの、11 冊のプログラミング関連の書籍の著者でもあります。2002 年には、マイクロソフトから Software Legend に指名されました。David は、8 進法で数える方法を学べるように、娘の 2 本の指をテープで留めるかどうか悩んでいるところです。連絡先は rollthunder.com (英語) です。