N-gram 方式の全文検索システムRastのソースコードがとうとう公開された。 ここ数ヶ月の後輩たちの成果を見てやってほしい。 ただ、まだ最終版からはほど遠いのでお手柔らかに。
OSCON 2005へのプロポーザルが採択された。 テーマは「Yield to the Block: The Power of Blocks in Ruby」とするつもり。 Rubyの特徴であるブロックの活用方法をいろいろと語る45分のセッション。
さて、これで行く方法を算段しないといけなくなったな。 夏休み期間にアメリカ行くのにどのくらいかかるかな。
ごく当たり前のことが書いてある。 ただ、翻訳はあんまり良くないような。「?」と思ったら原文を参照。
Rubyではレシーバが省略された関数的形式で呼ばれたメソッドはselfのメソッドと見なされる。 ただし、privateと設定されたメソッドがエラーにならないという違いがある。
これはこれで便利なものだが、ちょっとだけ欠点があって、 単にユーティリティとして使いたい関数的メソッドで名前空間が消費されてしまう。 ただ単に手続きをまとめるためにだけ作ったメソッドでも、 重複するといけないのでサブクラスで同名の関数を使うことはできない(正確には可能だが、トラブルになる)。
そこで、関数形式で呼ばれたメソッド呼び出しでは、メソッド探索を当該クラスからはじめる、 というのはどうだろう。仕様はより複雑になるが、再定義されたメソッドを利用しないので、 サブクラスの都合によりメソッドの動作が変化してしまう事態や、 メソッド名が偶然衝突してしまう危険性を避けることができる。
当該クラスからのメソッド検索に必要な枠組みはすでにsuperの実現のために用意されているので、 実装もそんなに難しくないはずだ。
仕様が複雑になることと、関数的メソッドをオーバライドできないこと、がデメリットだが、 そんなに悪い取り引きではないと思う。
1.9で実装してみようかなあ。
RubyをPHPやJavaと比較するという話。
「Ruby is too easy to be used as a first language」という観点は面白い。 つまり、最初Rubyでプログラミングを学んでしまった人は、 それがあまりに楽で簡潔なので、 他の言語に移行する時の学習曲線が急勾配になりすぎるということ。
そういわれれば、そういうこともあるかもしれない。 私だってRubyでプログラミングを学んだわけじゃないものなあ。
しかし、同じ論理はより強力に「なでしこ」や「ドリトル」にもあてはまりそうな気がする(HSPにも?)。 これらの言語で学んでしまった人は他の言語に移行するのが大変になるかもしれない。 ずっとその言語で閉じていればいいけど、いざ他の言語が必要になったら...。
いや、人間の柔軟性はそれくらいなんなく克服するのだろう....と、信じたい。
最初にRubyでプログラミングを学んだ(らしい)青木さんは反例なのか特異点なのか。
Rubyで記述した 子供用の ローマ字でプログラミングできる言語なんてのどうでしょう? スペルまちがったら動かない てことは なくなるかも? each は tugitugi でも tsugitsugi でも 動くての if は moshi か 言葉は 重要 ame.tsugitsugi suru kaku 'せかいよ こんにちは!'; owari とかとか(笑)
ん なんかまちがいました;
Portland、一緒にいきます?
ありがとうございます。
前回参加した一昨年と会場は同じだと思うので、迷子にはならないと思うのですが。問題は予算ですね。
ドリトルの後でJavaを教えたら、「最初からJava」より効果がありました。社会人の初心者15人に教えた経験です。Rubyなら「最初からRuby」でも行けるかもしれません。(JavaはHello, Worldからclass, public, static, void などが続出で初心者にとって意味不明です。1文字でも打ち間違えると動かないし、説明しようにもstaticなんて初心者に教えようがないですし...)
今日は早大で「Javaを段階的に教えるシステム」の話を聞いてきました。この論文の図20(17ページ)で、step1(whileのみ)、step2(変数宣言あり)、step3(クラスの中身だけ)、step4(Javaそのもの)のように段階的に生徒に使わせるようです。 http://www.kake.info.waseda.ac.jp/~cho/res/nigari-SIGPRO.pdf
一般教養ならドリトルなどで「プログラミングって楽しい」と思ってもらえばいいんですが、専門に学ぶなら最初からSchemeやRubyが早道だと思います。
兼宗さん、わざわざありがとうございます。
ということは、私の杞憂なんでしょうね(少なくともドリトルに関しては)。良いことを聞きました。