Sold on Rails
Hi, my name is Chris and I am completely sold on “Ruby on Rails”:http://www.rubyonrails.com. I also love the new book “Agile Web Development with Rails“:http://www.amazon.ca/gp/product/0977616630/ref=pd_rvi_gw_3/701-1977922-1183541. It is an excellent introduction to Rails and one of the best tech/tutorial books I have read in a long time. I am only up to chapter 10, but so far it is excellent. I highly recommend the book to everyone who is trying to learn Rails. Look for a lot more Rails posts from in the future.
I am also working on a top secret Rails project that I hope to unveil this summer. I will also be dropping hints about it as well as the months go by. So stay tuned.
Why are you sold?
Good question and one I should have answered in my initial post.
The first reason is the speed. Compared to Java, Rails is simply faster. I can develop a site in Rails at an accelerated rate compared to Java.
At work, to create an app, we need to create first our object model, then we need to map our object model, then comes the persistence layer and the business layer followed by the presentation layer. Once we get to the presentation layer we have to figure out what we’re going to use: Struts (okay, Tiles or Sitemesh?), Spring MVC, WebFlow, Wicket, Tapestry Seam, etc.
If we pick Struts, we need to setup all the configuration files and web descriptors and so on. If we factor in Tiles, we need to setup XML files for it as well.
Rails simply simplifies this workflow and makes it very Agile and quick.
Now, take everything that I have said with a small grain of salt since I don’t have years of development experience with either language. However, I do have years of experience working with ColdFusion, one of the fastest web development language so far; Rails beats it as well.
I think my two favorite pieces of Rails so far are db:migrations and layouts. Migrations are a stroke of genius that someone should have thought of much earlier. Basically, migrations allow you to create Agile databases. With migrations, I can move forward and backwards through the evolution of the database at any point in time and add continue that evolution, all the time retaining my development history.
With Layouts, I can partition my web pages into nice little sections that allow me to change and update the design without having to touch every file in the site. Granted, layouts are very similar to other templating frameworks, but unlike Tiles, I don’t have to muck about with any XML configuration files.
Which brings me to the last advantage of Rails and that is the lack of configuration files. I just have to code, no descriptors.