While I had thought about doing a simple tutorial on getting Ruby on Rails set up, it seems as though Tom over at Molehill (they are the guys behind Tick, which is a great time tracking application) has already started an excellent series on getting Rails set up on a Windows machine. Or if you're a Mac user, try this amazing article. I used it earlier today to help me setup Rails (and everything else I needed) on my MacBook. So, if you're interested in getting started with Rails, head on over to either of those sites. Instead of talking about that, I thought I'd just share some of my thoughts on the framework so that maybe I can help those people who are on the fence about whether they should tackle Rails or not (or help decide when they tackle it).

Should I Learn Rails?In the comments of our article about the design process of billQ, Filip asked if Rails was the right choice for a project he needed to develop. He said that it was "an urgent project that needs to be done ASAP". Since Rails prides itself in rapid development, it only makes sense that Rails should be a viable option. The problem is that he only recently started learning Rails.

While my initial response to Filip was "it depends", in the end I concluded that he should probably stick to PHP for this project and pursue Rails on his own. Personally, I wouldn't recommend starting any project (that may have some level of importance) in a language/framework that you aren't completely comfortable in. You don't want to get stuck in a time sensitive position where you just don't know how to do something (thus, not having the time to learn how to do it). While Rails will probably get your basic application up and running a lot quicker that building things on your own in PHP or ASP (or whatever language you choose), in the long run you will be spending more time learning as you go along and will most likely fall prey to the numerous novice pitfalls that I'm sure most people encounter. And that takes up a lot of your time.

The biggest issue for me while developing billQ was that I didn't know Ruby. billQ started out as an exercise for me to learn Rails and Ruby. Then once billQ became more fleshed out and my knowledge of Ruby grew, billQ became something that we felt other people might enjoy using as well. Luckily, billQ was an internal pet project that didn't have any hard deadlines. For the first 2 months, I would probably only spend 10 hours a week on it (most of which was me becoming better at Ruby).

What Do I Think About Ruby?All in all, I think Ruby is a fantastic language. I love the OO and how simple and beautiful the language is. Because of the simplicity (and probably because of my naivety), I often found it was frustrating because there aren't the same functions as there are with PHP. I would know exactly what I wanted to do (and how to do it in PHP), but couldn't find a simple way to do it in Ruby. Even with the Pickaxe by my side, I'd still find myself trying a million different combinations of functions in Ruby just to simulate 1 function in PHP. But again, this is probably just my inexperience with the language, causing me to do some creative programming. It probably wasn't the prettiest code (a lot of which, I have already fixed and optimized), but it got the job done at the time.

Overall, Ruby still feels like a very young language, but I think it's still extremely robust and usable. I get the feeling that it's nowhere near what PHP has become.

What Do I Think About Rails?In the beginning, I had a really hard time differentiating between what was Ruby and what was Rails. I think that's a testiment to what a great job DHH did in his development of Rails. Rails takes all the annoying things of a project and helps to make them less painful. For example, the use of MVC helps to organize the project and help to separate business logic from presentation. IMHO, MVC and Active Records are probably the 2 most valuable things that Rails provides.

If I'm going to be building any future applications in Ruby, I will be using Rails along with it. Rails makes it so easy to build and develop projects, that the only hesitation for me is Ruby itself. There's a reason why Rails has become so popular. Plus, I probably wouldn't know where to begin in building an application in Ruby if Rails wasn't involved.

What Is My Future With Rails?As of right now, I don't have any plans on abandoning my work with Rails. While it may not be my primary choice (I still love everything I can, and know how to, do with PHP), we are still planning on using Rails to continue developing billQ further. With that said, do I plan on starting any other projects with Rails? Not at the moment. At this time, I have been trying out CakePHP, which is a PHP framework that brings a lot of what I love about Rails, to PHP. Until my Ruby skills improve greatly, I think PHP will continue to be the language of choice for any client projects. But that doesn't mean that I won't start a new pet project on a whim, and being that I have Rails installed, I very well might use it.