質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

13回答

18322閲覧

C++、C#、あなたはどちらを勉強しますか?

kobamp3

総合スコア69

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2016/08/18 15:42

編集2016/08/19 04:17

つい最近C++の勉強に乗り出して、C++はCと互換があるだけで言語としては別物なんだなあなんて思っていたのですが、他の人は勉強するならC++とC#どちらを(またはどちらから)選択するのだろうかとふと思い質問することにしました。

それぞれの得意分野等の説明があると嬉しいです。
(....宗教戦争が勃発しそうですね)

<<<補足>>>

元々Javaの勉強をしていました

C++、C#は最終的には両方共学びたいと思います。

将来的にはUNIXやLinuxのソースをいじれるようになりたいと考えています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

boxsnd

2016/08/24 19:18

C++、C#は最終的には両方共学びたいと思っているのであれば、C++をまずは学ばれてはよろしいかと思います。
guest

回答13

0

ベストアンサー

Windowsアプリだけを対象にしているのであれば、よほど厳密で高速な処理が必要なアプリ(例えばFPSゲームとか)で無い限り、作れる物とかそういうのはあまり変わらないと思います。ただ、中途半端に中間取ってC++/CLIをするぐらいならC#にした方が良いと思います。

Windows以外もターゲットになると、Monoが安定してきたと言ってもC#ではまだ不安を覚えます。汎用アプリでは無く、Unityを使いたいとなると、逆にC#しか使えません。iOSやAndroid向けとなるとXamarinとの組み合わせでC#で作ることもできますから、その選択もありです。

ということで、一体何を作るのが目的なのかが重要であり、それが無い限り、選択は難しいと思います。言語仕様としては、C++はCの拡張ですが、C#はDelphiをJava風にしたという形で、設計思想や方針が異なるため、比較はあまり意味がないと思っています。

投稿2016/08/18 21:53

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私の場合は、C++ は使う機会がほぼなくなりましたが、必須の方もいらっしゃると思います。
好きな方ではなく必要な方を勉強するというパターンも多いのではないかと思います。

あくまでも主観ですが、両方勉強する前提でどちら「から」勉強するかと言うことであれば、C# を使っていると C++ は面倒で触りたくなくなるので C++ からの方が精神衛生上良いかもしれません。

投稿2016/08/18 21:47

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

条件がなにもないと難しいところですが、
C#ですかね。仕事で使うので。

旧VB触ってた頃は、簡単なAPIのラッパ(使わない引数とか制限して呼びやすくしただけのもの)をC++で書いたこともありますが、最近はそういう出番もほとんどないので。

とはいえC#は仕事で困らない程度には書けるので、その意味では C++なのかなぁと
思わないでもないですが、C++やるなら他の言語選んじゃいそう。

投稿2016/08/18 17:03

flied_onion

総合スコア2604

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kobamp3

2016/08/18 18:52

「条件」とは例えばどういったものでしょうか?
flied_onion

2016/08/18 23:01

現状どちらも知らない前提ですとか、何か作るもののカテゴリ(Winアプリ/Webアプリ/ゲーム/科学計算など)があってそれを作る上でどちらを選ぶかですね。
kobamp3

2016/08/19 04:12

ご指摘ありがとうございます。条件を追加します。
guest

0

概して言えば
C++ はC言語のようなもの
C# はJavaのようなもの

なのでご質問自体が
「C言語とJavaのどちらを先に勉強したら良いでしょうか?」
に似ています。

従いまして目的によって異なると思います。

現実的に仕事をしてお金を稼ぐという観点からすると最近は
C#の方が比較的良い仕事が得られるのではないでしょうか?
(ケースバイケースですが・・・)

投稿2016/08/29 22:02

Yatsurugi

総合スコア1628

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2016/08/29 22:53

いやC++はもはやCとは別物だと...
Yatsurugi

2016/08/30 11:08

勿論別物ですが、C言語はC++の環境で 動作するのでこのような書き方をしただけです。
guest

0

得意分野等の説明

C/C++は機械に近く、C#は人間に近い言語です。

C/C++はOSなどのシステムを作るのに向く言語で、
C#はシステムの上で動くアプリを作る言語です。

C++は汎用性が高いですが仕様が巨大なので、
そのぶん学習コストも大きいです。C#はその逆。


勉強するならC++とC#どちらを選択するのだろうか

その2択でしたら私の場合C#です。

もともと人間が読み書きしやすい軽量言語が好みというのもありますが、
どのみち全部の技術は学びきれないので、特化することを私は考えています。

「何をやらないか」が戦略で、私はシステムやインフラはさわりません。
そのかわり、機械学習や自然言語処理などに学習リソースをあてています。
たとえると、料理屋は料理に凝りたいので、素材は買ってくるという考えです。

しかしどのような選択であれ、言語を学ぶときは、
目的をハッキリさせた方が学びやすいと思います。

投稿2016/08/29 18:41

LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

