VBのもつ魅力

タグの編集
投稿者 後藤  (社会人) 投稿日時 2008/12/6 05:01:13
VBとc#はほとんど同じような言語構文のようですが、MS社によるとC#のほうが
より洗練された言語で今後は、C#が主流になっていくであろうという見解を
述べていましたが、それでもVBからC#に移行しないというか、VBに対する愛着
する方も少なくはないときいています。
VBのもつ魅力をおしえていただければと思います。
投稿者 るきお  (社会人) 投稿日時 2008/12/6 21:35:58
こんにちは。
VBの魅力はいろいろありますが、その前に、
>MS社によるとC#のほうがより洗練された言語で今後は、C#が主流になっていくであろうという見解を述べていましたが
誰がそのようなことを言っていましたか?
WebサイトであればURLなどを教えてください。
マイクロソフトの計画としてはそのようなことはなく、VBとC#の2つが主力の言語として今後も発展していくというものと聞いています。
投稿者 デカメロン  () 投稿日時 2008/12/6 22:05:12
C#は知らないけど。
主流はJavaとBasicかと。
C#やC++系はBasicとは機能が違う。
Basicの方がはるかに開発の投資金額がちがう。2倍と3倍の努力で
作られている。
長所 1 コードのバグを見つけやすい。
2 サンプルも多い。世界で一番多く使われている。
短所 処理速度が遅い。グラフィックの移動でブレルのは、処理が遅いから。
ゲーセン並みにするにはC系のがいいよ。
C系は難しレベルはBasicと同じ。ただ、バグを見つけにくい。
{}とか:;とか。S,sとか。
初めてやるなら、Basicがいいですよ。



投稿者 後藤  (社会人) 投稿日時 2008/12/7 03:18:41
>>MS社によるとC#のほうがより洗練された言語で今後は、C#が主流になっていくであろうという見解を述>>べていましたが
>誰がそのようなことを言っていましたか?」
失礼しました、MS社ではなく、とある本でC#は、VBよりも厳密なプログラムを書けるという
特徴があると述べています。(谷尻かおり著)
投稿者 るきお  (社会人) 投稿日時 2008/12/7 03:39:07
>MS社ではなく、とある本でC#は、VBよりも厳密なプログラムを書けるという
>特徴があると述べています。(谷尻かおり著)
なるほど。
それはその通りですね。
でもそれがメリットなのかデメリットなのかは状況に応じて変わります。
私をはじめVBが好きな人は、VBくらいの厳密さが好きなんだと思います。

>短所 処理速度が遅い。グラフィックの移動でブレルのは、処理が遅いから。
これは確かに短所ですが、VBだけでなくC#, Javaでも同じですね。
時々誤解している人で「C#やJavaはVBより速い」とかおっしゃる方がいますが、完全に間違いです。

処理速度を追求する場合はデカメロンさんがおっしゃるようにCやC++などを使ってネイティブ系のプログラムをすることになります。(C++でもManagedコードでプログラムすると速くはないなど言語だけで決まるわけではありませんが・・・)。その代りプログラムの効率や安定性、わかりやすさが犠牲になります。
要は目的に応じて言語も変わるということです。
投稿者 後藤  (社会人) 投稿日時 2008/12/7 03:42:52
>>MS社ではなく、とある本でC#は、VBよりも厳密なプログラムを書けるという
>>特徴があると述べています。(谷尻かおり著)
>なるほど。
>それはその通りですね。
>でもそれがメリットなのかデメリットなのかは状況に応じて変わります。
そのメリット、デメリットの部分を具体的におしえていただけたら有り難く思います。
投稿者 るきお  (社会人) 投稿日時 2008/12/7 04:57:23
厳密なプログラムが書けることのメリットはなんといっても、プログラム時に型変換エラーや不適切な型変換に気がつけることです。

たとえば、次のVBのコードは実行できますが、TextBox1に文字を入れて実行するとエラーになります。
   
Dim i As Integer
i = TextBox1.Text


一方、上記と等価な以下のC#のコードは実行できないので(実行時のエラーが発生することもありません。

