or1ko's diary

日々を書きます

とかいって、ぜんぜん書いてないや。

ブログをまた書き始めるとか言って、ぜんぜん書いてないや。

うーん。

おととい、表紙がすてきな例の本を購入した。
一章と二章を読んだ。
Mixi-inってそういものだったのかと理解した。
多重継承したいというか、振る舞い的にも動作的にもそっくりなのに、言語制約から(Java人間なので)、微妙な委譲とかいうやつを使っていた。

Mixi-inの説明のときもそうだったけれど、RubyJavaを比較することが多い。
Java人間なので、その点は好き。
一章にあった、Javaのクラスを絶対宣言しなくちゃいけないのは、本質的でないよねというのは非常に納得。
クラスなんて必要ない程度のプログラムのときも、クラスを書かなくてはいけないのは非常に面倒。
privateとかのアクセス修飾子も同様。
こんなんついてたら、eclipseがないと、書くのが億劫になる。
でも、eclipseを使ったらつかったで、shellの威力を発揮するのが面倒くさくなる。
可能な限り、コンソール上で作業をしたい。あっちこっちウインドウを切り替えるのは、僕の脳には厳しい。

昔、クラスアクセス修飾子も必要ないプログラムをよく書いてた時に、上記のように考えて、スクリプト言語を勉強することにした。
PythonRubyのどちらにしようか(Perlは他人の書いたプログラムを読んで、やる気がおきなかった)悩んで、当時はPythonを選んだ。
でも、この本を読んだら、Rubyまんせーになるかもしれない。(たぶん、使うことはないだろうけれど)

とりあえず、次章のブロックが気になる。
一章で、ブロックの導入によって高階関数が使いやすくなったという衝撃的なことを知った。
というのも、ブロックはRubyを選ばなかった理由(引数を表す|(タテバー)が嫌だった)の一つで、微妙なものという認識だった。
当時、高階関数の初歩については理解があった。
なので、ブロックの学習に対して、Rubyではそういう風に書くものなんんだというレベルでしかなかった。
でも、言われてみれば、pythonはlambda、C#はdelegateなど、多くの言語で予約語があって、Rubyのブロックのほうが私にとってとっつきやすい。まぁ、でも、haskellの書き方のほうがいい。