- ベストアンサー
私の場合、C++とJavaのどちらの言語でクラス取るべき?
今度、データ構造のクラスを取ります。 でもその言語がC++とJavaで選べます。 私自身はBASIC, C, Fortran, Assembly, C++と習ってきました。 C++の初級は余裕だったのですが(Cの知識が結構応用できた)、 中級でのclassの概念(base, derivedなど)は 今一つ理解できてないと思います(グレードはBでした)。 例文があれば、いろんなところから貼り合わせ、なんとか動くようには出来るレベルです(^^ゞ 教授は「大丈夫、C++を理解していればJavaは出来る」と言いますし、 ここのOKWebの過去ログにもそんな記述があるのですが、 未知の言語(Java)で初級コースならまだしも データ構造(配列やらリストやら)を扱うっていうのは厳しいような…うーん…。 …と言いつつもC++でも自信ないし…うーん…。 Javaは人気があるのは知っていますし、新しい言語に興味もあるのですけど…うーん…。 最近、初級コースはJavaに切り替わったそうです… でも折角C++で必修科目を埋めたのにJavaで取り直すのはちょっと…うーん…。 こんな私はどちらの言語でデータ構造のクラスを取ればよいでしょうか? 両方の言語をご存知の方、アドヴァイスをください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
私の体感ですが、JavaよりC++の方が3倍くらい面倒です。 よってJavaをおすすめします。 たしかにオブジェクト指向的な部分は、 慣れてないと苦労するかもしれません。 ただ、C++でやる場合、 「オブジェクト指向の難しさ」と、 「C++の難しさ」が一緒になって襲ってくるので、 苦労がより大きいと思います。 Javaの言語仕様は、筋が通っています。 オブジェクト指向の学習にはC++より勝っています。 個人的には、 「C→C++」よりも、 「C→Java→C++」の方が近道ではないかと思っています。
その他の回答 (3)
- cse_ri2
- ベストアンサー率25% (830/3286)
No.1で >しかしどちらかの言語を完全に習得すれば、もう片方にも >通じる世界があります。 といっているのは、No.3の方の意見と同じ意味です。 オブジェクト指向言語は基本概念ではほぼ同一性をもって いますから、一つを極めれば他の言語についてもすぐに理解 できます。 経験者の目で見れば、サイコロを振って決めてもかまわない くらいのレベルです。 Javaの方が簡単そうにみえるなら、そうしなさい。 どのみち学校で学ぶことは基礎にすぎず、本当の腕前が評価 されるのは、社会に出てプログラミングの第一線に立たされた 時です。
お礼
>サイコロを振って決めてもかまわないくらいのレベルです 専門家の視点から見ると大した問題ではないかもしれませんが、 学生の視点から見ると言語の選択はとても重要なのです。 Javaが簡単そうにみえるかどうかも分かりません。 それで配列の割り当てについての質問もお礼に書いたのですが…。 サイコロでは決めてもかまわないレベルかもしれませんが、 敢えてその僅かな違いを専門家の立場から指摘してほしかったです。 仰りたいことは十分理解できますが、私の欲しい回答になっていないことがとても残念です。 ありがとうございました。
- toysmith
- ベストアンサー率37% (570/1525)
> 私自身はBASIC, C, Fortran, Assembly, C++と習ってきました という前提でC++とJavaを悩んでるんですよね。 中途半端に使える言語をこれ以上増やして何かメリットはありますか? オブジェクト指向型言語の場合、何か一つの言語を使ってオブジェクト指向の基本概念を習得していれば、他の言語の習得は難しくはありません。 教授のおっしゃる「大丈夫、C++を理解していればJavaは出来る」は多分そういう意味でしょう。 C++を習得した!と自信があるならJavaを、C++がまだまだだと思ったらC++を選べばよいのでは?
お礼
>中途半端に使える言語をこれ以上増やして何かメリットはありますか? 何もありません。私は小学生の頃からプログラムを学んでおり、当時はC++は主流ではありませんでした。 >C++を習得した!と自信があるならJavaを、C++がまだまだだと思ったらC++を選べばよいのでは? ということであれば、質問にも書いた通り、私はC++に自信がないのでC++ということでしょうね。 ありがとうございました。
- cse_ri2
- ベストアンサー率25% (830/3286)
えーと、仕事じゃなくて勉強として学びたいということですね。 正直、どっちでもいいですよ。 実務で使うのでないのであれば、大した差はないですから。 ただ言えるのは、最高の技術を極めようというのであれば、 どちらもそれなりに難しいです。 しかしどちらかの言語を完全に習得すれば、もう片方にも 通じる世界があります。 私はCから入った人間なので、やはり基本という意味でC を学んだ方がいいと思いますね。 Cでさんざん苦労すれば、JAVAを使いはじめたときに そのありがたみが身にしみてわかります。
お礼
ご回答ありがとうございます。 いえ、質問の中でも書いた通り、Cは既に習っています。 中級コースまで取りました(ポインタやstructが出るレベル)。 そしてC++を習ったのです。 C++は中級コースを終え、グレードはABCDEFのうち、Bでした。 Javaについては何の知識もありません。 どんな言語でも極めるのは難しい、とおっしゃりたいことは分かるのですが、 私の場合はどうでしょうか? なんとかギリギリ分かるC++。 何の知識もないJava。 どちらでデータ構造のクラス (主に配列やリストなどのデータのやりとりだと思います)を取るべきでしょうか? Javaは配列の領域を指定しなくてもよい、とかなんとか噂を聞いたのですが本当でしょうか? ポインタの概念はあるけど、C++のようにややこしくない、との噂も聞きました。 それが本当であればJavaで取ってみたいのですが…。 cse_ri2さんならこの場合どっちを選んだと思いますか(または実際に選んできましたか)?
お礼
Cを習った私としてもC++はかなり面倒でした。 Cの知識が役立ったところと足を引っ張ったところがあって(特に後半)。 オブジェクト指向的の学習にはJavaは優れているのですね。 友達も「Javaの方が簡単だ」と言っているのですが、 彼はCの経験はなく、しかもC++のクラスを一度落としてますから、 あまりその言葉を信頼できないんです(苦笑) liar_adanさんの回答を読んで私の気持ちもJavaに傾いてきました。 もう少し違った意見も聞ければ、と思いますのでしばらく締め切らずにおきます。 反論がなければ、おっしゃるとおりJavaで取ろうと思います。 ありがとうございました。