Railsフレームワークは、Rubyで書かれたWebアプリケーションを管理するための、RubyベースのDSLと呼ばれています。RailsがDSLと呼ばれる理由の一つは、汎用的な目的のRuby言語とは対照的にRailsがプログラミングでは無いように思えるのに対して、Ruby言語の機能のいくつかがプログラミングをするのに利用されているからです。言語として考えたとき、その基盤がそれ自体で言語となるのにとても有利なスタートであるとして、RailsはRuby上で作られました。 Dave Thomas (PragDave)が、Rails全体をDSLとして考えているのかは私にはわかりません。しかし、Railsのいくつかの機能が異なるDSLによって支えられていると彼は言っています。彼が示す例は、DSLとしてのActive Record宣言です。ドメインモデルのエンティティの関連に特有な、いくつかの単純な専
![InfoQ: 複雑な外部DSLを開発する](https://cdn-ak-scissors.b.st-hatena.com/image/square/496d67d89b4696b0ffff1353cdca7337c207abd0/height=288;version=1;width=512/https%3A%2F%2Fres.infoq.com%2Farticles%2FExternal-DSL-Vaughn-Vernon%2Fja%2Fheaderimage%2Fdsl.gif)