2007/08/23

Recent entries from same category

  1. フィードメーターで300位以内にランキングされました。 Hatena
  2. 床屋 Hatena
  3. vi貧弱ですか? Hatena
  4. タッパー Hatena
  5. Control-Cを日本語化 Hatena

はてな

C言語を使える奴は凄いのか?


C Language

数年前ならYesだ。でも今は「間違なくYesだ」とは言えない。昨今業務で求められているスキルはC言語使いだけではない。

求められているのはJava使いであり、VB.NET/C#使いであり、LL(javascript、php、python、perl, ruby)使いなのだ。

最近ではエンドユーザも賢くなってきて、単にパフォーマンス性や万が一に備えた柔軟性よりも、保守性やメンテナンス性、二次利用という利点、はたまたバグ侵入率を下げるにはどうしたら良いかを勉強してきている。

まれにC言語使いは、C言語を使えない人達から崇められる事があるが、はたして本当に凄いのだろうか?

ポインタや演算子オーバロードを知っている人が、MFCやATL/WTLを知っている人が、socketをCで組める人が、kernelソースを読める人が、本当に今後も凄いと言われ続けるのだろうか。

例えばGUIを作るとしよう。pythonとGTKを使えばウインドウを出すのに10行あれば十分でしょう。

ソケットで通信してXMLを送受信するならばperlで10数行でしょう。

SHA1で長々とコードを書くまでもなく、.NET Frameworkならば、予めクラスライブラリが用意されているでしょう。

昨今ではアプリケーションのプラグインもスクリプト化しつつある。

mallocとfreeを追っかけ徹夜する開発者と、コーディングと数回のデバッグで仕事を終え、定時で帰ってしまう開発者のどちらがカッコいいのでしょう。

「言ってるその言語自体はC言語で出来ているんだ」
そうでしょうね。でもあなたが作った訳じゃないですね。
「C言語じゃないと出来ない処理だ」
そうですね。ただ、それが必要な処理ならば、いずれ誰かがクラスライブラリを作ってくれるでしょうね。
「他の言語は今後仕様が変わってしまう可能性がある」
そうかも知れませんね。きっとその頃には、そのC言語で作られたシステムも作り変えですね。

確かにハードやkernelまわり、組み込み系ならばC言語でしょう。でも今後デスクトップアプリは他の言語に置き換わって行ってしまうかもしれない。

C言語はハードの制御と新しい言語の開発だけに使われ、デスクトップアプリケーション開発で御飯を食べるのが難しくなってしまいC言語使いの仕事と言えば組み込みだけになってしまう近未来が本当にやって来てしまうかも知れない。

C言語使いの凄いところってなんだ?

あるとすればクラッシュの仕方一つで、なんとなく原因が想像出来てしまう事。

時間が掛かる処理で、なんとなく無駄なループのソースが見えてしまう事。

そんな知識がいったい何時まで「凄い」と言われ続けるんだろうか…

「C言語だけでは御飯が食べられない」そんな将来がやってくるのだろうか。


そして近い未来、こんなネタで釣りな記事が@ITやITmediaに掲載されてしまう日が来るんだろうか。

Posted at 11:08 in その他 | WriteBacks (6) | Edit
Tagged as: c, job
Bookmarks: add to hatena add to hatena | add to delicious.com add to delicious.com | add to livedoor.clip add to livedoor.clip | add to buzzurl add to buzzurl | add to fc2bookmark add to fc2bookmark | add to Yahoo Bookmark add to Yahoo Bookmark | add to Pookmark add to Pookmark | add to NiftyClip add to NiftyClip | この記事へのリンク

WriteBacks

この業界ではよっぽどの特殊技能持ちのエキスパートでない限り、これだけやってれば大丈夫なんてありえないでしょう。ある程度マルチでこなせて始めて食えるんじゃないですかね。

でも敢えて最初にまず何を理解すべきかと言えば、やはりC言語であり続ける気がします。言語そのものを理解し使うと言うよりは、組み込みからスパコンに至るまで現在のノイマン型コンピュータの動作を理解するうえで、それを言語レベルに簡潔にマッピングできているという意味で、C言語の与えてくれる見地は欠かせないものだと思うのです。

この業界で食っていくということを考える場合、C言語しか知らないやつは論外ですが、C言語すら知らないやつも相手にしたくないところです。

Posted by KoRoN at 2007/08/24 (Fri) 01:23:40

char*なら

header[size*nmemb] = 0; /* <- '\0' */

な感じもします。あとheader = malloc(云々)
の戻り値は(void*)かな。。最近キャストってしなくていいのかどうかもわからない浦島太郎です。。

昔,Cが出来ると言っていたプログラマさんがcharでカウンタつくってて永久ループなバグをだしてくれたり。。

偉い人は(正しい?)プロラミングを理解して使いこなしているから偉いんだとおもいます。

あーだこーだ言うよりよりコードを書いてメンテナンスしてコミュニケーションして、どんどん良くなっていくプログラムは言語を選ばないと思います。
最近ならprototype.jsとか

昔ながらのviやら各種フィルタがCでつくられていて、それが有用だからずっとCでかかれているのかなぁ。

それにしても重箱の隅をつつきたくなる言語ではありますね。。

Posted by nns at 2007/08/25 (Sat) 00:36:29

[雑記]LLの壁を越えるためのC

via. 眠る開発屋blog &#187; Javaがファームで流行しなかった理由, LazyCoderでポン - 「C言語さえ学んでおけば食いっぱぐれる事はない?」, Big Sky :: 「C言語さえ学んでおけば食いっぱぐれる事はない?」C言語使いの将来を半ば現実っぽそうな表現を使って予想してみる デ

