After working with Java/J2ee applications for 7 long years I always had prejudice that Java/J2EE is best for web based/server side application (Though I have entirely different opinion about client side java).
I also wanted to learn/work some alternative technologies like .Net/Python/Ruby/or any language with metaprogramming. This curiosity was enough for my manager to assign me a task on Ruby on rails in my free time.
The vision of the project was to create a Rich Internet Application for Event and Stall management for one of our tech fest. As usual the deadline was very stringent.I was really wondering about the deadlines as I need to learn both ruby and rails. Initial look on Ruby examples was sort of scary as the syntax was completely different.
The assignment was really an eye opener as I understood how much faster and easier I can prototype, develop and deploy database driven rich web application. The application resembled a desktop application and it contained cool feature like drag and drop,ajax driven admin screens etc… All these were done in a record time of 100 Person hours and this includes the learning curve for Ruby and rails.As one of our Architects estimated the same application would have taken 550 to 600 Person hours in Java/.Net (Not including the learning curve)
Key Features
- Ideal for database driven rich web applications.
- Fast to develop and deploy. (In fact 5x faster than developing in Java / .Net if we follow few conventions)
- More maintainable as we end up writing less code.
- Seamless integration between web and persistence layer.
- Rapid Prototyping.
Built-in testing. - Plugin support
- Good community support.
- Open source.
Downsides
- Poor support for legacy schemas.
- Still a new technology. May be getting people to work on rails projects cannot be as easy as Java