First the advantages; It is dead simple to manage, gems are just amazingly helpful, the community is great, applications are portable, stable, and expandable. All things you probably have heard from one source or another. What I find as the biggest advantage is that the Rails framework ideal for an environment where you have a different co-op student coding every four months.
What I mean by that is the framework enforces consistency in style and encourages code reuse. These two things have been the biggest problems when you have a new developer come in that just doesn’t code the same quality or style as the previous developer. Some are learning as they go (CS students that can code Java not Ruby), others are experienced and have their own style. That is not to say a PHP or ASP or Python framework wouldn’t achieve the same thing.
Related to the framework advantage is that it enables me, the manager, to be able to relatively easily jump into the code and check the quality. I haven’t done that as much as I should but that is because I haven’t seen ugly Ruby code yet (in just over a year) so I don’t feel the need to spend a load of time checking up on the student.
Now the negatives; server end support on campus is not ideal (not officially supported), other campus web folks aren’t using it, Dreamweaver and others tools of choice for front end don’t work with it, students aren’t confident with it, and the gems can let you down at times. The last point is actually the worst one for one big reason — you will hear ‘oh its easy just to rewrite it’ from the developer.
The moment you hear that is the moment you know the framework ideal is weak with this developer. You need to get back on top of things and see why the developer/student is thinking it needs a rewrite. It is a time sink to start mucking with gems so don’t do it unless it is absolutely necessary.
The server support probably needs an explanation. Server wise it is one part rails one part learning curve. Rails is easy if you just stick to fcgi, relatively simple sites, and lower traffic. The moment your traffic spikes is the moment you need to think about this differently. With our latest project we have taken on the whole mongrel cluster world, dove into proper subversion management, and use capistrano to publish the application. That learning curve is rough but worth it. It has certainly reduced the weight of the negative.
Around Thirty months later I am still in love with Ruby on Rails even after the romance starts to fade.
No comments:
Post a Comment