- ベストアンサー
C++とC#
C,C++と進みC# Visual C#がありますが C++とC#の違いを教えてください. C++とJAVAをたしたようなもの なのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
文法/構文上の類似点は多々ありますが、「別物」です。 その相違について掲示板で列挙できるものではありません。 # 本を読んでください。
その他の回答 (2)
- lv4u
- ベストアンサー率27% (1862/6715)
いろんな言語って、解決したい問題を解決するのために設計・作成されています。給与や受注・在庫を処理するにはCOBOLが向いていますし、科学計算ではFortranですね。両方をサポートするためにPL/Iが作られましたが、巨大な言語仕様と実行速度・使用メモリ量増大があり、成功したとはいえないですね。(PL/Iには苦労しました・・・)プログラム初心者の勉強用にはBasic等でしょうか? C++は分散システムにおける並列処理の問題を解決するために利用されていたSimulaが、有用だけど、あまりにも実行速度が遅いってことで、Stroustrup氏が作成した「C with classes」を起源に、発展・発達した言語です。これは、Cのフロントプロセッサーとして開発されましたが、のちにC++のコンパイラーになっています。 C++は実用面・実行速度を重視しますし、Cとの互換性も重視しています。ポインター誤用、型相違などによる障害が発生しやすかろうとも、Cとの親和性や実行速度を悪化させる恐れがある仕様は採用されません。 ですので、C#がJavaの長所を取りいれてC++の言語上の問題点を解決しているように見えても、C++は、「そういう仕様もあるだろうけど、実行速度を犠牲にするわけにはいかない。我々はガベージコレクションで勝手に数秒も停止するのを許すシステムを作っているのではない」というスタンスでしょう。 ですので、仕様としてはC++とJavaを足したようなものですが、その過程である領域のアプリケーション作成に必要な言語上の条件を失いました。また「どんなマシン・OSでも使える言語」というJavaの長所も同時に失ってます。C#はそれぞれの言語の利点を加算していますが、同時に、欠点が加算されたところもある言語です。 また、C++は、言語のメリットを大々的に宣伝しません。それは、照れ屋で実直な技術者が「違いは、ものを見てもらえば、わかる人にはわかる。素人さんが分からないのはしかたない」というスタンスに似ています。 一時期、「Javaの出現でC++は抹殺だ!」なんて言われたこともありますが、その結果がどうなっているかは、明らかな気がします。 まあ、技術者はそんな論争はどうでもよく、良い製品を短期間に作成するのに最適な言語を自分の目と体で確認すればいいだけだと思っています。
- don_go
- ベストアンサー率31% (336/1059)
C++はCにオブジェクト指向の仕様を追加したもので Cの言語仕様のみを使ってCのプログラム作成も可能 ですが、C#はCともC++とも無関係な言語です。 他の言語でも行ってきた様に標準の言語仕様にMS独自 の仕様を追加してWindows以外では動かないようにして ユーザーの囲い込みを行う為に、SunのJAVAに対して 独自仕様を追加したJ#という言語を作っていたのですが OS等に左右されずにプログラムを動かす事のできる環境 を提供するというJAVAの基本思想に反するという事で MSとSunが決別した為、JAVAの対抗策としてMSが出して てきたのが.NETです。 その.NETで用いられている言語の1つがC#で、どちらかと いうとJAVAに似ています。 一応建前としてはJAVAと同様に.NET環境を備えたOS上では プログラムを実行できるとなっていますが、相変わらずに MS独自仕様の追加を続け、事実上Windows以外での実行は 困難です。
補足
C#がなんなくわかりました. でも,JAVAのようにWindows以外では使えないのでしたら 残念です.