これらの連載で伝えたかったことは、もちろんC言語の持つ素晴らしさ、美しさ、価値です。しかし、勘違いされては困りますが、C言語を何にでも使用できる特効薬であると言いたいわけではありません。世界には、山のように多くのプログラミング言語があり、その中でも特にC言語は成功している例の1つだと思いますが、だからといって、C言語は万能ではありません。

 ソフトウェアの世界では、これを「銀の弾などない」と言います。

 では、はたしてどういう態度で臨むのが正しいのでしょうか?

 「C言語は素晴らしい」と言うことは簡単です。しかし、その言葉に重みを持たせるには、できるだけ多くのプログラミング言語を習得し、それらと比較しなければなりません。他のプログラミング言語を知らないとすれば、それらよりも素晴らしいとする根拠が無いわけで、説得力がありません。

 実は、そういう側面から見て最も危険であるのが、UNIXとその互換OSの世界です。Linuxもこれに含まれます。これらの世界では、ほぼ標準的にC言語コンパイラが含まれているが、バイナリの互換性がありません。そのため、アプリをC言語で記述して利用する前に個々の環境でmakeするということが行われます。そのようにして使用されるC言語は、実はC言語である必然性に言語しての価値がほとんどありません。単純に他のシステムでも利用できる確率が高いというだけです。これでは、C言語の本当の価値は生きません。

 そして最悪の展開は、C言語が「リスクを取って自由を得る」タイプの言語であるため、便利だからといって安易にネット環境に露出したプログラムを作成することです。これはすぐにセキュリティホールに直結します。

 結局、安全性を高めたいのなら、C言語を選ばない勇気も必要です。息をするぐらい簡単にセキュリティホールを作り込めるC言語で、悪意ある者達が手ぐすね引いて待っているネットに露出するプログラムを書くなど自殺行為です。それでも、性能その他の理由でC言語で書きたい場合は、細心の注意を払って書くべきです。しかし、それはどうしてもC言語で書きたい理由がある場合に限られるべきでしょう。

 ですから、あえて言うなら本当に時代遅れなのは、何でもC言語で書けばいいと思っているセンスそのものです。C言語は今でも価値がある有益なプログラミング言語ですが、C言語が目指していない世界に行くには不向きです。

 それよりも、C言語が目指す世界に目を向けましょう。Cを使ってこそ意味を持つ世界は、そこかしこに実在します。それを的確に理解して使いこなしてこそのC言語です。


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS