- ベストアンサー
C言語を学習することに将来性はあるのか
現在C言語を勉強中なのですが、C言語自体の将来性はどのくらいあるのでしょうか? せっかく勉強するので、できれば将来性のある言語に重点を置いて学習したいと思って います。 よくC言語は枯れた技術だと言われることが多いのですが、これからはC++やJava等が 使われることが多くなり、C言語はあまり使われなくなる言語なのでしょうか? 現状はゲーム分野や組み込み分野ではC言語は現役バリバリに使われていると 聞いているのですが、今後はJavaやC++といった言語がこういった分野でも 主流になってくる(C言語に取って代わる)のでしょうか? C言語自体、あまり将来性がないようであれば、今後勉強するに当たって、 C言語をとことん追求するよりも他の言語に学習の重点を移行させたいと 考えています。 私自身はプログラムを勉強し、将来はゲーム制作あるいは組み込み分野の 開発に携わりたいと思っています。 こういったことに詳しい方がおられましたら、ぜひ教えて頂けないでしょうか?
- みんなの回答 (12)
- 専門家の回答
質問者が選んだベストアンサー
組込み系のソフト開発をしている者です。 業務は、ほぼ C だけです。 # アプリグループの中には C++ で開発しているところもあると聞きますが、 # 詳細はよく知りません。。。 # ちなみに、私は下回り (通信関係のプロトコル制御まわり) をやっています。 まずは、何でもいいので、一つの言語を極めるくらいまで勉強してみてください。 今、C の勉強をされているのであれば、C を極めてみましょう。 ま、極めるというのは大げさかもしれませんが、文法のことで質問することがなくなるくらいにはなりましょう。 特に C であれば、配列、ポインタ、構造体、できれば共用体といったところをしっかりとマスターしましょう。 # そうそう、組込み系であれば共用体は必須だと思ってください。 一つ言語を知っていると何が良いかというと、比較の基準ができることです。 今せっかく勉強している C を勉強しているのであれば、それをがんばってみてください。 将来性云々の話は、いろいろな方々が回答されているとおりあまり意識する必要がありません。 大事なのは、一つの問題に対して、どのような手順で解決すればよいのか、という「考え方」を学ぶことです。
その他の回答 (11)
- rot-N
- ベストアンサー率27% (118/432)
言語は何であれ、問題をどのように認識し、それを、どういう順番で処理するという基本的な考え方こそが大事です。 C言語を勉強するのではなく、プログラムを作るときの「考え方」を勉強するのであって、その時に何も言語を指定しないと実行して確かめることが出来ないので「たまたま」C言語を使っているだけでしょう。
- interplay
- ベストアンサー率39% (108/273)
仕事でプログラミングやシステム構築やネットワーク構築やってる者です。 みなさん書かれている様にC言語は基本でしょう。 UNIXってOSは何で書かれているかご存じですか? Cです。 なのでその上で書かれるアプリとの親和性も良いです。 Cを知らなきゃC++無理でしょ・・・ >私自身はプログラムを勉強し、将来はゲーム制作あるい >は組み込み分野の開発に携わりたいと思っています。 個人的な意見ですが、情報処理技術者試験の基本情報をCASL(アセンブラ)で合格する様、頑張りましょう。 私はCHILLと言う電話交換機専用の言語とC、C++を経験してますが、CHILLではデバッグの時アセンブラとマシン語でやってました。 修正パッチはsourceではなくアセンブラを書いて自分でマシン語変換して入力していたおかげで、『何故コンピュータが動くのか?』ってことには、今の高級言語しか知らない若い技術者さんよりは長けていると思っています。 基本を知ることがこの世界では大事です。基本がわかっていれば応用できます。幸いC言語はポインタという者があり、どちらかと言えば今の世界では低級言語に近いです。 アドレスやメモリ空間の概念を知らずして上は目指せないし、問題発生時の対処は出来ません。 それのC出来ればどんな環境でもちょっとしたツール作るのに便利だよ。。みんなそうじゃないのかな? C++、Java、C#なんてのはその後でもいいんじゃない? いきなりオブジェクト指向やると基本が解ってないので、メンテしづらいめちゃめちゃなコーディングする人になっちゃうよ・・・
- kensan39
- ベストアンサー率13% (227/1648)
将来性は無いでしょうね でもプログラムを 勉強するのには今は必要でしょう 私は40年プログラムに携わっていますが 特定な言語はあまり必要はありません しかし自分の置かれた環境は常に特定な言語でしたね それと同じでプログラムを学ぶ必要があるのに C言語を学ばなくて何を学びますか 貴方の環境にある言語はそんなに沢山ないでしょう 常にプログラムを学ぶことを自覚しましょう 言語は環境なのです
現役の火星探査機の制御プログラムはC言語で開発されています。 理由は「枯れた技術」だからです。 皆さんが指摘されているように、 1.「枯れた技術」は褒め言葉です。 2.プログラムの実行環境はメモリやCPUの能力がふんだんに使える環境だけではありません。(特に機械の制御は) 3.プログラムの開発は「いかに物事を整理して順序立てられるか」が問題であり言語の種類にはあまり関係ありません。 ですから、C言語をマスターすることは無駄になりませんよ。
- ganzou
- ベストアンサー率29% (25/85)
言語なんて基本は同じ。 使えといわれたものか、目的に適したものを使う。 知らなければその場で勉強する。 あえて知っておくとすれば、C++, JAVA。 つぶしがききます。
- yamaichiro
- ベストアンサー率31% (77/243)
C++はCの拡張であって、Cの(多分、ほぼ)全てが含ま れていますから、今後ゲームや組込でC++が全盛となっ ても、Cがすたれたというのとはちょっと違うと思い ます。 枯れるについては、それ自体には不具合が出尽くし て安心して使える(応用できる)ようになった、とい う理解です。 Javaですが、C/C++でのポインタ(=アドレスアクセス) による高速処理の優位性が無くなるとは考えられな いので、C/C++が無くなってJavaになるとは思えませ ん(JavaはC++に似てますが)。ですから、ゲームや組 込にはCは相変わらず必須と思います(できればアセ ンブラも)。
お礼
組み込みやゲーム分野ではCとアセンブラは必須のようですね。 この2つは最低限おさえておこうと思います。
- heyboy
- ベストアンサー率21% (1852/8730)
C言語は昔から使いやすく 今でも十分使える言語一つです。 たぶん、色々と言語出ていますが やはり、BASIC、Fortran、Cなどの ベースで出来ていると思われるので 習得しておいていいと思える言語です。
- kuntaro1107
- ベストアンサー率50% (1/2)
私は科学者としてC言語を使用していますが、gouf-ms07bさんが記述されているように、現在ではFortranの代替としてC言語が主に使用されていると思います。私はC++やJAVAを覚えていませんので、軽く聞き流す程度で読んでいただければと思います。 C言語を勉強していて「得をしたな」と思うことは、現在使用されているグラフィックライブラリなど、言語内で参照する便利な関数群(OpenGLなど)がC言語系の言語で書かれていることが多いので、理解するのが非常に簡単であることだと思います。使用する際にもなんの違和感もなく自分の作成した関数のように使用できます。ゲームプログラミングをされるのであれば、この手の能力は必要かと思います。 C++に関しては私は勉強していないので、なんともいえませんがC言語を知っている人が覚えると最初は変数定義などで戸惑うらしいですが、覚えてしまうと「もう手放せない」という感覚を覚えるそうです。 もし1から覚えるのであれば、やはり「大は小をかねる」という乱暴な議論ですが、C++を覚える方が良いのではないでしょうか。本質的にはC言語と変わらないはずですので、上に書いたような能力は身につくと思われますし、現在勉強されているC言語の知識も生かせると思います。 JAVAについては全く知りません。あしからず。 追伸:私もそろそろC++を覚え始めようかと考えております。
お礼
[引用] C++に関しては私は勉強していないので、なんともいえませんがC言語を知っている人が覚えると最初は変数定義などで戸惑うらしいですが、覚えてしまうと「もう手放せない」という感覚を覚えるそうです。 [引用] 一度、C++にも手を出したことはあるのですが、オブジェクト指向に関する 知識が不十分だったためか、どうもクラスを煩わしく感じてしまい、 あまりメリットを感じなかったことがあります。 オーバーライドやポリモーフィズムはちょっと便利かなとも思った のですが、「手放せない」ほどのメリットは感じませんでした。 私の知識不足が原因ですが、まだまだ修行不足を痛感しました。
- missile_man
- ベストアンサー率29% (25/84)
はじめまして。 自分も学生時代(10年前)から同じ様な事を 言われてました。 でも、今でもC言語は色々な分野で使用されて いますので、勉強しておいて問題は無いと思います。 JavaやC++は確かに使い勝手は良いですが、現在 色々な分野での開発者はCで制御をしている様なので まだ、10年くらいは現役では無いのでしょうか? 自分は産業機械の開発をしていますが、9割Cで 制御しています。 Cを越える言語は当分でないのでは無いのでしょうね 仮にCが無くなるとしても、一気に無くなる訳では ないので、急に明日から職に困るとまでは行かないと 思います。
- shinjif
- ベストアンサー率33% (30/90)
「枯れた」というのは技術的にある一定の水準に達し、それを使用する側のテクニックもある程度出尽くし、ある意味で習得しやすくなっているという意味で、褒め言葉と考えていい表現です。 C言語は確かにC++やJavaなどの普及により、一時期に比べて使用される分野が減りつつありますが、決してすぐに使われなくなるということはないと思います。Javaや、C++はCよりも優れた点もありますが、その一方でCにくらべCPUやメモリをより多く消費する傾向にあり、小型の端末や、家電機器、コピー機などのオフィス機器等々ではまだまだ主役としてやっていくであろう言語だと考えます。 また、C++はC言語をベースにして拡張された言語ですから、C++を学ぶ上で、Cの知識は必須と考えていいです。 JavaはCとは異なる点の多い言語ですが、貴方がプログラム技術者としてやっていきたいのなら、色んな言語をかじっておく事は決してマイナスにはなりません。単純に考えても、Javaしか出来ない技術者よりも、CやC++も出来る技術者の方が仕事の選択肢は増えるでしょう。
お礼
組み込み機器の分野では、C言語はまだまだ主役を張っているんですね。 C言語を突っ込んで勉強するかたわら、C++やJava等の他の言語も勉強 してみたいと思います。
- 1
- 2
お礼
C言語をマスターすることは無駄ではないんですね。 これからもしっかり精進したいと思います。