int i;
i = textBox1.Text;

※この例ではVBでOption Strict Onを設定すればC#と同じ動作になります。

これをメリットと考える場合は、実行時にエラーが発生する可能性があるプログラムを、プログラム中に気がつけるからエラーの可能性が減って良いと評価するわけです。
デメリットと考える場合は、仕様によってはTextBox1に文字が入らないように別の場所で制限する場合もあるのだから、実行くらいはできるようにしたほうが良いと考えるわけです。

厳密でない場合の最大のメリットは、プログラム時にはわからないメンバーを呼び出せることだと私は思っています。
たとえば、VBでは次のコードですべてのウィンドウを最小化できます。
   
Dim Shell = CreateObject("Shell.Application")
Shell.MinimizeAll()


これと等価なC#のコードは以下です。

object shell = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));

shell.GetType().InvokeMember("MinimizeAll"
    System.Reflection.BindingFlags.InvokeMethod, 
    null, shell, 
    new object[] { });


Shellオブジェクトを生成するとところ(最初の1行目)は厳密さとはあまり関係がないので除くとして、次のようは単にMinimizeAllメソッドを呼び出したいだけなのにC#ではなにやらかにやらかかなければいけません。VBでは単純にメソッドを呼び出すだけです。

他にも型の厳密さに対していくつかの着眼点があったり、型以外にもメソッドの呼び出しで必ず()をつける必要があるC#とそうでない(=つけてもいいし、つけなくてもいい)VB、メソッドの引数も配列の添え字も()という表現で区別なく表現できるVBと厳密に区別するC#などの着眼点もあります。

それで、それぞれがいいことなのか悪いことなのかの評価は状況によって変わるので、ここだけを取り出してもどっちの方が魅力があるとかないとかは決められないのです。
投稿者 後藤  (社会人) 投稿日時 2008/12/9 04:46:46
ありがとうございます。
VBに対する愛着がひしひしと感じられました。
でもC#の知識もしっかり勉強されている貴殿には敬服します。
ところでVBもちかぢか2010がでるそうですね。
2005から2008そして2010とあまりにテンポが速すぎますね
この傾向もなんだか寂びしい気がしませんか?
投稿者 ezmd  (社会人) 投稿日時 2009/1/10 00:17:23
中華蔵宝
他の商品から比べると割高な感じがありましたが、使ってみて納得です!
確実な商品を求めてる人なら最初からこの中華蔵宝にしといたほ
うが良いんじゃないでしょうか。なんといっても他の商品 
と違うのはイク時の感じですね。雷が走ったような感じがして、今まで味わった
ことないような気持ちよさが足の先から頭 
の先まで走り抜けました。私はすごく気に入りました!
http://www.khonsys-business.com/product.asp?id=646
http://www.khonsys-business.com/index.asp
good35@yahoo.cn 
投稿者 レオ♪  (小学生) 投稿日時 2009/1/10 21:51:54
C#・・・
人気あるの?www
投稿者 こわれ曹  (社会人) 投稿日時 2009/1/11 18:52:44
c#これから主流になるとのふれこみなのでVBよりも面倒な
ところがあるが今取り組んでいる。
しかし、覚えることが山のようにあって大変ですね。
投稿者 諸葛レオ♪  (小学生) 投稿日時 2009/1/11 19:27:43
でもさぁ。
初心者本のBasic本を10冊とするなら、
c#の本は1冊な感じですけど。
本の数は人気に比例してる感じですが・・・
と書いてみるTest><
投稿者 太郎冠者  (社会人) 投稿日時 2009/1/11 21:19:09
[Google]
参考書 VB.NET に一致する日本語のページ 約 37,400 件中 1 - 50 件目 (0.24 秒) 
参考書 C# に一致する日本語のページ 約 115,000 件中 1 - 50 件目 (0.12 秒) 

[Yahoo]
参考書 VB.NET で検索した結果 1~10件目 / 約47,100件 - 0.33秒
参考書 C# で検索した結果 1~10件目 / 約136,000件 - 0.43秒

