RoRLearn.com Home News Articles Tutorials Resources Books Forums
 

Home>Articles>

PHP vs Ruby on Rails, Part 2

 

In part 1 we explained how PHP is just a language, yet we never really talked about Ruby, the language in which Rails is written. Ruby is a fun and interesting language in its own right; however, it has gotten a lot more spotlight these days, specifically because of Rails. So, if you are using Rails you¡¯ll be writing Ruby code, and now it¡¯s time to compare some aspects of Ruby to PHP.

For me, the biggest difference between Ruby and PHP is that Ruby is an object-oriented language throughout, while PHP¡¯s object model feels more like an afterthought. In Ruby everything is an object, while in PHP most everything is a native variable type.

I¡¯ve been using object-oriented design exclusively for a few years now, and while I continue to model my PHP web applications with objects, they can be very awkward at times. When this happens I¡¯m usually forced to jump back to procedural programming to do things like iterate over a collection of objects. Iterators, by the way, are very cool in Ruby. For example, in Ruby I can do something like:

employees.each {|employee| employee.give_raise}

That .each statement lets me iterate over the collection and then use the reference between the pipes as a way to perform actions onto the object. In this case, giving each employee a raise.

In PHP few things are objects by default, including collections. Instead, there is a native array type and a bunch of functions that you can pass an array to that do something of interest. For small scripts this doesn¡¯t bother me, but for my bigger projects it¡¯s a real pain. Early on I even considered writing my own array object. I quickly let the idea die when I came to realize I¡¯d have to pass out native array types to the various tools (like Smarty and a number of other PEAR Objects) anyway, as that¡¯s what they knew how to work with.

So those are some of the biggest reasons why I¡¯m starting to prefer Ruby over PHP, but this comparison still has one more part: deployment. What good is an app if you can¡¯t put it onto a production server? In the final installment of this comparison we¡¯ll look at the differences in deploying a Rails app vs a PHP app. See you then.






 
Site Copyright © 2006-2007 RoRLearn.com All rights reserved. Privacy Policy | About Us | Contact Us | Site Map