2008/01/31


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 by




ちょっとポップな感じに変更しました。

実は、blosxomを捨て、MTに浮気しようかと思ってました。
理由は、管理画面。
確かに誰にも見られない、秘密の管理画面ってなんとなく魅力的に見えてしまったのですが、よくよく考えたら存在意義が無い事に気づきました...orz
Posted at by




コードを晒け出して下さい。
プログラミングに自信があろうと、無かろうと。
貴方の書いたコードを見たいと思う人がいなかったとしても、晒け出して下さい。

私はオープンソースであることは、素晴らしい事だと信じています。たとえそれが、ちっぽけなサンプルプログラムであっても、人に見せる事で自分の書くコードに「見られる」という観点が入り込み、色んな見えかたが出来るようになります。さらに運が良ければ人からレビューしてもらえるんです。
私は、会社の部下、他社様の若手の方々によく「オープンソースコミュニティに参加しましょう。英語が分からなかったら日本のコミュニティでいいので入りましょう。」と言ってきました。これからも変わりません。
これは、単に「勉強しなさい」と言っている訳でなく、オープンソースコミュニティの特性がコーディング能力を養うには非常に効力があると信じているからです。
オープンソースコミュニティでは、修正ソースを送る際にはパッチ(patch)と呼ばれるソース差分を送る事になります。受け取った側は、そのパッチを一度適応してみて、間違いが無いかを確認します。そのコミュニティがMLを持っているならば、MLに参加している皆にそのソース差分が送付されます。
そして皆が自分の書いたコードに目を通すんです。

「恥しい...」そんな事を思ったのならば勿体ない話です。もちろん腐ったソースコードを人に見せるのはどうか、という議論もありますが、せっかく人に見てもらえるんだから見てもらわなくては損ですよ。

「自信がない...」そんなもの、みんなそうなんです。私だって自分の書いたコードに100点なんかあげられません。でも私は晒け出すんです。間違いを指摘してもらえるんなら、ありがたい話です。
自分で書いたプログラムの間違いを見つけるのは一苦労です。人に客観的に見てもらった方が間違いには気づきやすかったりします。そして人のソースも見ることで自分のソースコードの貧弱さに気づいたり、時には自信につながったりする物なんです。
#海外のコミュニティで自分が書いたソース差分が初めて取り込まれた...なんて事あればドキドキしますよ。


それはそうと、ここ最近「どう書く?org」というサイトを時間を見つけては覗いています。
ここでは、プログラミングに関する出題に対して、色々な言語の使い手が色んな手法で回答していきます。面白いのでfeedも登録しています。
電車で帰宅する際にも携帯から「へぇ...こんな書き方もあるんだ」と眺めてます。
一見コード書きに自信のある人達の集まりに見えますが、おそらく皆自分のコードに100点を付けて回答している訳ではないと思います。(HelloWorldは除きます)
「もしかしたら間違ってるかも」と思いながら回答している方も多いと思います。でも晒け出すんです。「俺こんなコード書けるんだぜ」なんて自慢大会じゃないんです。プログラミングを楽しんでいるんです。自分の書いたコードを見てもらい、たった一人でも「へぇ」と思ってくれる人が、もしかしたらいるんじゃないか?そんな気持ちだと思います。

コードを見せる人によっては、時には「そんな書き方、2億年前からあったよ。」とか「それ実行すると10秒後にはホームディレクトリが無くなってるよ」なんて手厳しいコメントを貰うかもしれません。でもそれって有り難い話。人に見せない限りそんなコメントは貰えません。


人に見せてなかったら、今頃貴方のハードディスクからホームディレクトリが無くなっていたかも知れませんよ...
Posted at by