eWeek の記事から翻訳・転載されたとみられる記事が @IT に載っている「どんなアプリケーションでもVBのパワーを」最も初心者向けの言語は「Visual Basic」――スクリプト復活へ しかしこの記事は状況をある程度把握していないと判らないように思う。VisualBasic 6.0 を基準にすると、VisualBasic .NET 2002/2003 (Visual Basic 7.0, 7.1)では各種の変更が行われた。よく知られている範囲では Option Strict の追加であろう。
方向性の変化は、2002 年頃に書かれたと思われる KEN's .NET [特集4] Option Strict Onのススメ と 2005 年に書かれた 動的プログラミング言語へと発展するC# 3.0とVB 9.0 読み比べる必要性がある。Option Strict On は暗黙的な縮小変換を禁止する。たとえば、Base から派生した Inherited なるクラスがあったとする。Inherited クラスのインスタンスを Base 型の変数に代入することができる。Option Strict On ではない状態ならば、このBase 型の変数 foo を Inherited クラスとしても用いることができる。これは暗黙の縮小変換が動作するからである。
Visual Basic 7.0 ではどちらかというと、静的型付が要求された。静的型付のメリットはエラーチェックにある。つまり、暗黙の変換が働かないのでコンパイル時のエラーチェックがしやすい。さて、2005 年前後になぜそれだけではよくなくなったのかということだ。それは、言うまでもなく開発現場において、十分な時間をかけて設計をすることが困難になり始めたからだと推測する。たとえば、開発スタート時には軽量なデータベースである SQLite で設計していた。しかし、サービスイン直前になって SQLite では十分ではないどうしようといった状況であろう。こういった開発をしている最中の設計変更の要請などが各種の新しいパラダイムを生んだと推測する。eXtream Programing などはその典型であろう。
そういったことを考慮すれば、Visual Basic 6.0 的な動的な特性は便利とも考えられる。こういった背景があり、Dynamic Visual Basic や DLR といった方向性は成立している。ただし、注意をしておくと Visual Basic は初めから Dynamic であったわけではない。Visual Basicは本来動的プログラム言語であって、Option Strict Onが良いわけではないに書かれているように Visual Basic 1.0 は Dynamic ではない。BASIC 言語全体の歴史でも Dynamic であった時代は長いわけではない。もともと、BASIC が Fortran から来たことを考えると当然ともいえる。
恐らく、静的型付と動的型付は単純にどちらがいいというわけではない。静的型付のエラーチェックの厳格さは単純に捨てるにはもったいない。かといって、途中での設計変更を考えれば動的型付も魅力的である。ただ、.NET Framework 全体を通して見ると静的型付であれば C# という方法がある。結果的に、Visual Basic は動的型付という方向を志向することになるだろう。

