Tuesday, December 26, 2006

Why I abandoned ruby on rails

I have been a java developer for quite some time. I started doing my website in Perl (even writing my own modules ) because I wanted a cheap hosting option. As you know , java hosting is not cheap. my initial goal was to go online with yahoo's 10$ hosting plan. That plan had support only for few perl / PHP modules . since I had done some perl and *no* PHP , I decided to stick with Perl. But the kind of web application i am doing is very difficult to do with HTML::Template and few basic modules. At one point , I became sick and tired of writing everything by hand. That just takes lot of time. I needed a better framework and thats why I decided to switch to rails. I switched to rails because I did not want to write all and sundry stuff myself.

The switch was okay for me. I like playing around with scripting languages and I had gone through the pragmatic programmer's guide already. Ruby on Rails (ROR) is as such a nice framework. Nothing against the framework. It works neat and nice. My only problem was working with ActiveRecord. I did not like it in full so I was writing all my SQL by hand. I have been playing with rails for last 1 month or so. All my development was done using the built-in webrick server. Few days back, I decided to check out the rails production deployment options. However when I looked at the production deployment options for rails , I came back to square one. There is not much material for deploying rails.

Looks like that in rails world , the way to go fast is to go with fastCGI. However, I do not have a linux box right now and I could not locate fastCGI for windows. I could have looked hard but then i was just scanning the field. According to sources fastCGI development is not active. (But again there were some links refuting this assertion so take everything with a pinch of salt). That prompted me to look at SCGI. But the version number, 0.4.3 of SCGI did not inspire much confidence. All the rails crowd is heavily biased towards lighttpd whereas I am a hard core apache fan. lighttpd in itself looks good but I am not sure how good or bad FCGI or SCGI clusters would be. The available literature is not much and I could not locate any benchmarks. That sort of prompted me to look back at my original intentions.

why did i start with Perl? Because i wanted cheap hosting. why did i ditch perl? because it was time consuming to write an interactive web application with few basic modules. So cheap hosting was now out of window. Take it, if you want new/ your own stuff , you just can not do it with cheap web hosting. That is good only for hosting static HTML pages. But why did i switch to rails and not java frameworks? Because i had heard a lot about rails and I like experimenting with new things. I was okay with ruby and more than anything else I was not sure if i could host a java app on anything less than a dedicated server. I had increased my budget to go with a VPS and do my rail deployment there.

Couple of things happened last week that forced me to re-look at my framework decision. First, I came to know of Rimuhosting.com that provides java hosting on VPS plans. So cost wise it works okay. My budget was 100$ / month and it looks like I can do my java hosting within my budget. Second, I asked a friend to do some work on my website. This guy was not so sure that he wanted to work with ruby/rails because he is a java developer. He said he can churn out things much quickly in java because he knows how things work in that world. Basically he would like to play to his strengths. That convinced me too because I know all the things in java world. I do not have to learn anything new. I have already done everything that is there to be done for a web application. I can work much quicker there.

Final nail came after looking at the rails deployment options. I much familiar with apache 2 and tomcat deployments and can do any level of tuning there. i am not so sure about fastCGI / SCGI clusters. To summarize, I have decided to abandon ROR because
  • It is possible to host java application in a VPS budget. I do not require a dedicated server
  • I may be interested in RUBY but other people are not
  • I am familiar with Java and most of the guys around me would prefer to work in java so there is no learning curve
  • I have already done apache 2 and tomcat deployments so I can save time there as well
  • whatever people may say, the production deployment of rails is not covered in detail right now, so deploying It would be like getting in untested waters.
Maybe I should have given PHP a spin after all ;o)

© Life of a third world developer
Maira Gall