Should I rewrite my Codeigniter/PHP app in Ruby on Rails? Why?

I already have v1 of my webapp written in Codeigniter/PHP. I'm now working on v2, which will have some significant changes to all MVC components.

I'm pretty comfortable with CI and I like it. Very intuitive for a C coder like me. But I am wondering if it is worth it to rewrite the app in Rails? Will the productivity gains be worth the cost of learning another framework from scratch? I want to be practical and not chase something just because it's cooler or more fun.

Here are some productivity criteria:

  • HTML and CSS generation is fairly labor intensive. Does Rails have anything distinctive to help with this?

  • I'd like to reuse other people's code for commonly implemented functionality (e.g. interfacing with FB, Twitter, and other social sites). How much more 3rd party code reuse would I get with Rails?

  • How much more benefit would I get from the Rails community vs. CI community?

  • Make automated testing easier. I test manually today, which is labor-intensive.

I'd appreciate specific benefits vs. idealistic/religious arguments. Thanks!


Codeigniter is obviously a framework built on PHP. While there are fundamental differences between PHP and Ruby, all of your criteria can be met with either of the two languages. Migrating to Ruby would seem to be a waste of time considering your requirements. There are plenty of ways to automate HTML/CSS in PHP and there are numerous open source Facebook/Twitter integrations (just check FB and Twitter developer sections). There are also plenty of open source PHP testing options available. Google is your friend! IMO it would be a big waste of time to rewrite your entire application for the sake of your criteria when there are plenty of PHP solutions to your problem.

Need Your Help

How to access Atlassian using PHP

php curl atlassian

I want to fetch content from my Atlassian with username and password.

Color based different when underlying color is different

javascript html css canvas blending

Currently I am toying with an idea for a website. And I was wondering if this was possible (it only would have to run on modern browsers). Any JS, CSS, canvas, server supported code is good.