Off the Rails ?

"A horse, a horse, my Kingdom for a horse !"

 What is the moral of the story, you ask ? Well I guess two:

  • do not stray from the beaten path, or you are on your own
  • beefing up security is good, provided it you have plenty of aspirins about

All in all, I still think Rails has certain potentials, and like all new technologies, it takes time to mature. What I like about it so far are the following features:

  • full object orientation (and I mean it in a Smalltalk way, not Java or C# way)
  • code change can be made on the fly (believe me, I am growing weary of Java already, even though this is my day job)
  • assumption is good, specially when it comes to boiler plate stuff. If you stick to conventions, conventions work for you for free
  • configuration is bad (I typically spend 80% of my time playing with bloated XML configuration files, and the other 20% of the time coding, again in my day job)

Currently, these are my gripes (or should I say, areas requiring more analysis on my part) about RoR:

  • where is the support for other database drivers ? (OK, so there is one for Sybase, so I am partially happy)
  • Ruby's strong point is also its Archilles heel. The more flexible it is, the easier it is for a (Ruby) novice like me to do stupid thing, but I am willing to give it the benefit of a doubt until I am more familiar
  • horizontal segregation is good for smaller application. I will have to investigate its performance in a typical real world application. I will give you a scenario. If I have a Controller representing a typical Ecommerce web page these days, the left hand side is full of promotions, the right hand side is full of statistics, the middle is full of items currently filtered by the user, the top band probably has discounted items or items for clearance. All these items are actually views of the same inventory. Horizontal segregation might end up causing multiple queries being fired against the database server in order to build the whole view described above for each request. Granted there are caching technologies built into Rails, but I still question the efficiency of such a scheme. A J2EE Session bean, on the other hand, will be able to more efficiently grab the relevant data involved for all the views involved and distributes data between them, thus less round trip to the database server.

Previous page A gold medal is a wonderful thing, but if you're not enough without the medal, you'll never be enough with it.