プログラマがC言語を学ぶべき10の理由

   このエントリをはてなブックマークに登録    2006/11/27

「Ten reasons why every programmer should learn C」という記事がありました。 個人的な感想ですが、何と無く言いたい事はわかる気がしました。 ただ、多少誇張している(言い過ぎ/嘘)かなと思いました。 あと、恐らくLinuxとオープンソースなどを念頭において書いているんだろうなと思いました。

ちょっと言いすぎ感も漂う内容でしたが、面白かったので訳してみました。 誤訳や勘違いなどが入っている可能性があるので、詳細は元記事をご覧下さい。 以下訳です。


全てのプログラマはC言語を学ぶべきである。 C言語を学ぶ事により得られる利点は無視できないほど大きい。 C言語を学ぶ事により、仕事の機会に恵まれるだけではなく、コンピュータへの理解が深まる。

1) C言語は、C++やJavaと比べて低レベル(low level)な言語である。 低レベル言語を使ってプログラムを書く事は、コンピュータそのものを理解するのに役立つ。

2) デバイスドライバやオペレーティングシステム(OS)はもっぱらC言語により書かれている。 デバドラやOSを書く事はないかも知れないが、修正/変更をする必要が発生するかも知れない。

3) マイクロコントローラを書く仕事を受注したいと思った場合にはC言語が出来ないといけない。 もしかして、新しい言語を学びたくないがために受注できる仕事の幅を狭めるつもりですか?

4) C言語で書かれたプログラムは、他の言語で書かれたプログラムよりも小さくて実行速度が速い。 C言語でないと期待する実行速度を得られない場合もある。

5) C言語を学んだ事があるのであれば、その他の言語を習得するのは容易である。 これは、全ての近代的なプログラミング言語はC言語に基づいているからである。 (例えば、Java, C++, C# など)

6) C言語は長年使われているので、サンプルコードや基盤コードが豊富にある。 これにより、例えば既に実装された事がある新しいアルゴリズムや機能を迅速に実装できる。

7) C言語はオープンソースコミュニティが利用する言語である。 LinuxはC言語により実装されている。

8) ポインタについて教えてくれるのはC言語だけである。 C#やJavaはこの議題を避けている。 C言語を有力にしているのはポインタである。

9) C言語は職を得る上で最も要求されているプログラミング言語である。 C言語を習得する価値は十分ある。

10) マイクロプロセッサを持つ全ての物はC言語をサポートしている。 電子レンジから携帯電話まで、C言語により動作している。

   このエントリをはてなブックマークに登録   



コメント

fuga
手動トラックバック!
http://blog.livedoor.jp/dankogai/archives/50700240.html

#アクセスログで分かると思うけどw
管理人
お知らせ頂きありがとうございます。有名なサイトで題材として扱っていただいて恐縮しています。
なすび
当方組み込みシステム屋です。
CとアセンブリとVB、C++が使えますが、Cのポインタは
バグの元になりやすいので、ちょっとね。アセンブラ
的な使い方ができるので重宝はしますが。
ギャウリィ
Cのポインタは非常に便利ですよね。もういらない機能なのかも知れませんが・・・

うちの大学ではC言語を教えることはしますが、ポインタについてはあまり教えず、その他の条件文や繰り返し文の組合せを相当練習させています。そのため他言語への移行がスムーズにいってると思います。

それでいいのか?っとは思いますが。ポインタを知ることによって内部のメモリなどを理解できたりもするかも知れないので、ポインタを勉強する意味は大いにあると思うのですが・・・

法政大学は1年でJAVA、2年でCとC言語がオプション的な扱い方になったそうです。ただ、メモリアクセスの概念がなくなった学生が多いそうです。

もう一般のプログラマーはメモリの概念が無くてもプログラムを組むようにするのか、それともまだその概念というか考え方をしってもらうようにするのか。個人的には非常に興味があります。

JAVAとか.net関係は、OSとプログラムの間に一個VMをかますので重くなりますよね。マシンのスペックが上がったので時代はそういう風になってますが、それに乗っかっていろいろプログラムを書いていくのか。それともOSに近い側のプログラムをCで書いていくのか・・・

今ちょうど時代の偏角の時期にあるのでしょか?


もう何が書きたい文章なのかわけわからなくなってすみません。とりあえず組み込みに行くかも知れない人がCを知らないのはまずいんじゃね?っと思ったw
むふむふ
昔、アセンブラで同じ事を言われた。
すべてのマイコンはアセンブラで動いているんだから、
アセンブラを覚えなくてどうする!って。
Cもアセンブラのようになっていくのでしょうか・・・?
依頼
すごく古い記事ですから、しかたないのでしょうけど、最初のリンク先が、とんでもないページに飛んでしまいます。焦りましたので、リンク外してもらうと、ありがたいかも。この記事は面白かったので・・・
あは
>>むふむふさん
確かに一昔前は上の10の理由のC言語の部分を
アセンブリ言語に変えてよく言われていましたね。
今ではアセンブリ言語を持ち上げると変人扱いされますがそのうちC言語も同じようになるかもしれませんね。

アカマイ 知られざるインターネットの巨人

インターネットのカタチ もろさが織り成す粘り強い世界
「インターネットのカタチ - もろさが織り成す粘り強い世界 -」関連資料

マスタリングTCP/IP OpenFlow編
「マスタリングTCP/IP OpenFlow編」関連資料

Linuxネットワークプログラミング




外部サイト

プレコ王国
ディスカス魂
金魚タイムズ
YouTubeチャネル
Twitter
Facebook

フィードメーター - Geekなぺーじ
Copyright (C) Geekなページ.
All rights reserved. 無断転載や無断コピーなど、私的利用の範囲を逸脱した利用はおやめ下さい.