この世の中には開発言語が多数あります。もちろん、文法もそれぞれ違っています。
なにゆえそういう状況なのかというと、各場面で使いやすい言語があるからなのです。

分かりやすく説明するために、例として私が主に使ってきた言語である C++ と、VB の長所、短所などを挙げていきます。

・コードの量

コードというのは、プログラムを構成する命令を定義したものです。 ここでは、ウィンドウを表示し、そこに文字を表示するというコードを掲載します。

・C/C++


#include 
#include "resource.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpsCmdLine, int nCmdShow);
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpsCmdLine, int nCmdShow)
{
	DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, (DLGPROC) WindowProc, NULL);

	return 0;
}

LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
	case WM_INITDIALOG:
		SetDlgItemText(hWnd, IDC_STATIC, TEXT("きゅるるん♪♪"));

		return TRUE;

	case WM_CLOSE:
		EndDialog(hWnd, 0);

		return 0;
	}

	return FALSE;
}	

注)この他にもリソース スクリプト、およびリソース ID 定義ヘッダーファイルが必要です。

・VB


Private Sub Form_Load()
	Label1.Caption = "きゅるるん♪♪"
End Sub

注)フォームにはラベル “Label1” が必要です。

はい、差は歴然ですね。コード量は、C++ では30行。VB では3行。C++ は VB のちょうど10倍ですね。
「じゃあ、VB の方がいいジャン。 はい決定~」なんて思うのは早いです。

・自由度

先ほどの例で、VB ではウィンドウ作成の手順が省略されています。対して C++ では明示的に表示するよう指示しています。
これは、アプリケーションを作成する際の自由度に関わってきます。
これはウィンドウ作成の事項に限らず、例えばポインタ使用の可否です。
プログラムに無くてはならないもののひとつに変数というものがあります。これは、数値を格納するための場所のことです。
ポインタというのは、その変数の場所を指す数値――例えて言うなら住所です。
少々難しい話になりますが、変数はその大きさが決まっています。大きなデータはたとえ配列にしたとしても、普通の変数領域には格納できないのです。
そこで、動的にメモリ空間を割り当て、それを使うわけですが、そのときに必要なのが変数の場所なのです。
また、関数ポインタという概念もあります。これについての解説は省略させていただきます。

・危険度

メモリの内容を連番で操作できるのはいいのですが、割り当てた領域の外を誤って操作してしまうと意図しない変数の値が書き換えられたり、プログラムの命令まで書き換えられてしまいます。
これを悪用したのがコンピュータ ウィルスです。

・実行速度

C++ はコンパイラ言語で、VB はインタプリタ言語です。
コンパイラ言語というのは、コードを一度にすべて機械語に翻訳してから実行する方式をとった言語です。
インタプリタ言語は、コードを1行ずつ解釈しながら実行するものです。
当然、一度にすべて翻訳してから実行した方が早いです。
例えば、「200 * 1.05円」と書かれるよりも 「210円」とかかれた方が可読性はいいですよね。(前者のような記述はまずしないと思うが…)
ただ、200 * 1.05円の方は税率が変わった場合は 1.05 の部分を書き換えるだけで済みます。
ということは、逐次実行のときに都合がいいというわけです。

・ランタイム ライブラリ

VB は、色々な部分が言語により補完されていて、プログラマーは手軽にプログラムを記述することができます。
その反面、補完される部分は他の何かにやってもらわないといけないわけです。その、他の何かは「ランタイム ライブラリ」といい、その機能を VB で書かれたアプリケーションが呼び出して実行しているのです。
そのため、呼び出しの際のオーバー ヘッド(実行遅延)が気になるところです。
また、ランタイム ライブラリは巨大なため、ダウンロードが億劫という問題もあります。
この問題は VB.net になってからも健在ですが、いずれ .net Framework という、VB6 以前でいうランタイム ライブラリが OS に添付されると予測されます。

このように、長所と短所を挙げていったわけですが、最後に私個人の意見として、以下のような結論付けをします。

  • C++: 速度を求め、複雑な処理をし、不特定多数の人に使われるアプリケーションに最適
  • VB: 速度をあまり求めず、単純な処理で、特定少数の人 (自分自身だけ、会社の部署内等) に使われるアプリケーションに最適

トラックバック

このブログ記事に対するトラックバックURL:

コメント & トラックバック

No comments yet.

Comment feed

コメントする