• ベストアンサー

C言語、C+、C++、C#の違い

C言語、C+、C++、C#の違いがよくわかりません。 自分でも調べてみましたが、「オブジェクト指向」という言葉が出てきて、よくわかりません。 わかりやすく教えていただけたら幸いです。 初心者がプログラミング言語を始めるならどの言語がいいですか? 幅広い分野で活用でき、初心者でもわかりやすい言語がいいのです。 私は、C言語、C+、C++、C#のどれかを勉強しようと考えているのですが、この中の言語ならどれがいいでしょうか?もちろんこの中の言語以外に初心者にわかりやすく幅広い分野で活用できる言語があればそちらにしようと思います。ありましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.3

まずは「オブジェクト指向プログラミング」というモノについて勉強してみては? プログラミング言語というのは「初心者」にはどれも簡単ではありません。 実際にコンパイル出来る環境があれば習得は早いとは思います。 因みに、CとC++は同じコンパイラで使用出来るので、「Cコンパイラ」「C++コンパイラ」を別々に用意する必要はありません。C/C++コンパイラでC#は使用出来ないのでC#だけは別物。 Perlという言語もあり、科学者が大量の測定データを分析する時に使用したりインターネットで動的ページの生成(CGI)に使用されたりしています。 大量のテキストデータを処理するならPerlは超高速。でも型定義とかが曖昧だし正規表現と鋳物を覚えないといけないのでこれまた大変。オライリーから出ている専門書でも正規表現はそれだけで1冊になってますからね。 「初心者にわかりやすい」と「活用」は相反することがあります。 そんなところに拘っていると本質を見失いますよ? まずは気になる言語の書籍を買って読みあさりましょう。自分にとってわかりやすい言語かどうかはそれからです。

その他の回答 (2)

回答No.2

元々、手続き型言語のCがありました。 これは、まあ今から思えば、一般的な高級言語です。 で、プログラムが段々大規模になるに従って、オブジェクトという単位でプログラムを作りやすくするという方法が登場しました。 オブジェクト指向言語C++です。似たような進化でObjective-Cというのもあります。 このC++は、もとのCと比べるとちょっと複雑で、しかも危険な部分も引き継いで持っていました。 多くの人間が躓くと言われている、ポインタなどを持っていたり、継承などの柔軟さが仇となっていたりしました。 そこで、C++を洗練して、尚且つ動作環境を統一したいという事で、C#というものが登場します。 とうとう、ポインタはなくなってしまいました。継承も柔軟性が制限された分、すっきりしています。 これは、.NET FrameWorkという共通のランタイムの上で動く、中間言語コンパイラです。 一応、Linux用の.Netもあるらしいです。ですから、マルチプラットフォームとマイクロソフトは言っています。 でも、そうは言っても、C++は、すでにウインドウシステムの世界では、どこ行ったって処理系がある状態で、事実上の標準と言っていいと思います。無理してC#にする意義は私には判りません。 規格を厳密に覚えて、扱う自信があるのなら、Cの規格を頭に入れちゃうと、C++や、C#の世界で戸惑うことがあると思いますが、プログラミング初心者なら、まず、簡素なCから初めてみるのがいいと思います。

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

とりあえず…C+って言語は知りませんな。 「C言語で書かれているけど、中途半端にC++の規約で書いてある」って意味で、皮肉を込めた「C+」なら聞いたことがありますが。 >初心者がプログラミング言語を始めるならどの言語がいいですか? 向き、不向きもあるでしょうからなんとも… # ちなみに私はC言語。C++は多少理解している(つもり)ですが、使いこなせるレベルになっていません。 C#だと、Microsoftローカル…になりますかね? 組み込み系でC#ってのは無かったかと。 Cの基本がないと、C++は厳しいかも知れません。 が、CにどっぷりだとC++の習得の妨げになる。という意見もあったような。 # 私はどちらかというと後者になる…のかな? 大きな本屋ならば、プログラミング関係の書籍のコーナーもあるでしょうから、 そこで入門書の類を見てみる。というのもありかと。 あとは…何をしたい(どんなプログラムを作りたい)っていう目的も関係するでしょう。 # 文字列処理するならCよりperlの方がお手軽…とか。

