カテゴリ別 2003年 | 2004年 | 2005年 | 2006年 | 2007年 | 2008年
知り合いサイト: よんだもの / 暴想 / Linuxでやる夫 / 新宿Vipper / 僕だけが幸せになればいいのに。
BarCampLondon2でのプレゼンです。データベースとウェブサーバが一台に同居しているミニマムシステムからどうスケーリングさせていくかというお話。
ユーザを複数のデータベースに分けて格納する User Cluster が途中で出てきますが、
などを課題点として挙げています。たしかに ActiveRecord なりプラグインなりで吸収できるようになると楽なのですが。
要するにPerlみたいにメソッド定義がどこにあっても良いようにしてくれ、という話。
気持ちはわからないでもないが、欠点がある。
- ifで囲んでメソッド定義を条件分岐とかできなくなる
- Rubyが基礎にしているLisp的実行モデルから離れちゃう
メリットよりはデメリットの方が多いんじゃないかな。
クラス定義やメソッド定義など「定義」というと静的に決定されるような印象があります。この印象はプログラミング言語歴によるんじゃないでしょうか。
実行されるものだということを強く印象付けるために、Ruby を最初に教えるときに、
class Hello
def hello
puts "hello, world"
end
end
は、
Hello = Class.new
Hello.class_eval do
define_method(:hello) do
puts "hello, world"
end
end
のシンタックスシュガーですと説明するとかどうでしょう。あるいは、実は省略可能な do が隠れていて正式に記述すると、
class Hello do
def hello do
puts "hello, world"
end
end
となるのですよと、DSL 方面から攻めてみるとか。冗談ですが。
TechCrunch の記事、Silverlight: ウェブはさらにリッチになった によれば、
Silverlightでも、サポートされているいくつかの言語を使ってコードを書くことができる。現時点でサポートされているのは、C#、Javascript(ECMA 3.0)、VB、Python、Ruby。
ということで、使えそうな感じではあります。
ランタイムの比較表によると .NET CLR が使えるのは 1.1 Alpha です(そして IronRuby と書かれています)。しかし、1.1 Alpha のサンプルギャラリーにも1.1 Alpha の SDK には Ruby の R の字も見当たりません。情報を用意していないだけで実は使えるのかまだ使えないのかどちらなのでしょう。
追記。Jim Hugunin's Thinking Dynamic : A Dynamic Language Runtime (DLR) によれば、
We're initially building four languages on top of the DLR - Python, JavaScript (EcmaScript 3.0), Visual Basic and Ruby. We shipped today both Python and JavaScript as part of the Silverlight 1.1alpha1 release today. John Lam and I will be demoing all four languages, including VB and Ruby, working together during our talk tomorrow at 11:45.
とのことですので、もしかすると今配布されている Silverlight 1.1 Alpha には含まれていないのかなあ。IronPython.dll はインストールされてましたが、IronRuby.dll は存在しませんでしたし。
ということで動きがあるまで様子見します。
最近のコメント:
RSS
![]()
This work is licensed under a
Creative Commons License
(note: text only. w/o web design, citations, (re)distributed softwares).