文法がダメ。
もともとインタプリタから来ているのでCやJavaやC++とは異なる変な文法になっている。
そのため、エラー処理や関数の書き方などが文法の制約からくる変な仕様になっている。
そのほかインデックスが0から始まらない配列とかアホなものばかり作っていた。
そういういびつな過去を引きずっていて無駄でめんどくさくて見にくくて記述しにくいのがVB。
おまけに大文字小文字の区別がないので、同じ関数名で、大文字小文字だけが違うというものが許されない。
そうすると、基底クラスがC#だったりしたときに派生クラスをVBで作るとエラーになるなど致命的な欠陥もある。
そういう制約が実は結構ある。
だったら最初からC#でいい。