私はVC++を3ヶ月ほど、C#は触った程度の大学生です。
他の言語ではCを3年間学び、pascal,javaはある程度わかる扱うレベルです。
C#かVC++を学ぼうと思っているのですが、悩んでいます。
先日まで私は
C#はVC++より開発効率がよく、
VC++はC#より実行速度が速く、ライブラリが豊富、
と思っていたので、両方ともしっかり学ぼうかと思っておりました。
しかし、以下のサイトではC#の実行速度はVCとほぼ一緒と出ており、
http://homepage2.nifty.com/Fujimaki/download/Com …
また昨今ではC#もライブラリが充実してきていると聞きます。
なので、これから学習するのはC#だけでもいいかなとも思うのですが、どうなのでしょうか?
それとも、windowsプログラミングの仕組みをしっかり理解するためにも,VC++のsdkプログラミングくらいはした方がよろしいでしょうか?
長文申し訳ございません。
よろしければ、どなたかご意見お願いいたします。
No.3ベストアンサー
- 回答日時:
>C#はVC++より開発効率がよく、
>VC++はC#より実行速度が速く、ライブラリが豊富
これはあくまで一般論ですね。
下手なC#プログラマのそれと上手なVC++プログラマのそれは比較にならないでしょう(後者であれば逆のパターンで)。
>しかし、以下のサイトではC#の実行速度はVCとほぼ一緒と出ており、
ざっと読んでみましたが、罠が幾つかあるように思います。
1.2002年と古い時期の比較である。
→おそらく.NET Framework1.0の時代です。今の2.0や3.0とは比べ物にならないでしょう。
2.「VB, VCは .NETを使用」とある。
→.NET Framework上で動作させてしまったらパフォーマンスは落ちます。というより、C#とVCの差が殆どなくなる事のほうが重要でしょう。
3.VC++をC++とみなすなら、C++Builderとの差が説明できない。
→コンパイラ(実装)によっても変わってくるという好例です。
>これから学習するのはC#だけでもいいかなとも思うのですが
hykuranさんがそう思われるのならそれでも結構だと思います。
実際に開発の現場で言語を選択できるケースと言うのは非常に稀ですし、
大学生の今ぐらいしかそんな悩みはないでしょうから(笑)。
ただ、せっかくC言語を3年もおやりになったのですから、
その上級言語であるC++で追加された、クラスを使ったオブジェクト指向プログラミングは是非学んでおいて欲しい。
というのが私の率直な感想です。
もっとも、オブジェクト指向に関してはC#やJavaのほうが洗練されていて分かりやすいですけども。
ここまで来れば、構造化プログラミングやオブジェクト指向など、実装パターンを意識して言語を勉強すべきだと思います。
逆に、実装パターンをしっかり習得すれば、どんな言語であれ習得するのはそう難しくないはずです。
懇切丁寧で密度の高い回答ありがとうございます。さすが専門家さんです。
>>しかし、以下のサイトではC#の実行速度はVCとほぼ一緒と出ており、
>ざっと読んでみましたが、罠が幾つかあるように思います。
たしかにpiyo2000さんのご指摘のとおりですね、私が浅はかでした。申し訳ございません。
>ただ、せっかくC言語を3年もおやりになったのですから、
>その上級言語であるC++で追加された、クラスを使ったオブジェクト指向プログラミングは是非学んでおいて欲しい。
>というのが私の率直な感想です。
熟練されたプログラマーほど、C++を学ぶことを学ぶことの大切さを訴えておられる気がします。piyo2000さんの仰るとおりに、がんばってC++も理解してみようかと思います。私の頭では力不足かもしれませんが(笑)
>ここまで来れば、構造化プログラミングやオブジェクト指向など、実装パターンを意識して言語を勉強すべきだと思います。
>逆に、実装パターンをしっかり習得すれば、どんな言語であれ習得するのはそう難しくないはずです。
なるほど実装パターン、ですか。構造化プログラミングは理解できているので、オブジェクト指向の実装パターンをこれからは重点的に学んでいこうかと思います!
piyo2000さん、本当にありがとうございました!
No.2
- 回答日時:
Windowsの開発現場が続くと想定されるなら、C#を選択ってのもありかもしれないですね。
C++とは違った作法に従う必要のある言語のようですからね。ただ、Unixとか、他の環境での開発が多いかもしれない(やりたい)なら、C#は使えないですから、C++(VC++)に自動的になりそうですね。VC++が3ヶ月程度であれば、まだまだ覚えることが多いと思いますので、いろいろと手を広げるよりも、VC++をもう少し学んだほうがいいような感じがします。もし、「この言語なんとなく好き!」っていうのがあれば、その感性に従うのもいいと思います。
回答ありがとうございます。
>Unixとか、他の環境での開発が多いかもしれない(やりたい)なら、C#は使えないですから、C++(VC++)に自動的になりそうですね。
私事ですが、将来はアカデミック路線も結構考えているので,いずれにせよUnix環境は逃れられないと思います。もといUnix好きですし、C++もしっかり学ぼうかとおもいます。複雑と聞いているので、自分の脳で理解できるといいですが。
lv4uさん、本当にありがとうございました。
No.1
- 回答日時:
将来的に何をされたいのでしょう。
プログラマー系を目指すなら時間の許す限りあらゆる言語を身につけるべきでしょうし。日曜大工プログラマなら特定の言語に偏るのも良いでしょう。
C#は開発者の言葉を借りるなら"C++++"という位置付けでもある新しい言語です。今後は主流になる可能性も高いので、覚えておくのは良いと思います。ただし便利だからとか効率が良いから、速いからという理由だけで開発の最前線で即使われることはまずありません。これは別にプログラムの現場に限らず、どの業界でも同じことです。ちょっと便利だからと言って一旦全てを更地にして新たに作り直すような所ってあると思いますか? その殆どは既存の財産の上に、増築という方法で継ぎ足ししていくものです。
ですので切り替わるには最低でも10年、20年はかかりますし、使われだしても以前の言語は修正や保守管理で必要なので、古い言語(今で言えばCOBOLとか)でもその経験者は何のかんのと重宝されます。
また特定の言語しか用いないという会社もそうそうありません。もちろん会社によって得意言語もあるし、現場やプロジェクト単位で見れば特定の言語に偏ることになるわけですが、ある現場だけで一生仕事するわけでもありません。ちょっとあっちのプロジェクトが人手不足だから応援にいってくれと言われても、VBなんて触ったことないですで断れるならまぁそれもいいですけど。
言語の経験はあればあるだけ仕事や会社の選択肢が増え、あればあるほど就職の後も昇進の道具として利用できます。勿論例えばC職人としてのみ生きていくというのもアリですが。
手早く、親切な回答ありがとうございます。
>将来的に何をされたいのでしょう。
私事ながら、将来は創造的な職がよいので
修士→創造的な開発系に就職(3割) または
博士→アカデミック路線(7割)
で行きたいと思っております。
>ただし便利だからとか効率が良いから、~
>言語の経験はあればあるだけ仕事や会社の選択肢が増え、~
言語の数は就職の幅を広げる、ということですね。学習のためにもVC++もC#も両方学びたいと思います。
popesyuさん、本当にありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 物理学 Va=1/4πε × (q1/a + q2/b + q3/c) Vc=1/4πε × (q1+q2+ 2 2023/04/16 14:08
- その他(SNS・コミュニケーションサービス) ゲームでボイスチャットを使いたいんですが、親にどう説明したらいいですか 2 2022/08/03 14:07
- その他(プログラミング・Web制作) プログラミング 処理速度 1 2022/11/25 11:05
- 物理学 光のドップラー効果の問題がよく分かりません v=fλ₀のλ₀が大きくなってλ₁になると、fは一定で、 5 2022/10/22 20:01
- 統計学 t検定を繰り返してはいけない理由について教えて下さい。 2 2022/05/15 12:37
- オンラインゲーム VCしながらゲームしたい… 2 2022/06/11 16:04
- その他(開発・運用・管理) VisualStudioSetup.exeの設定について(Rustのインストールの準備として) 2 2023/04/17 12:54
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- 友達・仲間 大学の友達との関係で悩んでいます。 2 2022/05/12 00:17
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
COBOLでのNOT = の AND条件
-
C++ ってなんて読む?
-
VBSでDim、Private、Publicの違い
-
C言語とhtmlの違いを どな...
-
楽しくて最高のプログラミング...
-
COBOLで文字タイプを数字...
-
なぜコンピューターをよく知っ...
-
TO_CHARで小数点以下がある場合...
-
プログラミング言語の制作方法...
-
rpa化する言語としてら何があり...
-
Pythonって何を意識した言語な...
-
任天堂で使うプログラミング言...
-
順列の内容をすべて表示するプ...
-
C++における継続行
-
プログラミング言語「C#」の難...
-
Solve()とは、なんですか?
-
プログラムに書かれる"%"記号の...
-
C++は何に適している?
-
ABAPのラジオボタンについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
楽しくて最高のプログラミング...
-
Pythonって何を意識した言語な...
-
C言語とhtmlの違いを どな...
-
プログラムに書かれる"%"記号の...
-
COBOLでのNOT = の AND条件
-
C++ ってなんて読む?
-
質問失礼します。 プログラム言...
-
プログラミング言語の制作方法...
-
UNITY Float型の接尾辞fって
-
C言語って古いですか?
-
Int('1234') で、strをかんたん...
-
COBOLで文字タイプを数字...
-
TO_CHARで小数点以下がある場合...
-
最新のプログラム言語を学ぶに...
-
C++における継続行
-
vbaとc言語の関連性について
-
VBScriptで引数を省略したい場合
-
VBSでDim、Private、Publicの違い
-
HTMLとC++で、どんなホームペー...
おすすめ情報