次の方法で共有



February 2016

Volume 31 Number 2

ちょっとひと言 - VB6: 眠れる巨人が目を覚ます

David Platt | February 2016

David PlattMSDN マガジンで物議を醸しているこのコラムの連載を始めて 7 年目に入ります。その節目を祝って、私が常に愛してやまない「ハチの巣」をつついてみることにします。そこは、Visual Basic 6 を愛し続ける開発者や、そのような開発者を嫌うことを生きがいとする開発者の巣窟です。

現在のソフトウェア開発において VB6 が独自の地位を占めていることについて、VB6 をゴキブリ、バスの運転手、ナックルボールにたとえて、これまで 2 回コラム (msdn.com/magazine/jj133828msdn.com/magazine/dn745870) を書きました。この 2 回は、それまでのどのコラムよりも多くの反響がありました。危険な炎に油を注ぐようなコラムはいつものことですが、今回はとりわけ危険な内容になるかもしれません。核爆発を起こし、その放射線で VB6 を突然変異させ、ますます不滅にしてしまいます。信じられないかもしれませんが、まずはお読みください。

何週間か前、私はクライアントとランチをとっていました。このクライアントの手元には、防犯カメラの映像を表示する Silverlight ベースのソリューションがあるそうです。でも、マイクロソフトは現在 Silverlight を廃止して、開発者には HTML5 に切り替えるように薦めているところです。クライアントは私に愚痴をこぼしました。「困ったよ。これまで何も問題はなかったのに、また新しい言語を勉強して、コードを移行しなくてはならないんだ。うちのアプリは大して複雑じゃなくて、ほんの少しのビデオ ストリームとボタンがいくつかあるだけだよ。何か簡単にできる方法があればよいのだけれど」

ここで私はひらめきました。これこそまさに、現在彼のターゲットとなっているアンマネージ Windows アプリに VB6 を生かせる場面ではないでしょうか。VB6 を使って HTML5 を生成するアプリを開発してはどうでしょう。このアプリの出力は、ブラウザー、OS、プラットフォームを問わず、デスクトップでもモバイルでも機能するのです。

昨年 5 月号 (msdn.com/magazine/dn973019) では、天然痘ウイルスをテーマに、最後の天然痘ウイルスが最後の人間の感染者の体内で死滅する直前に、宿主を人間からコンピューターに移した方法を取り上げました。今回は、アンマネージの Windows ホストからソフトウェアの世界全体へと、VB が爆発的に感染を広げるチャンスです。Java が果たせなかった、「一度コードを書けば、完全にどこでも実行できる」という約束を実現するのです。正真正銘のユニバーサル アプリを、昔ながらの VB6 が作り出すのです。だれがそんなことを想像したでしょう。どこでも実行できるこの新しい言語を、VB* と呼ぶことにしましょう。

VB* プログラミング モデルは、概念的には、ASP.NET の Web フォーム モデルに似ています。ASP.NET Web フォーム モデルのコントロールは、コンテンツを HTML としてレンダリングしますが、レンダリングにはサーバー側に ASP.NET が必要です。しかし、VB* は特定のサーバーへの依存を避ける必要があります。そのため、VB6 が Windows 関数呼び出しを使って x86 アセンブラにコンパイルしていたように、VB* は HTML5 の要素と JavaScript コードで構成される独立したページにコンパイルします。このページを任意の HTML5 サーバーに配置すれば、任意の HTML5 クライアントからアクセスできるようになります。

VB* は、VB6 の非常に単純な構文と構造を使用する予定です。シンプルなケースで簡単にプログラミングができるよう、高度な機能は意図的に排除します。たとえば、VB* 言語にスレッドを持ち込むことはしません。VB* のアプリがバックグラウンド操作を必要とする場合は、VB6 のときのように、有能なプログラマがそのように面倒な細部すべてを処理するバックグラウンド操作コントロールを作成するでしょう。

そのため、VB* には、2 つの層の開発者に対応する設計が不可欠です。1 つの層は、コントロールを作成するスーパー ギーク (コンピューターおたく) たち、もう 1 つの層はそのコントロールを利用するアプリケーション プログラマです。そのようなコントロールは、これまで VBX コントロールと OCX コントロールで 2 回実現してきたので、今回もできることは間違いありません。

VB* の開発、予算、リリース、サポートはどうしましょう。オープン ソースにしましょうか。それとも、これを引き受けるツール ベンダーが現れるでしょうか。コンソーシアムはどうでしょう。私もぜひお手伝いしたいものです。もちろん、報酬はいただきますが (学生: 「先生、あなたが皮肉屋で、お金目当てのろくでなしというのは本当ですか。金銭だけが目的でこの授業を担当しているというのも」、私: 「答えたらいくら払う」)。VB* へのとっかかりとして、私は vbstar.org という Web アドレスを取得しました。

VB を嫌いな人たちが、声を合わせて叫ぶのが聞こえます。「そんなのは本物の言語ではない。それを利用するのも、本物のプログラマではない。この提案ですら極刑に値する。VB* なんて、こんなことや、あんなことや、そんなこともできやしない」

おそらく、できないでしょう。しかし、私は以前、次のように書きました。「スキルの高くない社員が、制限のあるアプリケーションをすばやく開発できることは、非常に多くの問題を解決する重要なソリューションです」。これが正しく行われれば、VB* はこうしたソリューションになるでしょう。

VB* 万歳!


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 (英語) です。