【PC】VB6 から VB2010 で うれしかったところ(笑)
筆者は 機械語、アセンブラ、フォートランからベーシック、そしてカーニハン&リッチーの「プログラミング言語C」出身なので、あまり言語に対するこだわりがない(笑)
いただいたお仕事の大半は、いわゆるVB&VCで書いており、ちょこちょこ仕様変更やバージョンアップが多い部分はVBで書くことが多い。開発工数が少なくて済むから、というのが大きな理由で、できない部分(または、Cの方が向いている場合)は、C++を使ったりしていた。
Visual Studio 2010 になってからも、そのスタンスはさほど変わりがなく、やはりVBを結構さわる。
VB6とVB2010の大きな違いは、なんといっても .NET Framework で、いままでAPIやら、なんというか非常に汚らしいコードを書かねばならない(カーニハン&リッチーに言わせれば、エレガントではない、ということなのだろう)ことも多かったが、.NET になってからは、きちんとした構造化が出来ることが大きく、汚らしいコードを書かずに済むようになってきた。汚らしいとは、いろいろと汚らしさがあるのだが、
(1)Try Catch
VB6では、エラー処理は On Error Goto を使うことが非常に多い。多いと言うよりは、そうしないと書けない。On Error は「エラーが発生したら、あちらへジャンプ」なので、一つのプロシージャの中で、あっちゃこっちゃにジャンプすることになるので、後から見ると、わけがわからないことが多い。そこで、できるだけ On Error Goto に頼らずにコードを核のだが、今度は If 文だらけで、どんどん TAB が右へ右へ、見えなくなるくらい右へ・・・ いずれにしても見づらい(笑)
(2)引数渡しは原則 ByVal
VB6では原則 ByRef で参照渡しというもの。別のプロシージャで安易に値を書き換えることができちゃうので、後から見たとき、わかりにくい。そこで出来るだけ ByVal ByBal ByVal と入力するのだが、非常に面倒(笑)
(3)プロシージャ呼び出しの後ろに()
VB6の場合、プロシージャ呼び出しの後ろに「渡す引数がない場合」()が省略されてしまう。一見それでいいのかも知れないが、C出身の筆者は最初、これにとくにとまどった。コードを見直し修正するとき、あるいは、コードを変更するとき、変数なのかプロパティなのか定数なのかプロシージャなのか、さっぱりわからない。これがVB2010になると、プロシージャには()がつく。見てわかりやすい。
などなど、他にも汚らしさの原因が結構あったのだが、これがVB2010になってからは、非常に見やすくなった。
さらに(これはVBというよりIDEの機能だが)、リアルタイムにあやしい箇所に波線が引かれる。つまらないタイピングミスも入力直後に知ることができるし、引数間違いや、型の間違いなどもつぶさに拾い出し波線が引かれる。少なくとも筆者は、この機能のおかげで、書き上げたプログラムでは、ほとんどバグはなくなった。このことは開発効率にも直結する。
そして爆速入力が可能なコードエディタ。以前はヒント程度だったがVB2010になってから、ちょっとだけ入力→ TAB で、一瞬に長い名前が入力できてしまえるようになった。このことは、分類しやすいように名前を省略しなくても平気になり、わかりやすい名前を使うことに専念できるようになった。当然、開発効率も跳ね上がる。
最後に、ほんとにどうでもいいことなのかも知れないが、筆者は、涙がちょちょぎれそうになったことが・・・
Private function Something( ) as integer
Dim A as integer
A = 0
Return A
End Function
と、Function に Return が書けるようになったことだった。
なんと VB6 では書けなかったので( Something = A としないといけなかった)、慣れるまでコンパイル時にバグでまくり!
ともかく 最近では VB6 での新規プログラム、増築プログラムは、とてもじゃないが書けなくなってしまった(理由。めんどうくさいから)(笑)
その他、宣言が構文の途中でOKになったり、いろいろとお気に入りのことは多い。感謝感謝だ。