- PR -

ASP.NETの言語選択(C#とVB.NET)

投稿者投稿内容
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2002-11-21 18:25
C#好きの偏った意見としてお読みください。

C#は.NETプログラミングのエリート(.NETのために作られたのでもちろん)であり、逆にVB.NETはVBに似ていることを宿命付けられている言語です。

それぞれの言語には、作られた理由があります。(気まぐれで言語を研究開発するなんてMicrosoftでもしなと思いますから)

もしVB.NETが作られずにC#、MC++だけだったらどうでしょう。
「Microsoftが.NETってのを発表したけど、良くわかんないし、新しい言語使わなきゃいけないし、今の開発(VBとかVBSでASPとか)の方が効率がいいから、とりあえず.NETはいいや。様子見しとこ。」
と多くの開発者が考えるのでは?
VB.NETは開発者を.NETの世界にすんなり移行させるために必要でした。

ではC#の意義は?
「C#もVB.NETも書き方が違うだけで同じだ」などと言われています。そして.NETが得意とするWeb開発の開発者はVB.NETの方がすんなり入っていけるでしょう。
Javaに似た言語が欲しかった?それはJ#が満たします。

さて、こう見ると意味がなさそうですが、Microsoftは研究開発費をかけてC#を作りました。
それはパワフルな.NETプログラミングのためです。.NETの世界を余すところ無く、かつ余計な癖もない言語が欲しかったのです。
C#は.NETに合わせて仕様を決められますが、VB.NETには「今までの開発者を.NETに取り込む」という役目があるため、VB臭さを持っていなければなりません。

私はVB.NETはほとんど触ったことがないので確信は持っていませんが、「VB臭さ」と「パワフルプログラミング」が両立できなかったのがC#を開発した理由では?

で、こんだけC#を持ち上げておきながらですが、どちらが良いかという問題の結論は「VB.NETの方が良い」です。仕事で使うらしいですし、周りの方はVB(VBS?)になれていらっしゃるんですよね?
VB.NETの方が仕事が楽になると思います。私のようなC#大好き(かつVB嫌い)人間はC#選んじゃうかもしれませんが・・・。
nday
会議室デビュー日: 2002/11/20
投稿数: 15
お住まい・勤務地: 埼玉
投稿日時: 2002-11-21 20:02
なるほど。
Jittaさん、一郎さん、ご意見ありがとう御座います。

引用------------------------------------------------------
 VB.NETで1つ作りましたが、どうも、VB.NETでは・・・どういったらいいのかわからな
 い・・・インテリセンスで、組み込みのメソッドなどは選ぶとその説明が出ますが、自
 作のDLLなどからインポートしたり、プロジェクトないであってもそういう説明を出す
 仕組みが無いようです。が、C#であれば、それが出せるそうです。多人数で開発するな
 ら、必ず役に立つ機能です。
----------------------------------------------------------

 細かいところで違う点があるのですね。
 その辺も調べてみて職場の人を納得させる(C#に)材料にします。

引用------------------------------------------------------
 C#は.NETプログラミングのエリート(.NETのために作られたのでもちろん)であり、逆
 にVB.NETはVBに似ていることを宿命付けられている言語です。
----------------------------------------------------------

 正にそのようなことが雑誌に書いてありました。
 VB.NETはオブジェクト指向を接木したものであるのに対し
 C#は純オブジェクト指向であるとも書いてありました。

引用------------------------------------------------------
 もしVB.NETが作られずにC#、MC++だけだったらどうでしょう。
 「Microsoftが.NETってのを発表したけど、良くわかんないし、新しい言語使わなきゃ
 いけないし、今の開発(VBとかVBSでASPとか)の方が効率がいいから、とりあえず.NET
 はいいや。様子見しとこ。」 と多くの開発者が考えるのでは?
----------------------------------------------------------

 そうだと思います。
 .NETの説明には資源の再利用という言葉が多くでてくる気がします。
 かといって以前COBOLをやっていた人に、COBOLも使えるからといって
 薦めるのも問題がありそうですね。
 これと同じことがVB.NETにも言えるのでしょうか(飛躍させれば)。
 
結論としては周りの人の猛反対が無ければC#で行きます。
会社としては解りませんが開発者にとってはその方がプラスになりそうだからです。
こんな社員は駄目かなやっぱり。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2002-11-22 10:10
>こんな社員は駄目かなやっぱり。

社員としては判りませんが、技術者としてはむしろ「良しっ!」だと思います。

VBの良さは
「どんな型の値でも入れられるあの変数」ではなかったですか?(私は御免ですが)
「勝手に新しい変数を作ってくれる機能」ではなかったですか?(私は御免ですが)
「返り値を指定するのを忘れると勝手にデフォルト値を返してくれる関数」ではなかったですか?(私は御免ですが!)

それらが無くなって雰囲気だけしか残っていないVB.NETを使う理由はありません。キーワードや文法が似ているため、VBに慣れている人がすばやく習得できるという以外は。
「早く習得できる」のと「良い製品が作れる」のは必ずしも相関関係にはないと思いますし。

妥協して不本意な選択をし、後で「あっちの方が良かった」と思うよりは、自分の好きな方(もちろんC#ですよね?)を選んだ方が結果に納得がいくのかもしれません。
nday
会議室デビュー日: 2002/11/20
投稿数: 15
お住まい・勤務地: 埼玉
投稿日時: 2002-11-22 12:30
引用:

キーワードや文法が似ているため、VBに慣れている人がすばやく習得できるという以外は。


 その通りです。プログラムで生計を立てる者として、その様な理由だけで
 流されるのはイカンと思います。他にVB.NETがC#より勝っている部分があれば
 別ですが、今のところ特別見当たりません。プログラマの視点からすると
 自分が楽をするためだけにVB.NETに流されるのは単なる怠慢だと思います。
 会社の方針などで仕方がない場合も多いと思いますが、幸い私の場合は
 声高にC#の呪文を唱えれば上司に効きそうです。
 現在、ASP.NETの解説書(日本語)にあまりC#が無いのが残念ですが、
 このサイトで実施しているアンケートの習得したい言語No.1はC#らしいので
 今後に期待します。(C#の解説書の帯に書いてありました。現時点なのかな)
 またC#はECMAにて標準化されているとの記事がありましたが、VB.NETでは
 そのような記事は見当たりませんでした。何年後かにはC#が主流になることを祈ります。
 
こべっこ
常連さん
会議室デビュー日: 2002/06/22
投稿数: 20
投稿日時: 2002-11-22 13:02
「プログラマが楽をする」ことを「怠惰」という評価にするのはビジネス的ではないですね。
「教育期間が短い」ことで「コスト削減」に繋がっているのであれば、それはビジネスです。
VB.NETの適用でトータルコストが下がるのであれば、そっちを選択するべきでしょう。

とはいえ、「どうせC#を覚えなきゃいけなくなる」のであれば、いつ覚えてもコストは
変わんないので、今から覚えておくことはコスト増にはならない、という説得が正しい
と思います。C#とVB.NETの違いよりも、.NETフレームワークそのものの勉強の方が
ボリューム感ありそうですし。
andy
会議室デビュー日: 2002/11/22
投稿数: 13
投稿日時: 2002-11-22 17:06
ご参考になるかどうかわかりませんが...

私は元々MS信奉者でも何でもありませんでしたが、C#に出会ってからは、
未も心もVS.NET featuring C#にどっぷり漬かってます。(;->)

最初は、Linux上で計算アプリをgcc(g++)を使って開発してたんですが、
C++はヘッダ記述なんかがかったるくって、あまり良い印象を持ってませんでした。
何でかJavaには一回も出会わないまま、C++Builder試してみて×
Delphiはコンポーネントアーキテクチャがしっかりしていて、
なかなかいいんだけど、vector<*>が使えないなんて論外!
と、物色していたら、C#に出会いました。

C#に会うまではRubyも少し使ってましたが、正規表現クラスが.NETにあるので
もうC#一本でOKです。(あと、「窓使いの憂鬱」も私には必須!)

どんなにMS嫌いの人でも、C#(と「窓使いの憂鬱」)があれば、
理想(オブジェクト指向/コンポーネント指向)と現実(サクサクっとプログラミング)が
見事にミックスされた開発環境が手に入ります!

独断と偏見で定量すると
C#.NETは、(参考情報の量も加味して..)
C++Builderの10倍、C++.NETの5倍、VB.NETの2倍、Delphiの1.5倍
生産性が高くなると思います。
nday
会議室デビュー日: 2002/11/20
投稿数: 15
お住まい・勤務地: 埼玉
投稿日時: 2002-11-22 18:38
引用:

「プログラマが楽をする」ことを「怠惰」という評価にするのはビジネス的ではないですね。
「教育期間が短い」ことで「コスト削減」に繋がっているのであれば、それはビジネスです。
VB.NETの適用でトータルコストが下がるのであれば、そっちを選択するべきでしょう。


 すいません。かなり間違って書いていたので訂正させてください。(前提すらなかった)
 会社は全く関係がない状況で、と最初に付けてください。
 単純に、選択肢が複数あるのに何も考えず結論を出すのが怠惰だと思います。
 それでも語弊があるのかもしれませんが。

andyさん>
熱いご意見をお持ちですね。私もその生産性を体験したいです。

スキルアップ/キャリアアップ(JOB@IT)