Wednesday, March 9, 2011

Going from Rails development to PHP development

A few months ago, I took a new job where I'm doing PHP development instead of Ruby on Rails, despite the fact that I have over 4 years of Rails experience and no PHP experience. You may be wondering the same thing that some of my former co-workers were wondering when I told them what I'll be doing at my new job - have I lost my mind? Why would I go back to developing with an old technology that Rails is obviously superior to?

As great as Rails is for doing web development, it's still just a tool that you use to produce results. If you're working on a project that's in maintenance mode with all the work being slight variations of what has already been done, not learning anything new, the fact that the project is in Rails doesn't magically make it satisfying and a lot of fun. Likewise, working on new projects in a business domain that you have a personal interest in, where you are a key contributer, is fun and satisfying regardless of whether Rails is being used or not.

I think many in the Rails community lose sight of this. They get so wrapped up in how elegant the code is that you can write in Ruby, how many different things Rails can do for you, and what the very latest way to do things is (even if that new way says that what was the new great way to do things a year ago is totally wrong), and forget that the usability and functionality of the web app that you produce, not the elegance of the code that you write, is what really matters.

I'll get off my soapbox now. I definitely still prefer Rails over PHP. I really miss it when doing things like making RESTful APIs, making changes to the database, and writing test code. But, at the end of the day, I'm finding myself almost as productive doing PHP development as I would be if I was using Rails.

I weighed many different factors when I chose to take this job compared to other potential jobs and staying at my old job - what development language/environment I would use, the company atmosphere, how interesting the projects are to me personally, how imporant/widely used the projects are, how much I can see myself contributing to the success of the company, what the team of people I'd be working with are like, salary/benefits, location, among others. I can now say after taking a chance at a non Rails job, that the language/enviroment is probably the least critical out of those factors that I listed for me personally.

My advice, don't overestimate how important a specific programming language/framework is when you're looking for a new job. In particular, don't think that Rails is so superior to everything else that you can't bring yourself to program in anything else.