Cは高速過ぎる

いや、速いことそれ自体がいけないとは思わないんだけど。

なんで表題のようなことを思ったかと言えば、Cが高速だってのは安全性とのトレードオフの結果だから。そして、アプリケーションの律速要素は言語それ自体よりも、それ以外の部分にあるから。となると、そんなにCばかりが高速になる必要はないし、だったら安全性を確保してもいい。

今はあまり言わなくなったけど、元々のCは「ポータブルアセンブラ」だった。アセンブラをポータブルにして、高級言語っぽく書けるようにした。それが元々のCだ。だから速いし、だからいろいろ自分で面倒を見なきゃいけない。

時代は下がって、今はCは汎用高級言語としても使われるようになった。そこいらにあるアプリケーションは、たいていCで出来ている。とは言え、全てがCでなきゃいけないような、低レベルなことをしているわけでもないし、高速である必要もない。ただ、比較的綺麗なバイナリのアプリケーションが作れる言語がCだってだけだ。一々ランタイムを用意しなきゃいけない言語でアプリケーションが書かれていたら、かなり面倒臭い。私があまりJavaなアプリケーションを好まないのはその辺が理由だ。

Cは高速だけどいろいろ危険だ。今時は普通にちゃんとしたOSの上だから、MS-DOSの時代みたいに「ポインタ間違えたからリブート」なんてことはなくなったけど、それでもコア吐いたりするし、サーバ系のアプリならバッファオーバフローで攻撃とか出来てしまう。そうならないようにいろいろ自分で手当しなきゃいけないのがCだ。

RubyとかJavaとかはいろいろ安全だけど、ランタイムが必要だったりインタープリタが必要だったりして面倒臭い。そもそも、そのままサクっと.soがつながらない。いろんなラッパが必要になってしまう。どうせ必要なのは、いろんなオーバーフローのチェックとかその程度なんだから、OOPすらわりとどうでもいい。てか、JITとか言わなくてバイナリ落とせよ。

ということで、Pascal程度の重さでいろいろ細かいことを気にしないでアプリケーションが書ける言語があると良いなぁと思わんでもない。バイナリ落とすんだったらgcjとかって手もあるんだろうけど、これも微妙だしな。諸々のダイナミックな言語もいろいろ頑張っているけれど、そこまでの柔軟性を「Cの延長」に求めるつもりもないしな。

と言っても、今さらCみたいなプリミティブでOOPでもない言語を新しくデザインするってのも、時代に逆行しているような気がするよなぁ…

Google Reader Yahoo Facebook Twitter Digg FriendFeed Delicious Google Translate
This entry was posted on10月 2nd, 2008 at 19:40:11. You can follow any responses to this entry through the RSS 2.0. Both comments and pings are currently closed.

3 Responses

Comments(3)Trackbacks(0)

  1. えみ夫

    そこでDelphiですよ。
    Windows限定ですが・・。

    2008/10/3 金曜日 9:28:23 | #1
  2. ogochan

    一応その辺を思って書きました。

    「Windows専用」とか「Pascal」ってことを除けば、ポジション的には悪いものじゃないなと思います。

    2008/10/3 金曜日 17:19:35 | #2
  3. K_O_

    Fail-safe Cなどはいかがでしょう?

    2008/10/10 金曜日 2:19:02 | #3
  • 私について

    ただのプログラマです、ハッカーではありません。

    秋葉で暮し秋葉で仕事してますが、秋葉系は嫌いです。物事を冷静に分析することは好きですが、ニヒリストは嫌いです。

    秋葉でちっこい会社をやってます。 こーゆーことがお仕事です。

    詳しいことは、自己紹介のページでも見て下さい。また、mixiの方でもいろいろわかるかも知れません。

    日経ITProに連載(生越昌己のオープンソースGTD)を書いています。「ちゃんと書いた文章」が読みたい人は、そっちを読む方がいいと思います。

  • このページについて

    ここは私の雑文の置き場です。WordPressを使っていますが、いわゆるblogのつもりで書いているわけではありません。「覗き見のできるチラ裏」くらいの意味しかありません。

    もしかしたら有用なことがあるかも知れません。あるいはむかつくことも書いてあるかもしれません。それらはみな「そんなものだ」と思っておくに留めましょう。

    コメントを書くのは構いませんが、「反論」の類はよそでやって下さい。同意する気のない人達と議論する気は全くありませんので、議論したければよそで勝手にやって下さい。

    と言っても、「読むな」「広めるな」というわけでもありません。リンク、ブクマの類は御自由に。

  • カテゴリ

  • 過去の記事

  • メタ情報