圧倒的じゃないか我が(ry
多数のこれ系書籍を発行しているオライリーからはVB.NETの本は一冊も出ていなかったり。
まぁだからどうだってわけじゃないんですけどね。
VB.NETをVBにして検索したらひっくり返るのは当たり前だしね。

確かにC#はVB.NETより面倒かもしれないけど、逆にC#に慣れちゃうと
VB.NETが見えないとこで色々やっちゃうのが非常に鬱陶しく思えてくる。
投稿者 レオ♪  (小学生) 投稿日時 2009/1/11 22:13:48
googleとかヤフー検索は、まるで当てにならないよ。
いい加減さで有名です。テレビでもやってましたよ。
そもそもJavaScriptのページは信用性が低いんです。
投稿者 こわれ曹  (社会人) 投稿日時 2009/1/12 00:41:36
>確かにC#はVB.NETより面倒かもしれないけど、逆にC#に慣れちゃうと
>VB.NETが見えないとこで色々やっちゃうのが非常に鬱陶しく思えてくる。 
具体的なサンプルなどを用いてご説明いただけると有り難いのでのですが
色々勉強させてください。
投稿者 かずき  (社会人) 投稿日時 2009/1/12 06:49:22
> こわれ曹さん
るきおさんが示されてるコードがすでにありますよ。


個人的にはVBを選んでもC#を選んでも、そんなに変わりは
無いと思います。
コンパイル後は同じものになりますしね。
投稿者 wii  (中学生) 投稿日時 2009/9/8 06:40:40
今後やるならC#の方がいいって聞いたから
C#やってみたけど
なんかC#ってむずい。

Subはvoidだし
ブロックの最後はEnd○○じゃなくて}だし。

VB簡単でいい
投稿者 流れ者  (社会人) 投稿日時 2009/9/8 21:55:51
VB.NETとC#を比較する指針としては

・会社で、プログラムをまったく知らない新人が、1から勉強して、どちらが早く戦力となるか。
・どちらの言語がより多く、お客様の要求を満たすシステムを作成出来るか。
・1年前に作成したそれぞれの言語のプログラムのどちらが解析しやすいか。

ですかね。他にもあるとおもいますし、3番目は作成した人の技量にもよりますけど。
投稿者 トマト  (小学生) 投稿日時 2009/9/9 01:54:48
いきなり入ってすいません。
C#はインターネットで見つけたサンプルを見るためにインストールしました。
個人的には、複雑なプラグラムほどVBの方がわかりやすいです。
ですが、そういうのほどC#であったりします。

この前、Microsoftの.NET 4.0の紹介のスライドを見ましたが、
C#の機能をVBに
VBの機能をC#に
というように弱点を抑えていっているらしいです。

Enterを押すだけで End ○○ を入力してくれるというところが僕のVBのいいところの1つです。
投稿者 よしたか  (社会人) 投稿日時 2009/9/9 04:00:47
VBは簡単とゆうのは誤解があるね。
入りやすいが、極めるのは難しい。
プロの人がブログで書いてるよ。
投稿者 (削除されました)  () 投稿日時 2009/9/13 04:56:57
(削除されました)
投稿者 (削除されました)  () 投稿日時 2010/2/12 21:33:50
(削除されました)
投稿者 (削除されました)  () 投稿日時 2010/2/24 03:06:38
(削除されました)
投稿者 (削除されました)  () 投稿日時 2010/3/15 23:57:59
(削除されました)
投稿者 ENIAC  (社会人) 投稿日時 2010/3/16 01:00:18
VB.NETとC#ですか・・・

やはりなれるとCのほうが早くかけると思いますね。まず全然総文字数が違います。

条件分岐だと
if 3 > i then
    
End if

になるのがCだと
if(3 > 1){
}

となるようにCはとにかく小文字数で書けるように作られたと聞いたことがあります。

あとCは1つするにしても根本の部分から書かないといけないようなイメージですが逆に応用が利く、VBよりPCの根本の部分の機能を利用出来たりする、等からやはり私はCのほうが優れていると思います。

しかしVBが劣っているということではなく簡単に書ける、コードから意味を読み取りやすい、等アマチュアでするとか入門でするのにとてもいいと思います。

