久々に日記でも。
生物の進化のことを考えていると、無限の猿を連想することがある。
無限匹の猿が無限個あるタイプライターをでたらめに打ち続ければ、いつかシェイクスピアができあがるというアレのことだ。
生物の進化に置き換えると、1匹の単細胞生物が無限の時間を使って無限回の劣化コピーを作り続けると、いつか人間ができあがる、ということになる。
こうした考えは一般的なものなのかと調べてみたところ、盲目の時計職人という概念に行き当たる。恥ずかしながら私はこれまでこの言葉を知らなかったので、サバサバと調べてみる。
こうやって知りたいと思ったことがすぐに調べられるということは、人間の知を大きく向上させられるのではないかと思ったりする。
盲目の時計職人というのは良い比喩だと思う。小説とかにも使えそうだ。
Twitterのアイコンをいまだに卵のままにしているのはどうなんだろうと思ってみた。最近はちゃんとTwitterしてる風を装ってるので、アイコンも変えればより使ってる風な空気を出せる気がする。
無難なところでMとWが重なったようなマークのロゴでも作ろうかと思ったのだけど、Scala2.9が出てわっしょいなこの時期にそんなことをする気も起きない。
結論、保留。気が向いたら書いてみよう。
最近、使っている休息方法。呼吸を20回数える。
どうも私は休息というのを適切に取れない人間のようで、気分が高揚してくると我を忘れて作業に没頭してしまう。で、気がつくと疲労しきって活動力がガクッと落ちたりする。
疲労したらそこで休めばいいのに、明らかに効率が落ちていることに気づきながらも作業を止められない。
(ブレーキはどこに付いてますか? これですか。錆び付いてますね)
で、停止することができないなら思考の目先を変えさせればいいということで、目を閉じて20回呼吸をするのを数えるようにしてみたところ、わりとうまくいくことに気づいた。
20回というと、だいたい1分くらい。1分間目を閉じてじっとするというのは少ないながらも休息になるし、一時的な作業効率回復に役立つっぽい。
子供がお風呂に入った時、湯船の中でじっとしていられずにすぐに出てしまうことがある。でも「10数えるまで出てはいけません」と言われると、数を数えている間はじっとしていられたりする。アレと同じ原理だと思う。
試しに「素数を数えて落ち着く」にも挑戦してみたけど、呼吸を数えるのと比べると頭を使う量が多いのであまり回復した気がしなかった。アレは気持ちを落ち着けるために使うのであって、休息のために使うのではないようだ。
Scalaプログラマを増やすには、Javaプログラマが簡単に入ることができる道筋を作ることが重要かなぁと思う。
Javaプログラマであれば、JavaのコードをScalaに直すことはすぐにできるようになる。でも、そこに関数型の話を混ぜ込むと少し敷居が高くなる。
まずは「すぐに学べてコード量が少なくなるBetter Java」くらいの感じで学んでもらって、Javaと同じようなコードであればスラスラと書けるようになってから、次にimmutableなListについて紹介し、forやcaseなどへ進み、関数型については気が向いたらくらいな軽い感じで売り出すのがいいのかもなぁと思ってみた。
そういう系統の入門資料でも作ってみようかな。気が向いたら。
というわけで、もうしばらくはスカラスカラ言ってる状況が続きそうです。あしからず。
そうそう、Scalaってどんな言語かって言われた時に、難解さを伝えられるような表現を考えてみた。
「Scalaとは、JVMという厄介な代物の上の、JDKという膨大なライブラリの上の、まだ完成しきっていないScala標準ライブラリの上で、手続き型と関数型が混ぜ合わせ、mutableとimmutableとparallelを使い分けながら、コーディングを行う言語である」
どうだろう?