関連するQ&A

  • C言語とC++ の違いについて(オブジェクト指向)

    今まで(3年ぐらい)は,ずっとC言語を勉強してきました. C言語だったらある程度のプログラムは書けると思います. ただ,来年からC++ を使わなくてはならなくなってしまい ました... CとC++との間には一体どういった違いがあるんでしょうか? よく耳にするのが「オブジェクト指向か,そうではないか」 ということです. オブジェクト指向...,良く分りません.一体どういう ことなんでしょうか. なるべく詳しく教えていただけると助かります.また参考書 やサイトなどを教えていただいても構いません. よろしくお願いいたします.

  • Cとjavaの違い

    学校でC言語プログラミングを学んでおり,新たにjavaも習うことになったのですが, C言語とjava言語の違いはどのような所なのでしょうか? java言語は「オブジェクト指向」ですが,C言語は何指向なのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • なぜ「C言語」にOOPが実装されなかったの?

    1972年に開発された「C言語」(C++ではない)には「オブジェクト指向」というのがないのですが、なぜ「C言語」に「オブジェクト指向」というのが実装されなかったのですか? 「オブジェクト指向プログラミング」は1960年代後半に登場していたのですが、後発の「C言語」には「ポインタ」はあっても「オブジェクト指向」というのがありません。なぜ「オブジェクト指向」は実装されなかったのでしょうか? 当時コンピュータの性能が低かったため実装が難しかったことと、まだ当時オブジェクト指向自体が無名だった為、「C言語」の開発者自体も知らなかったということもあるのでしょうか?

  • オブジェクト指向が先?言語が先?

    これからプログラミングを勉強するとして、オブジェクト指向の本と言語の本があるとすれば、どちらを先に読むべきなんでしょうか? オブジェクト指向って考え方ですよね? どんな分野も考え方の部分って、やる前に教わるより、ある程度経験を積んでからの方が理解できることが多いと思います。 となると、プログラミングもまずは言語を覚えて、ある程度いろいろ作れるようになってからオブジェクト指向に手を出した方が良いんでしょうか? それともオブジェクト指向を勉強してからの方が、言語を理解しやすくなったりするのでしょうか? そもそも個人が趣味レベルでプログラムをするのに、オブジェクト指向って必要なんでしょうか?

  • C++とJava

    オブジェクト指向を採用しているC++とJava。オブジェクト指向プログラミングに関連している部分で、二つの言語の大まかな違いは何でしょうか。

  • CとC++の違いがよくわかりません。

    質問タイトルのとおりなのですが、C++はCの後継で、拡張発展させたものという気がしますが、双方はどのように違い、またそれぞれどのような特徴があるのでしょうか。 C++はオブジェクト指向を取り入れているが、多少無理してCを改変したためにやたら難しい仕上がりの言語になっているとも聞きました。C#はそのあたりが改善されているようですが。 それと、Cは手続き型言語であるということは、多少調べたので、了解しているつもりです。 また、このオブジェクト指向にすることによって、どのようなメリットがあるのでしょうか。 Cには難しいが、C++なら要領よくできるというようなぷろぐらむがあるということなのですかね。そうでなければ、わざわざC++を開発する必要も無かったと思います。 もうひとつお尋ねがあるのですが、Cを学ばずにC++からいきなり勉強をするということは可能なのでしょうか。 それとも、英語や数学などと同じく積み重ねが大事で、Cを学んでこそ、C++に初めてに移行できるものなのでしょうか ちなみに、プログラミングはこれまで未経験で学習を始めたばかりのまだ初心者です。 どなたか、回答よろしくお願い致します。

  • 言語別(C/C++,Java等)の計算速度の違いが知りたいです。

    言語別(C/C++,Java等)の計算速度の違いが知りたいです。 巡回セールスマン問題を解く(よさそうな解を見つける)プログラムを書くことになったのですが、言語が自由です。 オブジェクト指向言語で組もうと思っているんですが、C++、C#、Javaなどの言語のうち、計算速度が早いのはどれでしょうか? 順番も分かれば、教えてほしいです。 また、もしC言語で組めれば、やっぱりオブジェクト指向言語よりも早いのでしょうか? 大体でもよいので、分かる方いたら教えてください。 よろしくお願いします。

  • プログラミング言語の質問です

    プログラミング言語の質問です プログラミング言語を今から勉強しようと思います。 そこで、オブジェクト指向の言語として(というより、今の社会で役立つ言語として)習うべきなのはどの言語でしょうか? 私は候補として、javaとC++を知っていますが、どう違うのかは分かりません。 どちらもCからの派生みたいなことは知っています。 そこで、javaとC++を比較して (1)どう違うのでしょうか?(できることの違い) (2)どちらの方がより優れていると思いますか? 今のところjavaとC++を考えていますが、他の言語の方が良いなら教えてください。 その他、プログラミング言語に関して知っておいたほうが良いことがあれば、 ぜひ教えてください。 回答よろしくお願いします。

  • プログラミング言語の質問です。

    プログラミング言語の質問です。 プログラミング言語を今から勉強しようと思います。 そこで、オブジェクト指向の言語として(というより、今の社会で役立つ言語として)習うべきなのはどの言語でしょうか? 私は候補として、javaとC++を知っていますが、どう違うのかは分かりません。 どちらもCからの派生みたいなことは知っています。 そこで、javaとC++を比較して (1)どう違うのでしょうか?(できることの違い) (2)どちらの方がより優れていると思いますか? 今のところjavaとC++を考えていますが、他の言語の方が良いなら教えてください。 その他、プログラミング言語に関して知っておいたほうが良いことがあれば、 ぜひ教えてください。 回答よろしくお願いします。

  • C++とVC++の違いについて

    この質問をご覧頂きありがとうございます。 みなさんに2つ、お聞きしたいことがあり、質問させていただきます。 1.C++とVC++とでは、どのくらいの違い(どういう違い、特徴)があるのでしょうか? 2.また、これからC++/VC++でプログラミングを始めようとした場合、 C++からVC++へと段階を踏んで勉強した方がよいのでしょうか? 一応、私のプログラミングの履歴としては、 言語としてVisual Basicは多少勉強はしておりました。 また、オブジェクト指向の基礎程度(多相、継承、カプセル化)は理解しています。 抽象的な質問で大変恐縮なのですが、 みなさんの経験論や、ご参考にした本、HP等がありましたら、 ご教授いただければと思います。

専門家に質問してみよう