Visual Basic
作成したアプリケーションのパッケージにランタイムを同梱して配布することがマイクロソフトにより認められている。Visual Basic 5 と 6 はコードを Win32 ネイティブとPコードのどちらにでもコンパイルできたが、いずれにせよビルトインの関数やフォームの利用にランタイムを必要とした。
VB.NET 以前のVisual Basicでは以下の不都合が指摘されていた。
コンポーネントのバージョンの違いからトラブルが起きやすい(DLL地獄)。
言語仕様が完全なオブジェクト指向言語ではない。
基本的にマルチスレッド機能が無く、ActiveX EXEでのみ可能である。
強い型付けのプログラミング言語と比べると、バリアント型(英語版)は遅くメモリ容量もより消費する。
複雑で壊れやすいComponent Object Model (COM) のレジストリに依存したり、VBランタイムが別途必要となったりするなど、アプリケーションのインストールに手間がかかる。