質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

4回答

6738閲覧

c言語の次は?

reotantan

総合スコア295

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

1クリップ

投稿2015/08/28 13:23

いま現在c言語の基礎的な事を一通り学び終えたところです。そしてc++やjavaにいくか、さらにc言語の理解を深めようか迷っています。
ある人はjavaをやってからc++をやった方がいいという意見もあり、cからc++にすぐに移った方がいいというものもあります。
c++の強みというのは何でしょうか?
c言語との違いを比べて、記述してもらえるとありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

c++かjavaで悩んでいるということはまだ必要にかられていない状況ではと思います。
今後Railsでの開発を求められればrubyが必要になります。
学ぶことが必要になる言語がでるまで、C言語の理解を深めるのがよいのではないでしょうか。

投稿2015/08/28 13:43

osmoc-1970

総合スコア124

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reotantan

2015/08/28 13:47

rubyもかじってみたのですが、とりあえずcに専念するのがよさそうですね ありがとうございました
osmoc-1970

2015/08/28 13:59

得意言語を一つ持つとメリットが多いのでがんばって学んでみてください。
guest

0

C言語とJava言語の両方を押さえることで、今後の技術習得を効率的にすることができます。
ですが、プログラマーは一つの言語に固執する人が多いです。言語はあくまでも道具なので、目的に対して最適な道具を選択できるようになるべきです。
そのために重要なことは各言語の違いを理解し、受け入れることです。
質問の回答に戻ると、次は全く方向性の違うJavaを学習することをお勧めします。

投稿2015/08/28 23:50

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reotantan

2015/08/29 03:33

javaですか、各言語の違いを説明できるくらいにいつかなりたいですね。 ありがとうございました!
guest

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
LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reotantan

2015/08/28 16:28

すごく分かりやすく、納得できる内容でした。 周りの人間が勉強するならjavaが良いといっていた理由が少しはわかった気がします。 回答者様の考えでは(片方に傾いているが)2言語を同時に勉強するべきか、 一言語に慣れるべきか、どちらが初心者には正しい勉強方法だと思いますか?
LLman

2015/08/28 17:37

>2言語を同時に勉強するべきか、一言語に慣れるべきか 私は一言語派です。問題を分割して各個撃破するのが良いです。 たとえば、英語と中国語を同時に学んだら、早く覚えるかというと疑問です。 言語を切り替えると頭の切り替えに時間が掛かりますから、 学習であれば少なくとも1ヶ月くらいは継続して同じ言語を使いたいところです。 (仕事や授業などの場合は、そう自由にならないでしょうが) ただこれが、英語とスペイン語のように 関係が近い言語だと微妙になってきます。 HTMLとCSS、JavaScriptとPHPなどのサーバサイド言語のように、 同時に複数必要になる言語でしたら、べつに構わないと思います。 しかし、やはりC++の場合は、片手間で覚えられるほど易しい言語ではないです。 C++だけに専念して何年もかかるような感じなので、多言語の同時学習には向きません。
reotantan

2015/08/29 03:34

わかりました、一つに専念するようにします。 何度も有益なアドバイスをありがとうございます
guest

0

自分はどちらに関しても素人ですが・・・

どちらに進むか迷われるのは、何をしたいかがまだハッキリしていないからではないでしょうか?
osmoc-1970さんのご回答のように、必要が生じるまではC言語の理解を深めるのも実際的な方法だと思います。

C++とJavaは、昔から絶えず比較されて来ましたが、それぞれ目的の異なる言語ですので、互いの特徴を並べることはできても、どちらが優れているとは言い切れません。
諸先輩に尋ねると、返って来る答えは二つに分かれるはずですが、それはどの先輩も、自分のやりたい、あるいはやらねばならないこと、つまり目的に合わせて選らんだ言語を使い込んでいるので、自分の使っている言語を「良い」と勧めるのは自然なことだからです。

俗に、 でも I でもなく、字型の学習方法が良いと言われます。つまり、幅広い知識は必要だけれども何かひとつ「得意分野」を持つべき、ということです。

プログラムの基礎的な概念をしっかり身に着けるのに、どの言語でなければダメということはありません。むしろ、アルゴリズムのような基礎をしっかり学習したいなら、むしろC言語が向いていると思います。

そのうち、オブジェクト指向を使う必要性が生じた時点で、何をやるかに合わせて進む方向性を決めても遅くありません。ひょっとしたら、その時点でもっと別の選択肢が登場するかもしれませんし。

その上で、 の部分の知識のために、参考になりそうなページのリンクを貼り付けておきますので、お時間がありましたらご参照ください。

CとC++の違い
→ 焦らず C言語 を極めてみる価値を理解できると思います。

C言語とC++を比較してそれぞれの長所と短所を…
→ それぞれの長所と短所が箇条書きでまとめられています。

JavaとC++の比較
→ 両言語の「歴史的背景」から特徴が説明されていて解りやすいです。

以上、ご参考になれば幸いです。

投稿2015/08/28 14:38

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reotantan

2015/08/28 16:30

なるほど、納得です。 まずはc言語にしっかり向かい合っていこうと思います。 ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問