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!

5 Responses to “Choosing a web development platform”

  1. Cedric Says:

    You do enjoy RoR for the fun of its programming interface, but were your perfectionist concerns addressed?
    Check out this entry in my (semi-private) blog: http://wmidtown.com/blog/?p=38

  2. technel Says:

    No, I am not sure that my perfectionist concerns were put to rest through the use of Rails over the past few months. The boost in productivity has been phenomenal even for me, but I still find myself going back and constantly refactoring code and at times even questioning some of the principles that Rails does use (some of which are indeed on the website your blog entry linked to).

    Either way though, I think I will be sticking with Rails. With time I can only hope that the framework will become more concious of the database and the constraints set there (even though DHH argues against this). Perhaps when I gain more experience with Ruby and Rails I will even have some opportunities to contribute to rails-core.


  3. [...] Thank you Michael S. for your views on Ruby on Rails. [...]

  4. technel Says:

    I actually have that first quick reference you linked their printed and sitting on my desk right now, very useful indeed! I also have used RadRails, I intend to write my experiences with it in the coming days :)


Leave a Reply