Posted by Do You PHP はてな at 2007/08/26 (Sun) 12:00:42

[言語一般]C言語さえ学んでおけば食いっぱぐれる事はない…わけがない

Big Sky :: 「C言語さえ学んでおけば食いっぱぐれる事はない?」C言語使いの将来を半ば現実っぽそうな表現を使って予想してみる あの、すみません、どなたか「C言語さえ学んでおけば食いっぱぐれる事はない」という主張をされたんでしょうか。 20年前くらいならそういう主張

Posted by プログラミング言語を作る日記 at 2007/08/28 (Tue) 02:38:01

混乱してないか?

>「C言語じゃないと出来ない処理だ」
>そうですね。ただ、それが必要な処理ならば、いずれ誰かがクラスライブラリを作ってくれるでしょうね。

そう,その仕事は本人がやらなくても誰かがやってくれるんだよ.失注しちゃえばそうなるんだし.

>「他の言語は今後仕様が変わってしまう可能性がある」
>そうかも知れませんね。きっとその頃には、そのC言語で作られたシステムも作り変えですね。

10年前に作られたものだって元気に動いているんだし.
強引過ぎますね.


10行のスクリプトと1年かかったC言語プログラムでどっちが価値があるかなんてものは客が決めること.困っていることを解決すればいいんだからね.
10行のスクリプトに1000万払う客がいてもいいし,1年かかって作ったC言語プログラムに1万しか払わない客がいてもいい.その逆もしかり.
言語というだけあって言葉なんだから伝えやすい言葉分かりやすい言葉を使えばいい.互いにスペイン語が話せるからと言ってわざわざアメリカ人とルーマニア人にその言葉で伝えなくてもいい.アメリカ人にはアメリカ語(笑)でルーマニア人にはルーマニア語(笑)で伝えればいい.

ただ苦労して身につけて幅を効かせたした言語でいろいろ出来て環境それほど選ばなくて挫折した人間が多いから愛着があるのは確か.出来ればそれを使いたいのも確か.
アイルランド人に韓国語を使いたい衝動にかられるのも確か(笑)

C言語が使えれば大丈夫と思っている人間と,その人間の最大のパフォーマンスを引き出せない上司及び会社が問題なのであって,決してC言語は悪くはない.
なんかC言語に対する憎悪が感じられるけども.

Posted by 振り向いたときそこにある階段の数を数えたことがあるだろうか? at 2007/08/30 (Thu) 01:28:49

●KoRoNさん
>この業界で食っていくということを考える場合、C言語しか知らないやつは論外ですが、C言語すら知らないやつも相手にしたくないところです。
いろんな業界のエキスパートはいらっしゃいますから、C言語が頂点ではないと思っていますが、知っていると知っていないとでは差が出る言語だとは思いますね。

●nnsさん
> header[size*nmemb] = 0; /* な感じもします。あとheader = malloc(云々)
>の戻り値は(void*)かな。。最近キャストってしなくていいのかどうかもわからない浦島太郎です。。
あ...

>あーだこーだ言うよりよりコードを書いてメンテナンスしてコミュニケーションして、どんどん良くなっていくプログラムは言語を選ばないと思います。
>昔ながらのviやら各種フィルタがCでつくられていて、それが有用だからずっとCでかかれているのかなぁ。

そうですね。C言語の良さはC言語を学んでみないと分からないですし、学ぶ必要なかった...とはならないでしょうね。

●振り向いたときそこにある階段の数を数えたことがあるだろうか?さん
>混乱してないか?
>10年前に作られたものだって元気に動いているんだし.
>強引過ぎますね.
釣り記事ですから混乱はしてないつもり...です。苦笑

>言語というだけあって言葉なんだから伝えやすい言葉分かりやすい言葉を使えばいい.互いにスペイン語が話せるからと言ってわざわざアメリカ人とルーマニア人にその言葉で伝えなくてもいい.アメリカ人にはアメリカ語(笑)でルーマニア人にはルーマニア語(笑)で伝えればいい.
日本語で何言ってるか分かんないお客さんもいますね苦笑

>C言語が使えれば大丈夫と思っている人間と,その人間の最大のパフォーマンスを引き出せない上司及び会社が問題なのであって,決してC言語は悪くはない.
>なんかC言語に対する憎悪が感じられるけども.
C言語は大好きです。私が出会った言語の中でも決して忘れたくない言語です。



みなさんへ
この記事は釣り記事でもあると同時に、C言語を知らない人が「C言語使える人って凄いよね」と仰る事への密かな反論でもあります。
C言語を知らない方には、単に「凄いよね」で終わって欲しくなく、多くの人にC言語の可能性を知って欲しいと思っています。
言語を生み出せる程の柔軟さと性能を持ち、それでいてエレガントさも出すことが出来る言語ですからね。C言語の知識は言語だけではなく、記事で書いた通り別言語で書かれているソースであったとしてもデバッグやトラブルシューティングの知識として使えます。

ただしC言語を使える...にも色々差があり、人の書いたコードをちょこっと直せる程度の人もいれば、自分で一からアプリケーションを作ったり、オープンソースにパッチを送ったりする方もいらっしゃいます。
有識者と非有識者の差も広いですから、重箱の隅を突付きたくなる言語ですね。
だから楽しいですし、残業しててもそれほど苦じゃなかったりします(嘘?汗)

※私はまだまだ、↑でnnsさんが指摘して頂いている程のヒヨッコです。


Posted by mattn at 2007/08/30 (Thu) 10:54:54

TrackBack ping me at
Post a comment

writeback message: Ready to post a comment.