Leading up to my current project, I had spent several years working with small PHP hack-um-up sites. This project, however, was much larger, and the time frame for this project was very limited. I looked at several options:

  • PHP (language)
    • As I mentioned, I had spent several years with PHP, so this was naturally my first option. I decided to look at some alternatives as well, though.
  • CakePHP (PHP4/5)
    • Even with several years of experience, I had spent very little time working with frameworks (despite the fact that at one point I tried joining the creation of an object-oriented CMS/framework hybrid), so this was very new to me. The problem was that, at this time, very little documentation and examples were available.
  • Symfony (PHP5)
    • Around this time, I had started gaining more and more interest in PHP5 and OOP (object-oriented programming). The truth was I didn’t actually understand it completely at the time (note: if you are looking for a good introduction to OOP in PHP, check out this free online book), but I really wanted a framework that used it (I even considered creating my own framework, which I was vastly underskilled to do).
  • Ruby on Rails (Ruby)
    • Finally, I repeatedly came across “Ruby on Rails”, a seemingly very popular framework that used a language I had never heard of — Ruby (this was actually a few months before I began development).

Meet Ruby on Rails

When I first experienced Ruby, I loved it. The code made sense: it was simple, effective, and easy to read. But as I read more and more about Rails I developed two main concerns: 1.) Ruby on Rails had a lot of hype. I had to know, was this the real deal? 2.) I ran into a lot of remarks about the speed of the Ruby language compared to other scripting languages (PHP, Python, etc). Being a perfectionist, this was quite distressing for me. I was the type of person who would write a web application that will receive minimal traffic in Java just so I can sleep better at night, knowing that I gained a few milliseconds on the page load (realize that I did not and still do not know Java, but I seriously considered it). I didn’t really have the resources to launch a Java-backed web application though, nor would I have needed to anyway.

After buying the Agile Web Development with Rails, 2nd Edition Beta Book (highly recommended), I started really liking the framework and began to agree with the methodologies that DHH was pushing. I read a lot of tutorials, I partially read a book on the Ruby language, and I finally decided to develop my application with it. Unfortunately, I had actually only spent a few weeks reading these books and investigating the framework and the language, so my knowledge was very impaired. This led to a lot of problems early-on in development, but now I am kind of glad that I just went ahead and started. Had I not, I would probably be nearly complete with the project (which I’m not now), but it would have been much less enjoyable.

And so, I was at last riding on Rails!