A 回答 (3件)
- 最新から表示
- 回答順に表示
No.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)
No.2
- 回答日時:
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の本質的違いからです(なぜ企みかも)。
No.1
- 回答日時:
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 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あるあるbotに投稿したけど採用されなかったあるある募集
あるあるbotに投稿したけど採用されなかったあるあるをこちらに投稿してください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
VC++とVC#の違いを教えて下さい
C言語・C++・C#
-
Debug Assertion Failed?
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Cを一通りやった後・・何をすれ...
-
String^の^自体が何を意味して...
-
HTMLってホームページ以外どん...
-
C言語を学びたいのですが・・・...
-
Windows Media Playerを開くと...
-
iCloudフォトライブラリ内の画...
-
Google ColaboでGUI作成
-
マウスのクリックを自動で
-
C#のゲーム作成
-
角が丸部分を画像上から検出す...
-
LIBCMT.LIBをリンクしてコンパ...
-
買い替え・・・プログラム言語...
-
python urlopen error について...
-
iPhotoのライブラリが肥大化
-
iPhoneのカメラロールへ画像を...
-
C++ 標準ライブラリの実際の中...
-
麻雀ソフトのソースコード
-
システムコールと標準ライブラ...
-
マイコンSHでSQRT(平方根)が...
-
jQueryのポップアップでデザイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコン
-
String^の^自体が何を意味して...
-
なぜHTMLのソースコードが無料...
-
VB と VC++ と VC#の違いは?
-
VC++とVC#の違いを教えて下さい
-
C++を読めるようになりたい
-
HTMLってホームページ以外どん...
-
C言語を独学でマスターした人。。
-
Java言語、C言語のメリット・デ...
-
初心者ですが お尋ねします。C...
-
私は文系の大学生です。 将来ゲ...
-
オブジェクト指向、理解しやすい?
-
中学生が最初に勉強するおすす...
-
C#でできてC++でできないことは...
-
VB6から新しいvbに切り替えたい。
-
c言語はどのくらい出来るように...
-
簡単なシューティングゲームの...
-
iOSゲームアプリが作りたいと思...
-
C++を学ぶためにCの知識は必須...
-
初心者におすすめのC言語開発環...
おすすめ情報