プログラミング言語で考える「小泉改革とは何か」その2 ― 2005年09月10日 10時05分30秒
ASAHIネット(http://www.asahi-net.or.jp)のjouwa/salonからホットコーナー(http://www.asahi-net.or.jp/~ki4s-nkmr/ )に転載したものから。
---
小泉改革、郵政民営化はCからC++に行く改革で、自動メモリ管理をするガベ
ージコレクションがない言語なんて、メモリリークの発生を抑えられないので
だめだというのが、わかりやすくて評判がいいようで。^^;
ブログのコメントやトラックバックをみても、こんな喩えは、一面だけ異常
に拡大していることを冷静にみたうえで、喜んでもらっているので、なおさら
うれしいです。
メモリリークに関しては、ほかにもこんな話も作れます。
メモリリークは、郵政の金で財投債を買いまくって役人の天下り先に無駄金
を流していることに相当する。メモリがリークしてると、プログラムはメモリ
を食い潰して死ぬ。それと同じことが日本の国家レベルで起きている。
メモリリークのバグを潰す。このこと自体は喫緊の課題で大変重要。
でも、小泉郵政改革がだめなのは、所詮CからC++への進化でしかないこと。
だから、メモリリークは止められない。竹中はデストラクタがあるというが、
使えない。
これは、郵政が民営化されても、国債や財投債をずっと引き受けざるを得ず、
デストラクタではメモリリークを止められないということ。
つまり、金は官にメモリリークしっぱなし。ちっとも改革になってない。
メモリリークのバグを潰すなんていうけど、そもそもメモリリークのバグが
発生するプログラミング言語を使っていること自体が間違い。高水準のまとも
なプログラミングなら、メモリリークのバグが発生する余地がない。
C++を使う小泉改革では、今後、ずっとメモリリークのバグに悩まされる。
だから、たとえ郵政民営化に大賛成であっても、小泉郵政民営化には反対。
なんてこともできるわけですね。
余談。
いちいち実名は出さないが、いまだに、High Level Languageの訳語として、
高級言語と使ってる奴がいるね。Javaのような高級言語なんて言い方で。言語
感覚、鈍いね。
高水準言語っていってくれよ。High Classじゃないんだよ。値段が高いんじ
ゃないんだよ。抽象度が高いから、High Level Languageなんだよ。だから、
高水準言語といってもらいたい。同様にアセンブラやCは低級言語じゃなくて、
低水準言語ね。
それからLispやJavaのようにガベージコレクションのある言語なら、メモリ
問題が万事OKかというと、当然、そうではない。無駄にオブジェクトを生成し
て抱えたままだと、結局、メモリを食い潰す。スピードも遅くなるしね。だか
ら、無駄なオブジェクトは生成せず、必要十分なオブジェクトを使うようにし
ないとだめ。ガベージコレクションがあるからといって、ボケーっとしてると、
やっぱり考えたコードに比べるとメモリ消費量やスピードに雲泥の差が出る。
Javaは最近ずいぶんよくなったが、最初のころは、オブジェクトの生成と消
滅は遅かった。だから、不要なオブジェクトを作らないようにするだけで、何
割もスピードが上がった。
処理できる量から考えても不要なオブジェクトを作らないのは重要、
今年の仕事で、ある種の辞書を作るのに、最初にひらっと書いたら、メモリ
1GBで100万行処理できなくて、スラッシングが起きて処理が終わらない。2GB
あれば処理できるけど、1GBで100万行も処理できないのはまずいと思って、あ
れこれ書き換えたら、倍から3倍くらいは楽に処理できるようになったかな。
スピードも倍から3倍になったと思う。この辺の数字、もう記憶ないけど。^^;
でも、同じプログラムではないんですが、この先、1500万行の処理が待って
ます。\(^O^)/
ほんとゲノム関係って、何でも2桁から3桁多いもんね。中国かインドか、お
前はって感じ。これくらいになると、処理するのに1週間なんて話になるので、
ちょっとした工夫がチリも積もればパラグアイで、倍速くなったら、1週間か
かってたものが3日で終わるわけです。なかなかやりがいがあります。
---
小泉改革、郵政民営化はCからC++に行く改革で、自動メモリ管理をするガベ
ージコレクションがない言語なんて、メモリリークの発生を抑えられないので
だめだというのが、わかりやすくて評判がいいようで。^^;
ブログのコメントやトラックバックをみても、こんな喩えは、一面だけ異常
に拡大していることを冷静にみたうえで、喜んでもらっているので、なおさら
うれしいです。
メモリリークに関しては、ほかにもこんな話も作れます。
メモリリークは、郵政の金で財投債を買いまくって役人の天下り先に無駄金
を流していることに相当する。メモリがリークしてると、プログラムはメモリ
を食い潰して死ぬ。それと同じことが日本の国家レベルで起きている。
メモリリークのバグを潰す。このこと自体は喫緊の課題で大変重要。
でも、小泉郵政改革がだめなのは、所詮CからC++への進化でしかないこと。
だから、メモリリークは止められない。竹中はデストラクタがあるというが、
使えない。
これは、郵政が民営化されても、国債や財投債をずっと引き受けざるを得ず、
デストラクタではメモリリークを止められないということ。
つまり、金は官にメモリリークしっぱなし。ちっとも改革になってない。
メモリリークのバグを潰すなんていうけど、そもそもメモリリークのバグが
発生するプログラミング言語を使っていること自体が間違い。高水準のまとも
なプログラミングなら、メモリリークのバグが発生する余地がない。
C++を使う小泉改革では、今後、ずっとメモリリークのバグに悩まされる。
だから、たとえ郵政民営化に大賛成であっても、小泉郵政民営化には反対。
なんてこともできるわけですね。
余談。
いちいち実名は出さないが、いまだに、High Level Languageの訳語として、
高級言語と使ってる奴がいるね。Javaのような高級言語なんて言い方で。言語
感覚、鈍いね。
高水準言語っていってくれよ。High Classじゃないんだよ。値段が高いんじ
ゃないんだよ。抽象度が高いから、High Level Languageなんだよ。だから、
高水準言語といってもらいたい。同様にアセンブラやCは低級言語じゃなくて、
低水準言語ね。
それからLispやJavaのようにガベージコレクションのある言語なら、メモリ
問題が万事OKかというと、当然、そうではない。無駄にオブジェクトを生成し
て抱えたままだと、結局、メモリを食い潰す。スピードも遅くなるしね。だか
ら、無駄なオブジェクトは生成せず、必要十分なオブジェクトを使うようにし
ないとだめ。ガベージコレクションがあるからといって、ボケーっとしてると、
やっぱり考えたコードに比べるとメモリ消費量やスピードに雲泥の差が出る。
Javaは最近ずいぶんよくなったが、最初のころは、オブジェクトの生成と消
滅は遅かった。だから、不要なオブジェクトを作らないようにするだけで、何
割もスピードが上がった。
処理できる量から考えても不要なオブジェクトを作らないのは重要、
今年の仕事で、ある種の辞書を作るのに、最初にひらっと書いたら、メモリ
1GBで100万行処理できなくて、スラッシングが起きて処理が終わらない。2GB
あれば処理できるけど、1GBで100万行も処理できないのはまずいと思って、あ
れこれ書き換えたら、倍から3倍くらいは楽に処理できるようになったかな。
スピードも倍から3倍になったと思う。この辺の数字、もう記憶ないけど。^^;
でも、同じプログラムではないんですが、この先、1500万行の処理が待って
ます。\(^O^)/
ほんとゲノム関係って、何でも2桁から3桁多いもんね。中国かインドか、お
前はって感じ。これくらいになると、処理するのに1週間なんて話になるので、
ちょっとした工夫がチリも積もればパラグアイで、倍速くなったら、1週間か
かってたものが3日で終わるわけです。なかなかやりがいがあります。
最近のコメント