鳥取支部大会。松江、米子の教会を経由して。
実は神権会のレッスンの準備をしていったのだが、 連絡の不備から私はレッスンする必要がなかった。
ちょっと残念な気持ちもあったのだが、結果的に熱心に予習した形になったので、 実に有意義であった。瓢箪から駒。
今週金曜、土曜は関西オープンソース+フリーウェア2003が 開催され、スピーカとして参加予定。テーマは「オープンソース」。
なのはよいのだが、なんだか大阪にいる間の予定が立て込んできて、 とても全部はこなせそうにない。 どれを選ぶか。悩ましいなあ。
今日はかずひこくんが講師。安心して見てられる。 本人の印象は「ふぇみにん日記」を参照のこと。
昨日も書いたけど、今回は本当の初心者という人はいなくて、 「Rubyのことは知らないけどプログラミングは結構分かる」人の集まりなので、 教えやすい。が、ギークというほどではないので、あんまり難しい話をしてもなあ。 我々も教えるプロではないし、なかなか難しいところはある。
午前中は座学というか、クラスの一通りの説明を行い、 午後は実習主体。例題の選定が難しい。
夕方まで教え切ったかずひこくんは昨日の私同様非常に疲れていた。 そうなんだよ、くたびれるんだよ。
今度は今週末浜田で「体験コース」が開かれる。 定員(12名)近くまで応募があったようだ。
Logoといえば分からないことがある。
たとえば、
reverse butfirst :a
は
(reverse (butfirst :a))
と解釈され(reverse, butfirstは1引数の関数)
(reverse butfirst :a)
とは解釈されない。一方、
fput first :a butfirst :b
は
(fput (first :a) (butfirst :b))
と解釈される(first, butfirstは1引数、fputは2引数)。ということは、アレか、 構文解釈のときに関数定義から引数の数を引っ張ってきてるってことか?
それはどうなんだろう。関数を再定義しちゃう(もちろんLogoでは許されている)と プログラムの解釈が変わっちゃうってことだよね。たしか、Rebolもそんな感じだったと思うけど。
Logoといえば「初心者に優しい」というのが宣伝文句だったような気がするけど、 実際には「優しい」のはインタラクティブな環境(とタートルグラフィックス)であって、 言語仕様はちっとも優しくないのね。
言語にとっつきやすいかどうかは、「簡単にいろいろ試すことができるか」で決まり、 言語仕様では決まらない。どんな(良くない)言語でも、慣れ親しむことができれば(忠実な)ユーザが獲得できる。
なんだか言語仕様にこだわり続ける私のような人間にはがっかりするような結論だが、 どうやら世の中はそういうものらしい。とはいえ、逆に考えればそういう条件を満たしていれば、 「良い(言語仕様の)言語」であっても構わないわけだから、 言語屋にも希望はあるのだろうか。
いや、待てよ。
世の中にはいろいろ悪口を言われながらも使われ続けている言語はたくさんある。 というか、広まっている言語は必ずといって悪口を言われている。 逆にさほど嫌われてはいない言語はあまり広まっていない言語に目立つ。
ということは、実は「好ききらいがはっきりするような言語の方が広まる」という仮説は成り立たないだろうか。 広まることを第一に考えると、総花的に八方美人な言語よりも少々「悪い言語」の方が見込みがあると。 それは言語オタクにとっては嬉しくない世界観だな。
「どんな言語でも広まれば悪口を言われるものだ」という考え方もある。 むしろ、こっちであって欲しいと願う、心から。
えーと、レセプト電算処理が普及するということは、うちにとってはめちゃめちゃうれしいことのように思う。株公開してたら暴騰するくらい。
いや、禍福は糾える縄の如しなわけだが。
PostgreSQL開発コアチームは複数のメンバがひとつの企業に勤めている例は(今は)ない、という話。 ここは以前、痛い目にあっているから、その反省だろう。
大企業とかだと取締役などの主要なメンバがひとつの飛行機に乗ることも禁止しているという話もある。 そういえば飛行機で観た『トリプルX ステート・オブ・ザ・ユニオン』ってのも、 大統領と副大統領が揃う一般教書演説の会場を狙うって話だったなあ。
ということは、
今回RubyConf出席に私だけ違う飛行機だったのはそれを考慮して....のはずがない。 単なる偶然。
Enumerable系イテレータメソッドにブロックを渡さないとEnumeratorを返す。 が、これがまた使い道がない。
唯一うれしいのはwith_indexメソッドである。 たとえば、「map_with_indexがほしい」という話を時々聞くが、 これがあると
ary.map.with_index{|x, i|...}
とすれば出来上がりである。 しかし、それ以外のEnumeratorのメソッドはあっても役に立たないし、 そもそも使い道がよくわからない。
いっそ、Enumeratorではなく違うオブジェクトを返すべきではないかしらん。 その場合にはきっとwith_indexしかないオブジェクトなんだろう。 Enumeratorが持つby_sliceメソッドとかby_consメソッドとか追加してみたけど、 結局役に立たなかったし(で、HEADから消した)。
with_indexのようなブロック呼び出しを修飾するタイプのメソッドって 他にありえるのかなあ。
なんでそんなことをしたいのかいまいち不明だが、 Oracle自身がLinuxのサポートも行うという話。
RedHatを敵に回したいわけでもないだろうし、 自分ならRedHatよりうまくやれると思ってるわけでもないだろうし。
あと、日本ではミラクルリナックスがあるのでちょっと面倒なことになる... のかな。やや、顧客層は違いそうだけど。
それからRedHatの反論。 互換性については適切かどうかわからないけど、他は筋は通ってそう。
一日遅れで米子空港に到着。
帰りにディーラーによって、新しい車を受け取る。
しかし、家、買ったのと同じ時期に車を買い替える必要になるとは、 出費は重なるものだ。車の方は型落ちの中古車だとは言え、 もうちょっと乗るつもりだったんだけどなあ。
今度は日産リバティー。スズキ→三菱→マツダ→日産と来たことになる。 排気量が増えた(1800cc→2000cc)ので燃費が心配。 ガソリン代は上がる一方なのに。
Rubyにおける「10 % -3」の値が、CやJavaと違う、という話。
が、PerlとPythonは両方ともRubyと同じなんだよね。 RubyはPythonに合わせたように思う。
なんでPythonとCやJavaが違うのかはよくわからない。 なんか理由があるのかな。
まあ、Rubyの場合、remainderやmoduloメソッドがあるので、 気になる時には明示的にそれらを使うという手はある。
Javaによる分散システムHadoop。 分散ファイルシステム上でMapReduceを実現するというGoogleキラー。 いや、killは無理だろうけど、 少なくとも「あちら側」で閉じておらず、オープンソースなのは嬉しい。
が特長。楽天で作ってるのも、この辺を目指したい。
こちらはC(or C++)とRubyの組み合わせで。
共感。
金利は眠らない、疲れない、休まない。常に増え続ける。 ので、蛇蝎のように借金は避けよ、というのが人生訓。
じゃあ、なんで家買ったかっていうと、いろんな事情で所持金の範囲内で買える 物件があったから。以前「車をいつも現金で買う」って言ったら、 変な顔されたけど(うちのはいつも中古車だけど)、 「家も現金で買った」って言ったら信じられないような顔をされた。
これも中古だけど。
まだ、箱だらけ。どこになにがあるのか見つからない。 特に資料とか、細々としたものは、全然わからない。