いま現在c言語の基礎的な事を一通り学び終えたところです。そしてc++やjavaにいくか、さらにc言語の理解を深めようか迷っています。
ある人はjavaをやってからc++をやった方がいいという意見もあり、cからc++にすぐに移った方がいいというものもあります。
c++の強みというのは何でしょうか?
c言語との違いを比べて、記述してもらえるとありがたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
c++かjavaで悩んでいるということはまだ必要にかられていない状況ではと思います。
今後Railsでの開発を求められればrubyが必要になります。
学ぶことが必要になる言語がでるまで、C言語の理解を深めるのがよいのではないでしょうか。
投稿2015/08/28 13:43
総合スコア124
0
C言語とJava言語の両方を押さえることで、今後の技術習得を効率的にすることができます。
ですが、プログラマーは一つの言語に固執する人が多いです。言語はあくまでも道具なので、目的に対して最適な道具を選択できるようになるべきです。
そのために重要なことは各言語の違いを理解し、受け入れることです。
質問の回答に戻ると、次は全く方向性の違うJavaを学習することをお勧めします。
投稿2015/08/28 23:50
総合スコア18155
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
c言語の基礎的な事を一通り学び終えたところです。
そしてc++やjavaにいくか、さらにc言語の理解を深めようか迷っています。
結論から先に言うと、その三者の中ではJavaがもっともおすすめです。
その理由についてはまず、三者の言語を比較してみましょう。
まず、C言語と、C++とJavaグループで大きな違いがあります。
後者には、オブジェクト指向(OO)をサポートする機能があります。
たとえば、コンストラクタでクラスからインスタンスを生成するとかです。
べつにC言語でそれらを自分で実装すれば
CでOOもできなくはないですが、本当に使いこなすには
コンパイラなど言語仕様の深い理解が必要なので、
すくなくとも初期の学習には向かないです。
また、どの言語も最終的には機械語に翻訳されるので、
OOでないと実現できないという(低水準の)機能もないですが、
大規模プログラムを組む(組んで保守や拡張をし続ける)
には、OOでないと現実的には難しいです。
その難しい理由も難しいですが、かんたんにたとえて言うと、
一戸建ては木造でも建つが、高層マンションには鉄筋コンクリが必要、
みたいな規模と工法の違いです。
ですので、組み込みなどでCのみ使う開発環境もあるにはありますが、
プログラマとなる人の多くは、C++やJava(またはWeb系言語)へ進みます。
ではC++とJavaはどう違うか、という話ですが、
最強を目指すのがC++で、
最善を目指すのがJavaです。
C++では便利そうな機能は何でも詰め込み、
何を使うかはプログラマの選択に任されます。
Javaでは危険性のある機能は禁止します。
言語があらかじめお膳立てをします。
C++のほうが実行速度など性能が高いですが、
それだけ学習コストも大きくなっています。
C++はCと互換性がありますが、それでも、
本格的な習得にはふつう何年もかかります。
そうなるのはたとえば、C++だとメモリ管理など
低水準レイヤを自分で操作するからです。
Javaだと自動(ガベージコレクション)でやってくれます。
C++がマニュアル車だとすると、Javaはオートマチック車です。
昔はJavaだと遅かったです。重くてアプレットも流行りませんでした。
C++でないと実用的な速度で動かないという状況がよくありました。
しかし、コンピュータの性能は年々高くなるので、
今はC++よりJavaを使うほうが増えています。
JavaがAndroidの開発言語なのも大きいです。
3Dゲームなど性能が要求される分野はC++が多かったですが、
それも最近はJavaに似たC#にだんだん置きかわってきています。
さて最初の話に戻ると、やはりJavaがおすすめだということです。
面白みに欠けるが欠点は少ない言語なので、迷ったらJavaが無難です。
プログラムは一行でも間違っていると正しく動かないので、
多少面白みに欠けても、優等生的で欠点が少ないJavaが市場で選ばれたのです。
逆にもし、C++をすすめる状況があるとしたら?
それは明確な目的があるときです。
たとえば、将棋でボナンザなど有名プログラムに勝ちたいとか。
これは相手との勝負なので、性能差が重要になってきます。
とすると、習得に何年かかっても、
C++で組まないと勝てる可能性はまずないでしょう。
なお、ご質問がC、C++、Java、という三択だったので、
その中からJavaと答えましたが、もし無制限であれば、
RubyなどLL言語も面白みがあって使いやすいです。
大規模にはJavaのほうが向きますが。
投稿2015/08/28 14:41
編集2015/08/28 14:47総合スコア5592
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/28 16:28
2015/08/28 17:37
2015/08/29 03:34
0
自分はどちらに関しても素人ですが・・・
どちらに進むか迷われるのは、何をしたいかがまだハッキリしていないからではないでしょうか?
osmoc-1970さんのご回答のように、必要が生じるまではC言語の理解を深めるのも実際的な方法だと思います。
C++とJavaは、昔から絶えず比較されて来ましたが、それぞれ目的の異なる言語ですので、互いの特徴を並べることはできても、どちらが優れているとは言い切れません。
諸先輩に尋ねると、返って来る答えは二つに分かれるはずですが、それはどの先輩も、自分のやりたい、あるいはやらねばならないこと、つまり目的に合わせて選らんだ言語を使い込んでいるので、自分の使っている言語を「良い」と勧めるのは自然なことだからです。
俗に、−
でも I
でもなく、T
字型の学習方法が良いと言われます。つまり、幅広い知識は必要だけれども何かひとつ「得意分野」を持つべき、ということです。
プログラムの基礎的な概念をしっかり身に着けるのに、どの言語でなければダメということはありません。むしろ、アルゴリズムのような基礎をしっかり学習したいなら、むしろC言語が向いていると思います。
そのうち、オブジェクト指向を使う必要性が生じた時点で、何をやるかに合わせて進む方向性を決めても遅くありません。ひょっとしたら、その時点でもっと別の選択肢が登場するかもしれませんし。
その上で、ー
の部分の知識のために、参考になりそうなページのリンクを貼り付けておきますので、お時間がありましたらご参照ください。
CとC++の違い
→ 焦らず C言語 を極めてみる価値を理解できると思います。
C言語とC++を比較してそれぞれの長所と短所を…
→ それぞれの長所と短所が箇条書きでまとめられています。
JavaとC++の比較
→ 両言語の「歴史的背景」から特徴が説明されていて解りやすいです。
以上、ご参考になれば幸いです。
投稿2015/08/28 14:38
総合スコア5936
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/28 13:47
2015/08/28 13:59