Language Oriented Programming and Rails
My good friend Sadek Drobi pointed me out a very good article on Language Oriented Programming written by him.
I like it very much and I'm not sure that LOP is the next big thing, but as Martin Fowler said it (in the end of the video), I do find it to be a really, really interesting idea.
At some point in the video Neal Ford says this (please do watch the video, really nice stuff):
And I think that the DSL portion of Rails is one of the reason that people are so irrationally exuberant about it. How many times had someone come up to you and just almost phoned with the mouth that how much they loved using a Java Web framework of some kind, and yet you see these Rails’ guys do this all the time, and part of the reason for that is that the tool they are using - Rails - is perfectly suited for the problem they are trying to solve. This is a domain-specific language for building web applications that offer persistence. It is very, very highly tuned to do that and so the tool fits into your hand really well as you write code in it, there is very little friction between what you want to accomplish and what the tool allows you to do. You do not have to do a lot work around and lots of other stuff, it just, you can express the intent of what you want to do very clearly and very succinctly using the DSL portion of Rails, and that movement should directly toward intent is really important because the more friction you can remove between your intent and the way that you realize that intent is really, really important.
It was in my throat for several days and still I couldn't have phrased it better.
The domain-specific language that Rails use is just beautiful. It's a DSL for Web Applications with Persistence. Nothing more, nothing less. This is, IMHO, the most amazing part of Ruby On Rails. It feels natural. When I'm writing Rails code I just feel like I'm talking to another person, instead of writing cryptic text (which feels like talking to a calculator).
Ruby also adds an amazing layer of extensibility to the mix, allowing me to introduce new DSL's in my Rails apps. If the Rails DSL is lacking in your domain, just create your own DSL (it's fairly easy to do) in Ruby and consume it.
I'll be taking on an Open Source project some time soon in Ruby on Rails. If someone can hint me on a hosting service that has Rails and is not expensive (USD 5 - 10), I'd be more than thankful.
#122