Saturday, December 30, 2006

Is JBoss Open Source?

I continue to run across people, and written articles, that claim that JBoss is not "true" open source. For the longest time, I just didn't understand what they meant by that.

In some conversations I have had with people, they don't understand the licensing issues, in others, I just here corporate blah, blah, being repeated without much thought. This mostly comes from IBM employees, who are repeating the party line, but don't really understand what it is based on. In still others, I hear confusion between licensing and development models, and this seems to be the heart of the issue, with people claiming that JBoss is "evil", and not "true" open source.

So what is "true" open source to these critics of JBoss? It is simply that they think open source is not just the license, but also the development model that is used. They also believe that the only appropriate development model is one where no one company or entity entirely controls the project.

The fact of the matter is that open source is about the license, not about the development model used. I could write the code completely on my own, and release the code, and never even accept external contribution, and if the license is an OSI approved license, then it is still open source. The project may or may not be very successful with that approach, but it doesn't change the fact that the code being under an OSI license affords everyone the freedom's of open source.

So what is the development model that the critics say make something "true" open source?

They contend that you have to have many companies contributing, and Linux is used as a primary example. The fact of the matter is, in the case of Linux, you have market dynamics that brings companies together because they have a common interest in fighting a monopoly in the operating systems market. This is a very unique set of circumstances in comparison to the middleware market.

Also, with IBM in particular, which is widely credited for giving legitimacy to Linux, has a huge incentive to support and contribute to Linux. First, when they started getting involved with Linux, they had AIX, OS/390, OS/400 and OS/2 as operating systems they were spending considerable resources developing and supporting. Considering the portability of Linux, and its rapidly maturing technology, if they put their resources behind it they could eventually have a unified OS strategy, with one operating system running across all their various hardware platforms. In fact, today you can run Linux on all of their hardware platforms now.

In the case of a company like Oracle, Linux is the hedge against Microsoft in the database market. In order for Oracle to maintain a market share advantage over Microsoft in the database market they need an alternative platform that is popular on commodity hardware that SQL Server doesn't run on.

The dynamic of having a hated monopoly, plus other unique incentives, brings even competitors together to support, contribute and promote Linux. This simply doesn't exist in the standardized middleware market.

Could you imagine IBM and BEA contributing to JBoss? Companies only contribute to open source projects when there is a strategic corporate advantage to doing so. No one should be naive enough to think otherwise.

In the middleware market, there is no one dominate player, in terms of market share, and there is considerable revenue tied to traditional closed source products. It is quite impossible for JBoss to have the kind of external contribution that Linux enjoys, due to its unique market conditions.

Having said that, JBoss enjoys considerable external contribution from companies. Initially, Novell was a considerable contributor to a couple of the projects, but the Red Hat acquisition put an end to that. We have also had many companies that are users of our technology contribute over the years. Our new Group Bull relationship is another example, and when you look at the folks that work for the JBoss division of Red Hat, all of them where external contributors at one time (developers).

Under the market circumstances, and the business model of the company, JBoss has as open a development model as is possible. That leads to the other issue of the critics.

The business model of JBoss, is one where the core developers all work for the same company. What this enables, is a quality of support that simply cannot be matched. While anyone could take the JBoss software, and distribute it themselves, and offer support, they simply cannot match the quality of support. We have a two tier model, where we hire very experienced Java EE developers for tier one support, and the core developers are tier two. Does this mean that we are not "true" open source?

Open source is about supplying freedom's to all user's of the software, and JBoss supplies that, as all of our software is under an OSI approved license, and most of it is under the LGPL. Secondarily, the business model that has emerged for open source is one based on quality of support. By hiring the core developers, we enable the best possible support, which is certainly in the spirit of open source.

In conclusion, under the market conditions, and what users expect from open source companies, JBoss is as "true" to open source as you can be!

Saturday, December 23, 2006

Java and the GPL!

It's been a long time since I posted, and something that I was looking forward to, was Sun's move to open source the Java platform.

Well, they not only followed through with the plan, they completely caught me off guard with their choice of license. I think they caught everyone off guard.

I have always been in favor of putting Java under an open source license, but I never really gave much thought to which license would be appropriate. The GPL, with the so-called "Classpath" exception, I have come to believe is the ideal choice.

It allows for the virtual machine to be deeply integrated into other GPL software, such as Linux. The JVM has always been a second-class citizen where Linux is concerned, in that there was never very much time spent on optimizing the JVM for Linux. Now, the community can really get involved in optimizing the JVM for Linux, and I think this will have real benefits to the Java community, where Linux distributions are the target deployment platform.

Besides Linux, other projects will also benefit. GNOME will no longer have the excuse to ignore Java as a first-class language. Java may finally become a reality where the desktop is concerned. At least those desktops that use GNOME. will not have the problems of having quite a bit of its code based on a language without a free-as-in-freedom runtime environment. It also eliminates the need for distribution vendors to have to do all the engineering to create an distribution with an alternative Java such as GNU Classpath. This means less energy will be expended on non-value engineering tasks, and more can be plowed into the mainstream development.

I also believe that the knock-on effects of a GPL Java will not be fully realized for many years. This is truly an earth-shattering move by Sun, and they are to be applauded for it!