ぎょーむ日誌 2001-08-18
2001 年 08 月 18 日 (土)
- 0900 起床.
週末のわりには終末でない起床時間.
- 昨日は真夜中までプログラムを直していた.
めずらしく夜間に仕事,
というわけでもなく,
当面のプロジェクトにはまるで関係ない
mlfitting
(多次元非線型モデル対応の最尤推定プログラム)
の手直しである.
- 直したかったのは STL 依存性を削れるところは削りたい,
という部分である.
とくに整数・倍精度浮動小数点数・文字列・ブール型に
対応している汎用要素 Unival で
必要もないのに map や strstream といったのを使ってる部分.
map は enum+配列に,
strstream は C++ ではなく C の標準関数である
sprintf だの strtod だのに置換してみる.
- 私は C++ にはここ数年呪われつづけているので,
数画面ぶんの呪われエラー警告文が出たりしても
冷静に対応できる.
しかしながら,
C++ ではない C の世界,
というのはよくわかっていなくて,
core ファイルどかんと吐いて異常終了されようものなら
かなりアセってしまう.
- 今朝もその手直しを続けて,
ようやく問題なく動くようになった.
STL 依存を少なくすることでコンパイルの速度は
かなり向上した.
しかし実行速度については
……
この mlfitting では全然かわらないね.
さて,
ここで試験できた置換技法を
シミュレイション用久保ライブラリに適用してみると,
何かいいコトあるだろうか?
- 昨日,川崎ヨドバシで買った
ヘビの表紙の
「Python 入門」
にひととーり目を通してみる.
これもまた当面のぎょーむには何の関係もない.
- 日本語で書かれた Python 本は少なく,
これとこれの続刊である
「Python プログラミング」
が主たるところであろうか.
どちらも (というか原書は一冊) 1996 年刊行でちと古くて,
Python-1.3 に準拠してる.
現在の主流は 1.5 ですでに 2.x も出回っている.
なお
「初めての Python」
てのもあるけど,
これは,ちょっと
という書評もある.
- で,
ヘビ本ですごいのは
(と言いますか私がこの本を買った理由は)
最初のほうから
「永続オブジェクト」
なんかを解説してるところである.
おぶぢぇくと指向プログラミングも結構ですが,
やっててイヤなのは面倒な構造のクラスの
インスタンスがプログラム終了と同時に消えちまう,
という点である.
- 現在の森林や樹木シミュレイターだのは
インスタンスを再現するのに必要な情報を
Begin-End で囲まれた階層構造の中に押しこんで
テキストファイルに出したり読みこんだりしている.
そのために必要な Filereader クラスも
自作ライブラリにある.
しかし入出力にはえらく時間かかり,
ライブラリ使ってなおそのコーディングは面倒である.
- このあたりを解決するためには,
永続オブジェクトか外部データベイスを使う,
というのが上策のようである.
で,
この 5 年前刊行のヘビ本は初心者むけなのに,
それが解説されているのである.
いや,
まぁたいていの OO な言語では
誰かが永続化の仕掛けを作ってネット上で公開してはいますよ
(あの
Perl にも
!).
しかし C++ も Ruby も入門書みてもそんなことは
まるっきり言及されてもいない.
- で,
Python では標準ライブラリで簡単に永続オブジェクト作れる,
と.
たいへんに結構.
どうも全部テキストに直しちゃうみたいで
(最近のやつは違うのかもしれないけど),
速度の点ではあまり速くはないかも.
あと,
つーどくしてわかったのは,
Python が短期間開発のための
プロトタイピング言語としての側面を
強調している点である.
つまり必要な処理は後からどんどん C/C++ で置き換えてくれ,
という方針がはっきりしている.
その機能も充実している.
Perl と比較した場合に
こういったところが特徴的なのではなかろーか
……
- ……
と思ったら,
昨日の「ぎょーむ日誌」の Python 本うんぬんの記述を
摘発した異端審問官もとい
某宣教師殿が Python ではなく Ruby を,
との布教活動.
ごくすなおに Python ではなく Ruby,
とするご利益を伺ってみたのだけど,
この質問はある種の不敬罪のようなものに該当するらしく,
何か意味ありげな沈黙がただ返ってくるばかりである.
- Ruby 作者の手になる
「オブジェクト指向スクリプト言語 Ruby」
に掲載されている比較によると,
Ruby は Unix 的で
「オブジェクト指向に基づいて設計されたスクリプト言語」,
Python は OS からは中立的で
「スクリプト言語にオブジェクト指向機能を追加したもの」
……
うーむ.
- どの言語にせよ,
苦労しながらひととーり使ってみないとわからん,
ということかな.
たとえば,
全部 Perl で書いてしまった「ニセ」アカマツを
書き直すとしたら,
Python が良いのか Ruby がよいのか
(はたまたどうなるか全くわからぬ Perl6 か)?
これなんかは実際やってみないと判定できそうにないなぁ.
- けっきょく仕事はススまぬ一日でした.
ライブラリの細かい手直し少しやっただけ.
日が沈んでからふらふらと外に出る.
奇跡のように涼しい.
大森町商店街のほうに行ってみる.
電気代支払う.
3687 円.
冷房代のせいで高くなっている.
- 今日の食卓
- 朝 (0930):
蕎麦.
- 昼 (1330):
スパゲッティー.
ゴーヤ・ニンニクのソース.
- 晩 (2130):
米 0.9 合.
ゴーヤ・タマネギ・ニンジン・マイタケ・卵
の炒めもの.