Cの将来ってあるのですか?

[戻る]
2004/09/10(金) 04:49:07
C++に移行が進んでますよね。
Cの講義って何の意味があるのか...
woodさん以外で御意見してください.

KING・王 2004/09/10(金) 08:48:45
C++に関しては、まだまだ勉強中の身ですが、個人的な見解を。
つたない文書ですが、お許しください。(先に謝っておきます。)

C++は、オブジェクト指向が取り入れられるなど、大きな変化はありますが、
ベースはC言語であり、制御文やポインタなどは、
そのままC++でも使える知識であり、Cの講義は無駄ではないと思います。

また、C++のプログラムの中でも、メソッドの中身などは、
C言語のプログラムと全く一緒の記述ができます。

私自身はC言語を勉強し、数年にわたりC言語でプログラムをしてきました。
最近はC++を少し勉強しながら、使用していますが、
未だに、そのほとんどがC言語の知識で記述しています。

C言語でプログラムしているときに、モジュールの独立性をたかめるために、
Staticのグローバル変数を用いて、1ファイル1モジュールで作成したりしていましたが、
これらが発展してC++のクラスになったのかな、などと考えていたりします。
その他いろいろ理由があると思うのですが、結局C言語で大規模プログラムや、
モジュールの再利用などを考えていったらC++にたどりつたのではないかなと。

ただし、私自身はC言語でながくプログラムを組んでいたため、
いまだにオブジェクト指向の考え方が上手く利用できず、
結局構造化プログラムになっていることが多々あります。
このあたりは、もしかしたらC言語を学ぶとオブジェクト指向に移るときの
害になることがあるのかもしれませんね。
(私だけかな?)

ところで、私自信がC言語を学んでから、C++に移っているので疑問なのですが、
いきなりC++から学ぶ場合て、どのようなところから学ぶのでしょうか?
私の見たC++の本などは、結構C言語の文法事項を知っていることを前提にしてあり、
想像がつかないのですが、どうんなことから学ばれたのでしょうか?
少し、興味がありますね。

そういえば、FORTRANでしたが、まだ統合開発環境など用いずに、
コマンドプロンプトからコンパイル、リンクを行っていたころの話ですが、
1ファイルで1つの機能を作成し、先にそのファイルだけをコンパイルだけ済ませます。
そして、EXEを作成する際に、必要なOBJだけをリンクするように、
リンクを組替えることで、いくつかのEXEを作成していたことがありましたが。。。
(このころはMAKEも上手く使用できなかったので、BATで実行していました。)

無駄な話ばかりになってしまいましたが、
私の結論としては、文法事項の基礎を学ぶ上では、無駄にはならないと思います。

J 2004/09/10(金) 09:06:33
学校の講義なのでしょうか?
わたしも、C言語は学んでおいて損はないと思います。
学校の講義なら、C言語の文法だけではなく、工学としての
コンピュータ技術を教えてくれるでしょうし。

シャノン 2004/09/10(金) 09:28:22
オブジェクト指向ってのは再利用しやすさ、メンテ性などが注目されていますが、
反面、パフォーマンスの悪化、実行ファイルのサイズ増大などの傾向があるのでは
ないでしょうか(上手く書けば差を縮めることはできるので、一概にそうとも言えませ
んが)。

パソコンではディスク容量、メモリ容量ともに大容量化、低価格化が進んでいますが
組み込み用途などではまだまだ C 言語に分があるのではないかな、などと
組み込みに関して全然知識ない俺が言っても信憑性ゼロですけど。

進化という点で言えば、1999 年に最新の規格、通称「C99」が発表されています。
標準化委員会では現在でも議論が交わされているはずです(たぶん)。
ここがそうかな?
http://www.open-std.org/jtc1/sc22/wg14/

C99 については、こちら。
http://seclan.dll.jp/c99d/c99d00.htm

シャノン 2004/09/10(金) 09:28:43
追記

> woodさん以外で御意見してください
一言余計です。

επιστημη [E-Mail] [HomePage] 2004/09/10(金) 09:56:56
Cてのはとっても'薄い'言語なので計算機が仕事をする様子を透かし見ることができる。
という理由から教育現場でも使われたりします。が、近頃計算機の中身なんか知らんでもええや
ん、てな方向に進んでるので、次第に教育現場からもなくなっていくかもです。

もうひとつは、我々現場ではCはどっこい現役です。だから学校でも。てのはわかりますな。

アイススケーター 2004/09/10(金) 10:10:52
一度考えたほうが良いと思うのですが、機能アップしたものでもデメリットは必ずあります。

C++を勉強する前にCを勉強しておいたほうが良いでしょう。
C++は勉強する項目が多いので、基礎を覚えるのであればCのほうが良いでしょう。

できればアセンブラやスタックポインタの知識も覚えておいたほうがいい。
(バグが発生した場合の解決に大いに役立ちます。)

Bosscat 2004/09/10(金) 12:10:48
アイススケータさんに一票!
ちなみに自分は
アセンブラ(8bit) -> C -> java -> C++ -> アセンブラ(32bit)
の順です。

後から考えると良い順だったと思います。

joan 2004/09/11(土) 18:16:11
Cの未来はあると思いますが、Cの講義を受ける必要があるかどうかは
微妙です。

基本的なプログラミングの要領(変数や分岐、関数など)を覚えるのであれば
Cに固着しなくても大丈夫じゃないかと思います。最近まず見かけない
アセンブラとフォートランは論外にして、他の言語のほとんどは C 言語の
スタイルを継承しているので、プログラムの練習程度なら問題ないかと
思います。

ただ、C++言語を勉強するつもりなら C を勉強するのが一番近道でしょう。
C++から勉強すると"ポインタ","オブジェクト指向"を覚えなくてはいけないので
ちょっとつらいですが、

最近、オブジェクト指向の他に、アスペクト指向が出てきました。本を読んでも
いまいちぱっとしませんが、構造化プログラミングをしてきた人からすると
オブジェクト指向の本を読むのと同じでぱっとしないのかもしません。
余裕があったらアスペクト指向も勉強しておくと時代先駆けで良いかもしれませんが、
現場で使えるのはずっと先の話だと思いますが(^^ゞ

ちょっとぼやくとC世代の人たちは、ちょっとオブジェクト指向の本を読んで
クラスでCスタイルを書く人が多いです。クラスを使ってCの構造化プログラミング
スタイルで書いてしまうと C++ で書いたとは正直言いがたいですが、結構
書いている人が多いので現状です。あと、上の人が

サスライの旅人 2004/09/11(土) 19:50:33
"INTRODUCTION TO COMPUTER SCIENCE"という本に、確かプログラミング言語は常に変わっ
ていくと書いてあった・・・とウル覚え。ということは、C言語は数十年後には使われな
くなっている可能性あり。今現在はC++やJava、Visual Basicあたりが主流だと思います
が、C++を学ぶ上ではCから始めたほうがスムーズに理解できると思います。私は昔C++か
ら始めようとして本読んでもチンプンカンプンでした(本が悪かったのかな?)。なので
Cから仕方なく始めると、逆に楽に学べた記憶があります。

古いスレッドには追加発言できません。