アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB・VCの初心者です。
Javaは結構かじっていたので、なんとなくわかりますが、そろそろVB・VC++等の勉強もしたいと思っております。

VB・VCを勉強するにあたり、疑問点があります。
そもそもVB・VC++・VC#の違いはなんでしょうか?
長所・短所があると思いますが、いまいちつかめきれておりません。
初心者のレベルでの質問で申し訳ないですが、
ご教授頂けますよう宜しくお願い致します。

A 回答 (3件)

VS2008ベースで。



VB.NET
*キーワードが想像しやすい(MustOverride, Shared とか)
*厳密な型付可変引数関数を一宣言で実装できる(Optionalキーワード)
*設定次第で厳密型付しなくてもプログラムできる(Strict Off)
*VB6の感覚でコーディングすると必ず嵌る

C#
*Javaでプログラム経験がある人に取っ付き易い
*.NETのために作られた言語なので、親和性が高い
*過去の柵に囚われず、言語拡張が起こりやすい
*unsafeによるポインタ操作が可能(VB.NETは不可)
*(私感)言語としてのお行儀は3種類の中で一番良いと思う

VC
*.NET/Win32コードの混在が可能で、できることが一番多い
*他プラットフォーム移植を考える場合、唯一の選択肢
*他アプリケーション連携でも唯一の選択肢(COMやPluginとか)
*互換性維持のため、記法が複雑になっている(new,gcnewとか)
*(私感)下手なプログラマに触らせると一番性質が悪くなる

.NET はちゃんと理解していないと、バリバリなプログラマさんでも
カウンタ不正な凡ミス起こしたりします。
VBやVCでのプログラム経験が"ある"人は要注意です。

質問者さんはJava経験者のようなので、こういった点には嵌りづらいと思います。恐らく言語周りでは苦労されないでしょう。
苦労されるとすれば、Windows特有の文化ですかね
(MessageDispatch, Handle とかのAPIと、相互運用のためのP/Invoke, CCW/RCW)
    • good
    • 0

 VB,C++,C#を語る場合、どうしてもWindowsとVisual Studio(以下、VSと略記)の経緯を無視できないので、けっこう長くなりました(申し訳ない)。

なお私はVBと長く付き合っているので、VBよりの回答になります。

(1)言語として
 これはもう、#1さんの参考URL(以下、URLと略記)に尽きますね。

(2)太古のBasicとC
 URLに書いてある太古のBasicがあるように、太古のCもあります。自分はFortranからプログラムに入ったので、Basicを見たとき、これはアマチュア用に骨抜きにされた C だと感じました。その後、両者の距離は縮まっていきますが、最初のVB2のVisual開発環境だけは、C++よりも遥かに進んだものでした。ただし出来る事は、まさに玩具。そのため実用レベルでは多量のAPIの支援が必要でした。実際いまでも、VBプログラマーズAPIレスキューマニュアルなんて本が現役で売れてます。つまりVBもやはり、C の骨抜き版として始まったのです。

(4)Windows小史
 初期のWindows3.1の開発モデルは、WindowsSDKです。これはC++を使って、何でもかんでもAPIで処理するスタイルです。この頃がVB2です。
 Windows95からモデルは、Vocument-View方式になりVC2が出て、その開発環境が始めてVisual Studioと呼ばれます。VB4のVSは、まだそう呼ばれていません(そう呼ばれるのは、VB5から)。その後のWindows98のモデルはWindowsDNAと三階層モデルですが、これらはVocument-View方式の明らかな延長線上にあり、すぐに陳腐化し、Windows2000でいちおう完成したと見ています。以上がVB4~VB6,VC2~VC6の時代で、VCの正体は、Visual C++でした(Visualの意味は、(6)に書きます)。
 WindowsXP以後のモデルは、Softoware Factories に移行し、.NETが導入され、VB.NET(2002~2008),Managed C と C# が出ます。C++を.NET仕様にしたのが、Managed C です。従って現在のVCは、Visual Managed C(2002~2008)と言えます。Managed C のWindows機能を多少圧縮し、Web機能を強化したのが C#(2002~2008)です。

(5)プログラムスタイル
 C++(VC)では、組み込みObjectを使って、Event Driven も出来る手続き型を書く事も可能ですし、Object指向をやる事も可能です。一方VBは、Event Driven も出来る手続き型を書く事が王道になります(MSの公式見解です。ただしVB6まで)。実際VB5でClassを持てるようになりましたが、VB6でも実装継承はサポートされませんでした。この頃、Objectとは名ばかりのVB、Visualとは名ばかりのVCなどと囁かれました。
 .NET以降は、VBも正式なObject指向が出来るようになり、VCのVisual度も上がり、現在では普通のWindows Applicationを書くだけなら、VBとVCはほとんど同じです。Cが必要になるのは、WindowsにInsideする場合です(Insideする理由は述べませんが)。
 URLにある高級AssemblerとしてのBasicは影も形もありません。しかし.NET Libraryがそれを肩代わりし(決して使い良くはないですが)、じつは.NET Library は、全ての C からも使えます。

(6)Visual Studioのやって来た事
 VSが今までやって来た事は、Windowsの開発モデルに従ってGUI周りのコード生成を、自動化した事です。VS2002でそれは、ほぼ完成の域に達しています。これが#1さんの「Javaに比べてGUI周りの開発が容易」の意味です。
 これと平行してもう一つの自動化が進んでいました。Data Base 周りの自動化です。これもVS2005 の Data Set で基本的にはほぼ完成と思われます。後はドライバーの種類が増えるでしょう。Data Setの目標は、表面上SQLを使わない、使わせないです。

(7)今後
 Softoware Factories には DSL という概念があり、UML の対極にある概念です。このDSL路線を歩んで来たのがVSです。.NETは当初、MSのJava退治に見えましたが、Softoware Factoriesが真の目的だったのかと、今では思っています。MSさんは、また何か企んでるようです。
 WindowsVistaには、新しい3つの基幹技術がFundationの名で搭載されており、VS2008には、それらに対するInterfaceまで付いています。3つのFundationを通して眺めるとこう思えます。「Application構造レベルでのコードの自動化に踏み切った」と。そう思えるのは、DSLとUMLの本質的違いからです(なぜ企みかも)。
    • good
    • 2

VBもVC++もVC#も主な開発環境はVisualStudioです(最新は2008)。


Express Editionであれば無償で学習が可能です
Javaに比べてGUI周りの開発が容易だと思います
(最近はNetBeansもGUIの開発を強化してるそうですが)

ただしExpress~はVSSによるソースコード管理などの機能がないので
そういった機能を求めるなら有償の上位editionを選択してください

VBは、VB6.0以前とVB.NET以降で区別したほうがいいかもしれません
Javaをかじってたのであれば本格的なオブジェクト指向言語に改良された.NET以降が
とっつきやすいと思われます

あとは言語の違いになると思います
参考URLに参考になりそうなサイトをリンクさせていただきました
目を通してみてください

参考URL:http://mag.autumn.org/Content.modf?id=2005050414 …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!