何をしたいかにもよりますね。
たとえば、GUIアプリならC#の方が圧倒的に作りやすいので、今更C++で作りたいとは思いませんが、信号処理や画像処理のように大量のデータを高速で処理したいならC++以外に考えられません。
では、画像処理を行うGUIアプリを作りたいときはどうするかといえば、GUI部分はC#で作り、画像処理部分はC++で作り、C#からC++の関数を呼び出す、というようなことをします。実際、C#向けに公開されている数多のライブラリ(アセンブリ)も、中身はC/C++で書かれていることがとても多いです。

両者は得意分野が違うので、どちらかを選ぶのではなく、両方覚えて状況に応じて使い分けるのがいいでしょう。

投稿2016/08/19 02:54

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。

私自身はインフラ的な部分の開発が多いのでC++一択です。
でも、GUIを作らないといけない時はなやましいです。C++Builderを使えばいいのですが、オープン・ソースをC++Builderで開発するというのはどうかと思いますし、昔はネット情報も豊富だったのですが今はかなり厳しいようです。
結局、GUI開発にはC#を使っています。C++をベターCとして使える状態でC#を学ぶのは簡単でした。

もし、それなりに学習に時間をかけることができるなら、歯ごたえのあるC++を学習するとなかなか力がついて良いのではないかと思います。
あまり学習に時間を割けないなら、成果に結びつくのが速いC#は良い選択と思いますよ。

投稿2016/08/19 02:53

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

どっちか、ではなく両方使えた方が何かと良いです。使用領域はあまり被りません。
私はもう両方使える状態ですが、私がC++を勉強し始めた頃はまだC#なんて存在していなかったからであって、
今から勉強するならC#からの方が良いかもしれないですね。
やはり後発言語である分仕様がすっきりしていますので、勉強しやすいかと思います。
今のC++は仕様の化け物で、基本的に誰も使ってないような構文などもあったりして、人のプログラムを見て書き方を学ぶという面が少なからずあったりしますし。

投稿2016/08/19 02:41

drednote

総合スコア336

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

どっちも。

  • C# : 開発効率が高い、さくさく作れる。
  • C/C++ : 大抵の言語はC/C++を呼べるからくりを持ってるので、部品をC/C++で書いとくとツブシが効く。

幸いなことに Visual Studio 一本あればどっちも作れる。

投稿2016/08/19 00:44

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私みたいなヘタレエンジニアからするとC++は触りたくないというのが本音ですかねー。
リファクタリング案件で使ったことがありますが、人によって書き方がまるで違いました。
(研究向けのコードだったからなのかもしれませんが。)

C#は良くも悪くもwindowsと切っても切れない関係なので、LinuxとOSSをいろいろ見て回るならC++のほうが合っていると思います。

あまり関係ないですけどC#でLinqを使うと気持ち良すぎて人としてダメになります。

投稿2016/08/23 06:00

nullbot

総合スコア910

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自分が使ってるという意味ではC#ですかね。
ただ、以前はC++も使っていたので、C++を勉強するのも悪い選択肢には思えません。

業務で必要だから勉強するというのも一つですし、単純にパソコンや組み込み機器、サーバーなどの挙動を知りたいという意味での勉強というのもあると思うのです。

C#はC++等の言語でいうポインタの概念を考慮せずとも作れるので、難しいことを考えなくても
思った通りに作りやすいです。業務で使う機会も増えてきていますし、設計等もしやすいです。
OSがどうとか、メモリがどうとか裏側を理解したいというならばC++は勉強になります。
逆にC++で大規模開発などに乗り出すとオブジェクト指向とはいえC言語からの拡張という位置付けもあり
色々とC++なりの書き方が必要になってくると思います。1から勉強するには落とし穴が多いと思われます。

勉強という観点だとどちらも勉強になりますが、プログラムのなんたるかを知りたいならC++
最近流行している書き方を習得し、業務に生かしたりほかのプログラミング言語習得に関しても幅を持たせたいならC#ですかね。(C++はもうついていけてませんが、最近流行のというならboostをはじめいろいろなライブラリが充実しているのかもです。)

投稿2016/08/18 23:56

yuu341

総合スコア161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私の場合は、元々アセンブラからスタートして、N88 BASIC、VB、C、C++と渡り歩いているので、C/C++という答えになりますが、言語は所詮道具なので、他の方が言っておられるように何をするかで変わってくると思います。上記以外にも、PL/Iで組込ソフトを作ったことも有ります。
業務じゃなくて個人的には、ruby,perl,awkなどスクリプト言語も触ったりしてます。その時の目的に応じて習得すればいいと思いますが、若い内にやっておいたほうが良いとは思います。年齢を経てくると時間がなくなるのと気力が若い頃ほど続かなくなります(笑)。
C#も、一通りは使えますが、C++11/14などC++も言語仕様が進化しているので、そちらのほうにまだ興味や関心があるということです。自由度も高いですから。

投稿2016/08/23 08:26

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私の場合は、たぶんC#から勉強すると思います。
一度、C++から勉強して挫折しています。

WinAppの開発では、C#を選択します。
また、Windows以外のターゲットもC#で開発できる環境が
整えられて来ています。

投稿2016/08/19 00:30

ai_2013_dev

総合スコア338

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問