I am a big fan of developing web services using open source tools and open standards. One of the technologies I have extensively used in the last 5-6 years is J2EE. Backed by Sun Microsystems, it is a great platform to deploy phenomenal server based applications. Of course, there are other up and coming frameworks for developing all sorts of web services, but, holistically speaking, only Java and .NET are mature and active enough to be a universal web development technology.
In the past, the most I have done is use one Java application server to deploy my applications. There is a good amount of comunity support in open source products. But, what I am realizing now is that things start to fall apart as soon as you try to get a lot of open source projects to work together. In my case, I am dealing with the JBoss application server. It is probably the most powerful Java Application Server in the market today, supporting all the current J2EE specifications. Backed by RedHat, it has also pioneered a lot of simplifications in the web services development space.
The problems are mostly related to versions and keeping up with the rapidly evolving technology. For example, the Eclipse IDE project is very actively releasing new versions and updates. Similarly, JBoss is actively working on making its Portal Server robust, and not to mention Sun successfully trying to make the J2EE platform a force to reckon with. If something works with a combination of certain versions of these 3 products, it is sure to break (and cause heartache/headache) if even just the IDE is upgraded.
This, in my opinion, is the single biggest issue with using open source technologies in the enterprise. They are very powerful, with excellent community based support, but it’s hard to get used to them. On the other hand, if I had used .NET for my project, I could have avoided these issues, but at a huge economic price. For entrepreneurs, that economic price could very well decide the future of the project.
So, in my situation, I don’t have a way out, unless we decide to spend a lot of money on the application server. This could just be a sign to use open source the way it is meant to be used – lots of documentation. My experiences with these issues could very well help other developers if I document them on the web.