諏訪通信ネットワーク
スポンサードリンク
製品情報 ダウンロード サポート お知らせ
   


ソフトウェア

for Windows
Xp Vista 7 10

Keyboard IE
カーナビを...
ダイアグスキャナー
徒歩メーター
燃費ティーチャー

サンプリングメーター
みるCAN
CANメッセンジャー
CANレコーダー
CANレーベル



コーヒーブレイク

VB6の長所と短所
なぜVB6を使うのか
VB6のトラブル集1
VB6のトラブル集2
UWPのトラブル集1



蓼科電研














なぜVB6を使うのか




諏訪通信ネットワークで公開しているソフトウェアは、基本的に Visual BASIC 6.0 SP6(以下、VB6) で コーディングしています。



1.VBについて

VB6は、現行のVB.NET とは言語仕様も動作仕様も大きく異なります。 同じVBであっても別の言語と捉えた方がよいかもしれません。 C言語とC++の差とは比較にならないくらいの違いだと考えます。

VBAは、VB6と言語仕様が基本的に共通のため、VBAが使える人はVB6も違和感なく使えるはずです。 しかしVB.NET しか知らない人は、VBAを初めて使うときに苦労するように、 VB6で本格的なコーディングをしようとしたときに VB.NETのノウハウや.NET Frameworkが使えず、 「こんなことすらできないのか?」と、苦労するはずです。

ですので、VB6は時代遅れの言語として一般的に捉えられています。



VBの推移



2.VBの印象

「Visual BASIC」 という言葉を出すと、軽く見られたり、否定的な言動を受ける ことがよくあります。実際はVBを使用したことがない人がほとんどであり、他人から耳にした噂や イメージからネガティブに捉えている場合がよくあります。 しかし、火のない所に煙は立たないので、なぜVBが世間一般で否定的なのかを以下のように考えてみました。
これだけを見ると、確かにVBに良い印象は持てないかもしれません。


VBがネガティブに捉えられる理由

中間言語(P-code)での処理の遅さが、当時のパソコンでは際立ったため。
国民機であったPC-9800シリーズに付属されていたN88 BASIC は、 言語仕様がC言語と比べて難解であり、コーディングツールの操作性も不便であった。 それによって「BASIC系=ダメな言語」というイメージを持たれた。
Visual Basic 5.0 でネイティブコンパイルしたソフトウェアは、原因不明なエラーが多発したため。
初代 Visual Basic.NET から 2003までに対応する当時のパソコンでは、処理の遅さが際立ったため。
Visual Basic.NET 2003までの.NET Framework 1.0は、できることが少ないため。
Visual Basic.NET(.NET Framework 1.0)への切換、言語仕様の大幅な変更は、混乱を招いたため。
VC++での膨大なコーディングが不要となり、プログラマーとしての自尊心が傷付くため。
VB6、VB.NET、.NET Frameworkは、VC++とは言語表現がまったく異なり、新規で学習していく必要があるため。




3.VBの環境

ここで、VBの最大の懸念点である処理速度について考えてみます。
VB6が展開されていた1999年頃と、15年経った2014年では、パソコンの性能が大きく進化しています。
当時のパソコンは、OSであるWindowsでInternet Explorerを起動するといった単純な動作だけでも、 パソコンの性能によって大きな差異が見られました。インターネットを閲覧するのにもCPUに高い負荷が掛かり、 メモリもHDDもグラフィックも性能が低かったため、人々はインターネットを快適に見るために高いパーツを買ってパワーアップさせていました。
今では、安いスマホですらインターネットがサクサクと見られるので、スマホ世代には想像すらできない原始的な世界だったのです。

ここで、1998年に一般的に使用されていた初代Pentium 200MHz と2014年に販売されている Core i5 4590を 例として比較してみます。クロック比較では単純に17.5倍へ進化しています。 ベンチマークソフトの値を比較すると 1コアあたりの処理能力は、141.75倍以上に達しています。

VB6は並列処理やスレッド処理に対応していませんので、基本的に使用できるコアは1つですが、 シングルコアと違いCPUを100%使うようなコードを書いても残りのコアが空いているため、 Windowsが重くなったりフリーズすることもありません。


パソコンの進化





4.VBの処理速度

当時はVCより処理速度が劣ると言われたVBですが、VB6はネイティブコンパイルのため処理速度は割と速く、 CPUの性能が現在よりも圧倒的に低かった時代でそれなりに動いていたのです。つまり、当時は遅かったかも しれないが、今使えば非常に処理速度の速い言語として使えるのです。
          処理能力の進化


.NET Framework を使用した VB.NETでも、コーディングを適切に行えば処理速度はそれなりに高くできます。 並列処理やスレッディングによる処理の分散化によって、マルチタスクOSとマルチコアCPUの有益性を活用 した高速化もできます。 しかし、それらのソフトウェアを例えばPentium2が載ったWindowsXPのパソコンで動かすと非常にもっさり とした動きになり、パソコンが壊れてるのではないかと思うようなフリーズも多発します。 初回起動時はJITコンパイルが発生するため時間が掛かるのは当たり前ですが、実行時はネイティブコードが使用されてコンパイルデータはキャッシュとして残るのですが、 Core2やCoreiなどに最適化されていてメモリ消費量も多いためPentium2などの古い環境であると遅くなってしまうようです。
つまりVB.NETは、世間で言われるように処理速度は遅いのです。しかし現在の高性能なCPUが存在している おかげで、VCと比べて圧倒的に少ないコーディング量で複雑なGUIの処理がストレスなくできているのです。

VBの比較




5.他の言語との比較

VB6やVB.NETの利点は、少ないコーディング量で見栄えの良いGUIが使えて便利なところです。
VCの利点は、やはり処理能力です。Windowsプログラムで、VCより速く動く言語はありません。
しかし、簡単なボタンやラベル程度のGUIですら、コーディングするのはかなり面倒です。


言語の比較



6.VB6の良さ

つまりVB6は、VB.NETの利点と、VCの利点の良いとこ取りな言語といえるのです。
VB6で使えない機能はWin32APIを直接呼べばいいのです。
どうしても高速な処理が必要であれば、その部分だけVCで書いてDLL化し、VB6からDLLを呼べばいいのです。
初代Pentiumで動く言語が、今のパソコンを使用して遅いはずがありません。当時にコーディング してはみたものの、もっさり動いて諦めたプログラムがあれば、試しに今のパソコンで動かしてみましょう。 サックサクに動いて感動するはずです。
(無限ループに近いバグコードであれば、処理能力は関係ありませんが・・・。)


  vb6の補完







スポンサードリンク

 Copyright (C)1999-2019 SUWA TSUSHIN NETWORK. All Rights Reserved.
ご利用条件