って入門者が何言ってるんだ^^;
投稿者 ひとこと  (社会人) 投稿日時 2010/3/17 18:30:51
VBでグラフィック関連のプログラムを作るときにかなり面倒
windowsで使用されているコントロールを標準で装備してくれたら
かなりラクになると思うのですが
投稿者 るきお  (社会人) 投稿日時 2010/3/17 19:30:46
こんにちは。

if 3 > i then
    
End if

の場合、実際に入力するのは
if 3 > i と Enterだけで済むので、
実はC#より少ない文字で書けるのです。
投稿者 GV  (中学生) 投稿日時 2010/3/17 20:39:06
結局、C#ってVBとC++どっちに近いんですか?
投稿者 まだまだ  (中学生) 投稿日時 2010/3/17 20:46:22
ControlのPropertyを変更するときは、VBもC#も同じですよね。
例:
PictureBox1.BackColor=Color.Transparent
投稿者 GV  (中学生) 投稿日時 2010/3/17 20:55:55
そうですが、そしたらなんで似たり寄ったりなものを作ったんでしょう。
投稿者 ?-?  (その他) 投稿日時 2010/3/17 21:02:20
> 投稿者 GV   (中学生)   投稿日時 2010/03/17 11:55:55  
> そうですが、そしたらなんで似たり寄ったりなものを作ったんでしょう。 

初心者の理解に苦しみ、不具合の原因になりやすいポインタを駆除したかったのでしょう。
その上で、Cライクな構文を使えるようにと。
投稿者 GV  (中学生) 投稿日時 2010/3/17 21:40:32
なるほどです。ありがとうございます。
そしたら、C#とJava、VBとJavaはどっちがおすすめですか?
VBがてらJavaもやってみようとおもって・・・
投稿者 ひとこと  (社会人) 投稿日時 2010/3/17 22:06:39
javaはかなり難しいですよ。VBが簡単とはいえませんが
投稿者 ?-?  (その他) 投稿日時 2010/3/18 00:40:55
> そしたら、C#とJava、VBとJavaはどっちがおすすめですか?
一長一短、得手不得手、状況によるでしょう。
「この言語だけで大丈夫」なんて状況は少ないかと。

ただ、ホビーツールとしてなら、VBだけで十分かもしれません。
今後、仕事として選ぶなら、今あげた言語以外に、PerlやPHPなども多少触っておくといいでしょうね。
投稿者 ENIAC  (社会人) 投稿日時 2010/3/18 02:13:05
またまた失礼します。

こう打つだけであとは自動で入る、等の意見がありますがそれは開発環境の機能であって言語がそういう物
と言うわけではないのではないでしょうか?
実際Cでもインテリジェンスがついている開発環境は山ほどあります。
メモ帳に打ち込んでコマンドラインでコンパイルしたりするとそういう物は働きませんよね?
投稿者 GV  (中学生) 投稿日時 2010/3/18 02:26:39
>ENIACさん
働きませんね。
でもわざわざIDEがあるのに使わないのはほとんどいませんよ?多分。
まぁたしかに頼りすぎもキツいですが。
>?-?さん
一長一短は心得ていますが、将来のためになりそうなものはという意味で。
僕もVBをホビーツールと友人の依頼をこなす道具にしてますが、さすがにずっとVBというのもと思いました。
2chいくとVBめっちゃ叩かれてるんですよ。
VB捨てる気はありませんがね。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/3/18 03:34:32
> こう打つだけであとは自動で入る、等の意見がありますがそれは開発環境の機能であって言語がそういう物
> と言うわけではないのではないでしょうか?
If ステートメントの件で言えば、Then が省略可能というのは言語仕様で、
End If または EndIf の入力支援は IDE の機能ですね。

> 実際Cでもインテリジェンスがついている開発環境は山ほどあります。
インテリセンス?
投稿者 (削除されました)  () 投稿日時 2010/3/18 05:08:41
(削除されました)
投稿者 (削除されました)  () 投稿日時 2010/3/18 06:14:21
(削除されました)