Free vs. Commercial App Servers: Why pay?
A few days ago on Javalobby.org someone—from Sun trying to push the Sun Java App Server I believe—posted the question as to why companies pay for commercial application servers when free ones like JBoss exist. I responded with something like the documentation was better with the commercial versions and a few other reasons.
I have now had some time to think about this question and this is what I have come up with: JBoss is not free, therefore, the question makes no sense. JBoss is available for free, however, it comes with no support and the documentation really is terrible. To fix this, you have to pay for support. According to the Javalobby thread, support costs several thousand dollars. In my mind, this is not free. However, let’s continue this argument a little further. If I pay for Weblogic, I get support as part of that licensing fee (I can’t comment on the support since I have never bought weblogic so I am assuming that it is included for the sake of the argument). Therefore, In order to get an app server with support from either company, I have to pay. Therefore, JBoss is not free.
Another argument is this: I work for a company and I download JBoss. I develop my application and I hit a bug. I try to find a solution to said bug by browsing the JBoss website, the JBoss forums and the JBoss wiki and I turn up nothing. I have now wasted a day trying to solve my problem and I am no closer to a solution. So now my company has a few options. It can continue to allow me to look for solutions that don’t exist or they can hire someone who is a JBoss expert or they can pay for the required training to make me a JBoss expert. Any of these solutions cost money. Therefore, once again JBoss is not free.
Using either argument, the initial question makes no sense because in the end the company is still spending money.
A corollary that goes along with using open source / free software is that it avoids vendor lock-in. And in fact, this argument was discussed in the above mentioned thread. To me, this is an odd argument. If I choose to use JBoss and PostgreSQL instead of Weblogic and Oracle how exactly have I avoided vendor lock-in? True, I have not paid for some license that is good for a year or two, but that is all. The code that I write is still tied to the initial technology that I chose. If I choose JBoss and write an entire application using JBoss and then decide to switch to SJSAS PE I still have to take the time to port my code from JBoss to SJSAS, I have not really gained anything simply by picking open source. And, there are vendor specific functionality in JBoss just like in Weblogic which if I make use of forces vendor lock-in. So where exactly is this distinction?
With any of these arguments I think that a) you always end up paying for the technologies that you use—either up front or in hidden costs—and b) vendor lock-in only happening when you buy commercial licenses is a myth. As soon as you pick a vendor, whether it be open source or proprietary, you have the chance for vendor lock-in.