質問: C言語、C++、C#の違いを教えてください。 この手の質問の回答は多数ありますが 私のようなド素人には全くわかりません。 オブジェクト指向?コンパイラ?全くわかりません。 答えの例と
回答: みんな頑張ってるな。 まず、C言語が作られました。 ほとんど最初の言語です。 難しい話をすると、CPUとアセンブラが、うんうんかんうんという話になります。 でも、こいつ、高速に何でもできるんですが、あとになって、いろいろと不便になってきたのですね。 再利用性とか、メモリ管理とか、いろいろと。 で、そこで、C++というものが作られました。 こいつは、C言語に、オブジェクト指向という概念をくっつけたものです。 (異論は認めます、はい。すいません。 オブジェクト指向によって、再利用性が高められました。 使い回しが楽にできるようになって、便利で、よかったよかった、という話です。 で、C#は、全く別でJavaというオブジェクト指向かつ、多くのOSで、ひとつのソフトで使える(ことが目標の)言語がありまして、このJavaにマイクロソフト社が勝手に、拡張をつけて、広めようとしたのですね。 勝手にやったものだから、当然揉めました。 ので、マイクロソフト社がJavaを真似て、新たに作ったのが、C#です。 だから、C、C++とは、全く別物です。 要するに、今数多くあるプログラミング言語は、「C言語より、こうしたら便利!」という理由で、歴史的に、時系列として、作られたものです。 まぁ、一部は趣味で作ったとか、いろいろな事情で作られたものもあるが。 で、こいつを何かに例えようとしたのですが・・・、無理じゃね?(苦笑 なにか、もっと聞きたいことある?と聞いたほうが良さそうな感じ。 一応ネタとして、言語擬人化を上げておきます。 わりと、ネタとしては良く出来てますよ。 Javaちゃんかわいいし。 用語としては、 オブジェクト指向は、クラスというものからオブジェクトを作ることで、再利用性を高めるための概念、手法、一部の人達の哲学、一部の人達の信仰のことです。 コンパイラは、プログラミング言語を、コンピュータが理解できる形のマシン言語に翻訳するための装置(ソフト)です。 「コンパイラー(Compiler)で、コンパイル(Compile)する。」とか使います。 このくらいわかっていれば、まぁ、いいんじゃね?