Hello, I am working in a small software company. We are developing business applications for a very niche industry. At the moment our software products are mainly fat client windows applications which are accessing different kinds of database servers. Now we plan to slowly move to web applications. We do not host the applications for our customers, so it is necessary that we ship a complete solution which is deployed at the customer site. In total we will have about 20 to 40 customers deploying our web application.
Unfortunately every customer needs a specific customized user interface and sequence of dialogues, but the general business logic is the same.
So my question: Is Ruby on Rails capable for this kind of requirements?
A colleague of me has already begun to develop a complete new web application framework in pure java and servlets without using any existing web application framework technology. He has almost no background in web applications and is doing it all alone. My thinking is that this strategy is a big mistake. In 2008 it is essential to use a mature web application framework for a small company with not more than 3 web developers. Developing a own new framework makes no sense at all. Especially for a small company with a very niche market.
Now I am looking for convincing arguments for a discussion with our boss. Any help would be very much appreciated. Regards, Andy
A question for you before I try to answer.
Do you maintain 40 code bases for the Fat client windows applications or are you using some dynamic customization from within the single code base?
Thanks, Manik company: vinsol.com blog: fromdelhi.com
Rails is entirely appropriate for what you seem to be describing. The big question is, are the differences between customers only in presentation details or do they extend to stored data? The first is easier to customize than the second. Both can be done from within rails. I envision a system where you have a basic deployment, with rake tasks that follow customer specific configuration files to deploy the complete system. Rake makes this a relatively trivial form of set up that has the added bonus that the config files are easier to manage than complete deployments and also act as a form of documentation. Leveraging rake (Ruby Make, in case you don't know. Rails uses it heavily) for this kind of work makes Rails a natural fit for your stated needs.
As for the colleague who is setting something up in Java, there are 2 ways of looking at it. One is that you have someone who is highly enterprising and determined to solve the problem but has poor judgment in choosing programming languages. The other is that you have an arrogant idiot who thinks he/she is going to have to fix what the rest of you are too stupid to tackle. Either way, this person is not going to want to give up the new framework, after investing many hours of work in it.
In other words, you don't just have a technical problem, you have a political one. Good luck.