CとVB系のそれぞれ好きなところ、嫌いなところを書いてみる。
これは私の個人的な好き嫌いであって、言語の優劣を議論するつもりはない。
こういう視点もありますよということで読んでもらえればと思う。
VB系はVBファミリー(VB6、VBA、VBS、VB.NET)のことである。
C系というのは、Cっぽい(行末のセミコロン、ブロックを示す{}などの特徴を持つ)言語全てのことである。
Cのコード
int Main() { int i = 0; for (i = 0; i < 10; i++) { printf("Hello, World!\n%d回目です。\n", i); } }
好きな点:
宣言と代入が一度にシンプルに書ける。
インクリメント演算、合同演算(+=とか、-=とか)
printfのフォーマット付き出力
嫌いな点:
記号が多くて入力中にイラっとする。
行末のセミコロンとか、{}とかの小指系が特に。
配列のカッコが小指系[]なのも。
小文字と大文字を区別(Cの利点ではあるが、嫌い)
変数の初期値が不定。(CとC++のみ?)
VBAのコード
Sub main() Dim i As Integer For i = 0 To 10 Step 1 Debug.Print "Hello, World!" & vbNewLine & i & "回目です。" & vbNewLine Next i End Sub
好きな点:
ブロックの終了条件が分かりやすい。
(End Subとか、Nextとか、End Ifとか Loopとか、何が終わるのか明瞭)
小指系の記号がCに比べて少ない。
IfやForがカッコを使わずに書ける。
小文字と大文字を区別しない点
Pascal記法は先頭文字がアイキャッチになるので、見やすい。(主観)
変数の初期値が決まっている。
嫌いな点:
& vbNewLine &が煩わしい。
変数宣言で、いちいち As 型名が要る。
(Cだと、int i, j, kは全部intになるが、
VBではDim i As Integer, j As Integer, k As Integer)
VBAの場合、インクリメントが面倒くさい。x = x + 1とか。
Cのx++; x+=1はエレガントだと思う。
VB.NETでインクリメントに対応したのはGood。
個人的にはどちらかといえばVB派。
でも、こう書けたらいいなと思う。
Sub Main() Integer i For i = 0 To 10 Step 1 Printf "Hello, World!\n%d回目です。", i Next i End Sub
以上