ぎょーむ日誌 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 合.
			ゴーヤ・タマネギ・ニンジン・マイタケ・卵
			の炒めもの.