なぜいまだにCなのか

  • 投稿日:
  • by
  • カテゴリ:

Linuxの動画・音楽系ソフトはなぜみんなCで書かれているのだろうか。

動画系のTotem, xine, MPlayer。音楽系のRhythmbox, Beep Media Player。バックエンドのGStreamer。Linuxの世界で主流になりそうなソフトはみんなCで書かれている。

xineのFAQにはWhy not using C++?という項目がある。C++は遅いからCを使っている、とのことだ。Cだと異なるコンパイラでビルドされたライブラリとアプリケーションでも簡単に組み合わせることができるが、C++だとそうはいかない、という理由も挙げられている。

この理由は理解できないわけでもない。しかし、私は仕事でずっとC++を使っているので、オブジェクト指向の考え方にすっかり慣れてしまっている。pthread_createやsignalなど、Cスタイルの関数を使わなければならない場合でも、staticで定義したクラスのメンバ関数を渡すようにしてグローバル関数を回避するほうだ。Cスタイルのコードを見ると時代遅れに感じるし、ましてや自らCで書くなんて考えられない。

Mozillaの開発のリーダーであるBrendan Eichはだいぶ前に「CやC++は捨ててJavaやC#のような高級言語を使おう」と提案したことがある。それで私は影響されてMonoのC#を勉強したりしているのだが、Linuxの世界の主流はC#どころかC++ですらない。一体どういうことなのか。