今日は松江に出席だ。用事がないからお客さんしていられるな、と思ったら、 いきなり日曜学校の教師を頼まれる。 日曜学校の時間が始まってから、教師を依頼されたのは初めてだ。 その日の朝という経験はあるけど。今日は新約聖書「ローマ人への手紙」から。
今日は長女の11回目の誕生日である。もうそんなになるのね。 教会から戻るとプレゼントを贈る。今日はきげんがいい。
私は午後、また寝入ってしまったのだが、他の家族はその間にケーキを焼いたりしていたらしい。 夕食後、みなで歌を歌い、ケーキを食べた。
昼間寝過ぎたせいで夜目が覚めてしまった。どうしてくれる。いえ、自業自得です。
たぶん、HSP関連の話は(また別のネタを仕入れない限り)これで終わり。
いろいろ話が聞けて楽しかった。情報提供してくださった皆さん、ありがとうございました。
HSPの良い点
ま、納得できないことはない。ただ、これらは「HSP言語の文法」と密接に関連しているとは言いがたい。 繰り返しになるけど「HSP(というツール全体)が良い」ことは示せても、 なぜ「あの言語でなければならないのか」という問いには答えてないように思う。
あ、「ドキュメント〜」は若干は答えになっているかな。弱いけど。
しかし、私の問いに対する答えになりそうなものも見付けることができた。
ひとつはあおきさんによるもの。
HSP とかが goto メインなのはセーブ・ロードの実装が簡単だからじゃないのかなあ。
<中略>
ゲームプラットフォームとして、if/while を取るかセーブ機構を取るかという選択ならセーブ機構になるよね
確かに、「紙芝居型ゲームにおける局面のセーブを実現するために現在の言語仕様が望ましかった」というのは、 真実かどうかはわからないけれども、もしそうであれば私の問いに対する直接の答えだ。
もうひとつはshiomanekiさんの考察。
もちろん機能が豊富とかライブラリが充実しているとかそういう面があることは否定できないけれども、もっと重要なのは『「構造化以前のBasic」のような言語』になぜ豊富なライブラリが用意されてしまうのか?(そして初心者に受け入れられてしまうのか?)
<中略>
新しい学習コストをかけたくなかったのは、自分が最初に慣れ親しんだBASICで初心者には十分だと判断した言語制作者ではないだろうか?
そして、『「構造化以前のBasic」のような言語』で育った人々が、いつかまた新しい『「構造化以前のBasic」のような言語』を作り出す。
こちらにも納得する。自分が育った言語と同じようなものを作る、 それが優れているかどうかについては深く考察を行わない、 その結果が「あの言語」である、というのも非常にありそうな仮説だ。
真実を確認することこそできなかったが、 こんな面白い考察が読めただけでも、この一連の話題は(少なくとも私にとっては)非常に有意義であった。
最後に、誤解している人がいたみたいだけど、 私はRubyのデザイナーではあるが、別にRubyと比較しようなんて最初から思ってはいない。 私は言語デザイナーである前に、言語おたくなので、あらゆる言語の「より良い形」に興味があるのだ。
私は「HSPが総合的に良いツールであること」を否定したことはない。 ただ、「HSP言語」はどうかと思うのは事実だし、 「HSP言語」がもうちょっとマシな言語だったらもっと良いツールだったとも思う。
で、私の意見が間違っているかどうかが知りたかったというわけだ。
一連のやりとりを通じての私の結論は、 私の考えつかなかったもの(セーブ機能の実現)が提示されたものの、 真実はおそらく「言語デザイナーの怠慢」 あるいは「実装者は、ツール(機能)には興味があったが、言語にはさほど興味が無かった」ということでは ないだろうか、と推測している。私としては残念な結論だ。
っていうか、仮にも言語を作ろうってんなら、 みんなもうちょっと言語そのものにも関心を払おうよぉ*1。
*1 マイノリティである言語屋の魂の叫び
今日は某kitajさんやら某gotoyuzoさんやらの誕生日らしいのだが、 うちの長女の誕生日でもある。もうこんなに大きくなったのね。 私も歳をとるはずだわ。
一日遅れの家庭の夕べでちょっとしたお祝いをする。 プレゼントをあげて。 あと、ケーキ食べる。
Martin FowlerによるRubyコミュニティの評価。
まあ、「Rubyコミュニティ」とやらも規模が大きくなって 昔ほど牧歌的ではなくなったのかもしれないが、 まだ気持ちよい雰囲気を残しているのではないか、と。
ハッカーでなくてもできることはたくさんある、という話。
まあ、言ってることは確かにそうなんだけど、なんか違和感があるのはなぜか。 それは私が肩代りをしてもらう立場にあるからか、あるいは...。
夏休み3日目。妻は息子の小学校の給食試食会なのだそうだ。 私が小学生のころと違って、 なかなか魅力的なメニューが提供されることが多い最近の給食の試食というのは 面白そうではあるのだが、 生徒一人あたり親一人ぶんしか提供されないとのことなので、 私は末娘とお出かけすることに。
日中、1才児とふたりだけで出かけたことはあまりなかったので、 ちょっとどうなることかと思ったが、 思ったよりも聞き分けが良く(最近は反抗期なのだ。口癖は「ヤダ」と「自分でやるッ」)、 かなり楽しい時間が過ごせた。
長女の誕生日。ずいぶん大きくなりました。
「小学生の頃、こんなことを考えてました」という話。 まあ、小学生でもいろいろ考えるよね。
私は右目で見るのと左目で見るので色味が少しだけ違っている。 右目で見た方がやや黄色みがかっているのだが、 これをもって「一人の人でも見え方が違うのに、他人はいったいどう見えてるんだろう」と 深く考え込んだことがある。結論はいまだに出ていない。
小学生の哲学で思い出した。 そういえば、小学生の頃、人間の(正確には、自分の)心は三階層になっていると思った。
つまり、
の三層だ。考えている時には言語(日本語)を使うわけだが、 頭の中で日本語をつむぎながら、次に何を話すか考えている。 これは言語よりももうちょっと構造化されていない概念のリンクのようなものだ。 これが第二層。
これらが連携しているから、アイディアを練りながら文章が書ける。 概念のリンクからより表層に近づき文章になる。
が、よくよく自分の心を観察すると、第二層の概念の引き金となる もっと下の層が感じられる。これはあんまり制御されないし、 心の奥のほうから第二層にどんどん概念を突っ込む感じ。
結局、人間の発言とか、作文とかは、一番奥の第三層から出てきたものを 第二層でリンクしたり、フィルタリングしたりして、 第一層で言語化したものなんだ、と一人納得していた10歳くらいの私。
あの頃は「心」に興味があって、心理学者とか精神科医にでもなろうと思っていた。 ま、いろいろ挫折して今に至るわけだが、 いまだに人の心は扱っているような気がする。だいぶ違う形だけど。
人間は複数の選択肢から最適のものを選び出すことは あまり得意ではないが、二つのものからよさそうなものを選ぶのには 苦労しない点を利用して、二択の連結で複数選択をする、というアイディアがAHP。
それをLL(Perl, Python, PHP, Ruby)の選択に応用したものが Lightweight Language AHP。
ちなみに私の結果。。 Rubyの圧勝である。当たり前か。
ささだくんによる1.9.1の紹介。
いろいろ迷惑かけてます。
でも、12月には、(信頼性はともかく(ぉぃ))なにか出せるように 努力します。まずは、M17Nの仕様を確定しないとな。
Ruby用メモリーリーク検出ツール。
いくらGCがあるとはいえ、「死んだ(もう使わない)オブジェクト」が 生き残ってしまうことはしばしばある(たとえば配列に追加しちゃったり、クロージャから参照されてたり)ので、 こういうツールが役に立つこともあるかもしれない。
JRuby開発チームが、RailsConf EUやらJAOOやらに出席しながら がしがし開発している。とうとうAOTコンパイラを完成したようだ。
そのうちMRI(1.8)レベルでは、JRubyに追い抜かれそうだ。
高レベルアセンブラによって記述されたSmalltalk VM。 Windows、Mac OSX、Linux上で動作し、ランタイムの大きさは30Kb(最小構成)、 しかも、.NETと連携さえできる。既存のSmalltalk処理系(Cincom?)との互換性もある。
宣伝文句だけからは、いいことだらけで、 技術的にも非常に面白いが、これは商用でソースコードは公開されていない。 公開されていても3万行のマクロアセンブラを読む気になるかというと かなり勇気が必要だが。