今日も酔っ払ってます。ワインは開けたら飲まなきゃというプレッシャーがあるので、土日で1本飲んでしまう。
私がC++を使う最大の理由はC++がメジャーな言語だからである。昔は言語間の移植とかよくあったけど、現在は移植するべきプログラムは山ほどあって、わざわざ私の作ったプログラムが移植されるとは思えない。そして、新しい言語ほど寿命が短いのである。C++は古くて悪い言語だが、メジャーな言語なので半端に新しくてよい言語よりも後まで残ると思う。マイナーな言語で書くと、言語の終了がプログラムの終了になってしまう。
その意味ではC言語の方が後まで残ると思うが、さすがにCではメモリの解放に自信がない。ガベージコレクションライブラリもあるけれど、ライブラリ依存性というのもまた問題なのである。私はOSXでmac portsを使っているが、依存性によって導入されるライブラリが非常に多くて鬱陶しい。
もう一つC++を使う理由があって、それは速度である。なにしろメインマシンがmac book proで、まあi7ではあるもののノートなのでかなり非力、C++で書いてもバックグラウンドで動かしていると、ネットを見たりするのに支障がある。いまは、Amazon EC2の一番安いやつを借りて24時間計算をさせているけど、それで2,3日かかる。
あとは、万一スパコンを借りられた場合にC++ならほぼ確実に使えるから。まあ、そういう意味でもメジャーな言語で書くことにはメリットが有る。逆に言うと、そういうメリットがあるから、いつまでも悪い言語がのさばるわけだ。
ぐだぐだ書き続けると、新しい言語はいいんだけど、次々に出てくるから年寄りには覚えきれない。かなり前にML(SML)がいいというので少し勉強したのだが、その系統でOCamlというのが出てきた、と思ったら今度はHaskellが出てきて、これが最も関数型らしいのだが、過去のjava資産を利用できるというscalaが出てきて迷っているうちに、いろいろな言語で関数型プログラミングが取り入れられるようになって来て、もうどうしたらいいやら。
うーむ、酔っ払って書くとろくでもないな。政治的に炎上するようなネタを書かないだけの分別は残っている。今後も決してなくならないのはアセンブラだろう。その意味では一番メジャーだ。AMD のGPU用VLIWとか、基本的な部分は当分変わらないだろうし、趣味的にやるには面白い。なんと今ググったら、AMDはもうVLIWを止めているそうな。いやー、もう年寄りの出番はないなぁ。
酔っ払っていると内容は酷くなるが、とりあえず何か書くというハードルは下がる。いいのか、悪いのか。