劇的に生産性を向上させるメタオブジェクト技術とRuby on Railsの陳腐化の宿命(Java、C#)
http://d.hatena.ne.jp/fromdusktildawn/20060216
C#のメタオブジェクトプロトコルを使うと,問題に対して言語自身を修正することができる。つまりドメインスペシフィックな機能を,言語が自分自身を修正することで実現できる,という話。うーん面白い。RailsはWebアプリに特化したフレーワワークだけど,メタオブジェクトプロトコルを使えば,C#で容易に実装できるだけではなく「新しい問題」が登場したときに,問題に応じて言語を再修正できる。Railsのように問題ごとにソリューションを丸ごと用意しなくてもいい。
あと最近大きな問題になりつつある「SQLとかHTMLとかXMLとか,そういうのがすげー重要なのに言語から見ると単なる文字列なので言語レベルで検証もテストもでけん」ってやつも,C#はLINQなんかで言語機能に取り込んでいこうとしている。
C#は出てきたときにちょっと触っただけなので,また使ってみようかなあ。でも
public class Recipe : RailsModel{ public int id; public String title; public String instruction; public DateTime date; [BelongsTo("Category")] public int category_id; うんちゃらかんちゃら。。。 } [HasMany("Recipe")] public class Category : RailsModel{ public int id; public String name; }
これはやっぱり辛いか・・