- ベストアンサー
C, C#, C++, Javaに関していくつかお聞きしたい事がございます。
C, C#, C++, Javaに関していくつかお聞きしたい事がございます。 (1)簡単な上記の違い⇒CとC++は全く違うものなのか? (2)それぞれの用途 (3)それぞれの難易度 (4)それぞれの市場価値 (5)いかなくても、一通り理解して ある程度できるようになるには一般的にどれくらいでできるようになるか。 かなり初歩的案質問ですみません。仕事で使用する可能性がでてきたので、まずは上記を伺いたいです。ご親切な方よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
これから勉強は始めようということであれば、一般にはC言語からはいるのが理解しやすいと思います。 (1) 一般にC++ は C にオブジェクト指向の機能(class の作成・使用など) を組み込んだ物と理解した方がよいでしょう。 とは言え、最近のCコンパイラは C++ の機能を持っているものが多いので、コンパイラを選択する場合はC++を選んで問題ありません。勉強する際には、まずC言語の基本的なものから初めて、それから C++ 特有のオブジェクト指向について勉強した方が良いと思います。 (2) C/C++ は一般的なアプリケーションやWebのCGIなどほとんどなんにでも使用できます。Java はおおむね Web で使用する事が多いと思います。言語上はJava でも、アプレット、サーブレット、jsp など使い方が異なる形態のものがあります。サーブレットとjspはWebでしか使用しないと思いますが、アプレットだとjavaインタプリタがあれば、バソコンなどで動くアプリケーションも開発できます。 C#は詳しくは知りませんが、Microsoftが開発したもので、Visual C#等の開発ツールで開発します。 (3) まずは C/C++ でコンソールアプリを勉強した方が良いでしょう。 Java で Web の開発をを考えると、Java以外に HTML や JavaScript の勉強も合わせてしなければなりません。 言語の文法的には C/C++/Java はおなじで、標準的に持っているライブラリや関数が違うと理解して問題ないと思いますので、まずは文法的な勉強を C言語でやってみて、それからJava の勉強をした方が良いかと思います。 (4) 現状で言えば、Windows/UNIX に限らず C言語がなければ、現在のコンピュータは動作できていないでしょう。 C言語は UNIX-OS を開発するために開発された言語だと聞いています。 Java は今のところ Web開発には欠かせない言語だと言えます。 しかしながら、他の言語でも代替できますので、今後ともずっと必須であり続けるかは、わかりません。 質問のJavaの中に含まれているかは判りませんが、JavaScript について言えば、今のところ代替がなくWeb開発には必須です。 (5) プログラミングは全くの初めてだとするならば数カ月はかかると思いますが、何らかの他の言語をある程度使っているならば、1~2カ月で C言語は使える様になると思います。
その他の回答 (3)
- tana_y
- ベストアンサー率41% (7/17)
舌足らずでした。Cの学習がマストと言うわけではありません。 toshih2000さんの仰られているとおり、C/C++/Javaも基本的な文法が 一緒です。何から初めても差し支えありません。 その他の言語に関してですが、HTML5とCSS3とJavaScript2.0は 勉強して損しないと思います。 またC/C++/Javaと比べれば簡単に習得可能です。 そして来年にかけてとても注視しているのがクラウドコンピューティングで 取り分け、google app engineです。 Javaを今から始めるなら、環境構築が楽ちんなのでお勧めです。 eclipseというIDEを入れるだけで良いので。 ※この部分はほんと個人的な勘です。すみません。 とっつきやすさですが、 1.開発環境を揃えられるか 2.IDEを使うかどうか の2点は考える上ではずせません。 説明していると長くなるので、 Cで 1.ループ 2.条件分岐 3.関数化 だけをやってみるというのは有りだと思います。 この3つを知らないプログラマは存在しません。 C/C++/Javaにも共通しています。 環境はlinuxの入ったPCがあれば申し分ありませんが、 Windowsであれば、vmwareかvirtualboxでubuntuを インストールしてみればお手軽です。
お礼
貴重なお時間、ご丁寧に回答ありがとうございます。 より、理解が深まりました。がんばって勉強します。ありがとうございました。
- tana_y
- ベストアンサー率41% (7/17)
まず個人的な意見なので一つの参考意見としてとらえてください。 質問されている内容は人によって十人十色な答えがあって当然のものです。 それとC#については私は解りませんし、今後やる予定も必要性もないので なにも言えません。 で、本題ですが (1) 1.CとC++/javaは オブジェクト指向をサポートするかどうかで違います。 2.C++でオブジェクト指向にこだわらずにCと全く同じように書く事は可能です。 特にSTLというC++に標準で含まれるライブラリは強力なので、 CでSTLを使いたいというだけでもC++を選ぶ意味はあります。 3.C/C++は動作が早い、javaはインタプリタ的なので遅い。 4.javaは一度コンパイルするとlinux,windowsでも動きます。 5.CやC++は一般的なライブラリが少ない気がする。 javaは一般的なライブラリが多い気がする。 (2)プログラム言語は用途別にはできないというのが答えですが、 あえて独断と偏見で言うのであれば、 ネットワーク通信機器等はCやアセンブラ、もしくはASICやFPGA カーネルなんかもC言語で記述される場合が圧倒的に多い。 javaはウェブアプリのサーバ側処理や、データベース操作に使われる事が 多い気がする。 windowsのアプリをサクッと作るならC#が一番お手軽で、 次がC++と言うよりはMFCやWindowsAPIを駆使したVCのプログラミング? またはVB? (3)難易度は人の性質による気がしますが、 一般的にはC言語は難しいそうです。 特にポインタが把握できずに挫折する人が多数いるらしい。 (4)Cはlinuxカーネルを読めるようになるというだけで価値があります。 コンピュータの本質的な動作を理解する上でも役に立ちます。 javaはウェブアプリを作る上で欠かせない存在です。 (5)個人的な経験では、Cは3ヶ月、C++はCを理解していれば1ヶ月 javaはCとオブジェクト指向を理解していれば、1週間。 javaのフレームワークを理解するには、別途時間がかかる。 アンケート投票に近いものがありますがこんな感じ。
補足
貴重なお時間、ご丁寧に回答ありがとうございます。 C言語自体をほとんど理解していないまま、質問をして申し訳ありません。 (1)(2)で書かれたことは、正直理解できないものが多いので、もう少し勉強します。 (3)(5)⇒要はC言語を理解するこがマストという理解でよろしいのでしょうか。オブジェクト指向も知らないような次元なので、Cの基本から行うことがいいのでしょうか。もっととっつきやすいものがありましたら、教えて頂けますでしょうか。
- the-ugly
- ベストアンサー率21% (39/180)
すいません、質問の意味が分かりません。 CとC++の定義をお願いします。
補足
C=C言語の意味です。 C言語自体をほとんど理解していないまま、質問をして申し訳ありません。C言語と、C++やC#は別の言語のようですね。同様の言語で、拡張性の違いといった理解をしていました。もう少し勉強してから質問します。
お礼
貴重なお時間、ご丁寧に回答ありがとうございます。 理解が深まりました。本当に感謝しております。