Mark Stone has an article on Newsforge entitled Java and open source where he breaks down the reasons businesses choose to embrace open source licenses, why Sun has not with Java, and why Java developers/vendors shouldn't care. Herewith some ramblings in support of Mark's business oriented look at OSS and an issue with his conclussion.

What got me excited about this article was that, throughout most of the text, Mark is talking about issues surrounding open source purely from a business perspective. There's not enough of that happening in the community. The sooner we work out the business value OSS licenses provide, the sooner OSS will become an accepted and ubiquitous concept in business. Duh, right?

I've met a handful of people that I like to call "business hackers". They are business people but they are, paradoxically, also complete bad-asses in that they use heavy math, reasoning, and analytical skills to make cold, smart business decisions. If I were to tell one of these guys, "hey, if you license your wares under the GPL, you can build a community and provide customers with their natural liberties," they would look at me with blank stares and wonder wtf I was rambling on about. If I were to instead say something like, "Well, if you're really worried about market penetration, you may want to look at the GPL license due to the X, Y, and Z qualities of the license," they would be much more receptive. Information like that flows nicely into their existing worldview.

I'm going to sidebar into a bad analogy here because I think this point is extremely important. A friend of mine approached me about a year ago and asked if I would be interested in a little business venture. He said that he was considering purchasing a "California race horse" to race against the inferior Ohio race horses at the local tracks. He went on about how the Cali. horses were bred, trained, and cared for much better than the Ohio horses. It was an interesting crash course in horse rearing.

Now, there are some things I care about but horses isn't one of them. When it comes to putting money on the table, I'm not interested in the damn horses' bloodline. I want to hear about the costs of purchasing, maintaining, and running the horse and how they compare to the horses' earnings. This is the way a lot of business people are seeing OSS. We're trying to sell ethics and process when the business interest is in results.

Anyway, back to the article. I found Mark's business model breakdown to be right on. He makes the claim that companies lacking an ethical attachment to OSS generally choose OSS licenses for one of the following business reasons:

  • Market growth
  • Market penetration
  • Market preemption

That is, freely distributable software has a natural advantage over non-freely distributable software in these areas. More companies are accepting this as simple truth and are incorporating that truth into their decision making processes around how new software should be licensed. For example, when market growth is more important than revenues, you may want to consider a license that includes free modification and distribution. It just makes sense; no religion attached.

After Mark takes a look at what is driving Sun's decisions around Java and how OSS doesn't really benefit them, he comes to the following conclussion:

Businesses and developers who fret about whether or not Java is or will become open source are missing the point. The free availability and near ubiquity of Java in the enterprise software market means that the open source software being created with Java is much more interesting than the open source status of Java.

I have one issue with this. The main problem with Java not being open source, IMO, is not so much that the source isn't available/modifiable (which also sucks) but that the package from Sun cannot be freely redistributed. This really hurts taintless GNU/Linux distributions like Fedora and Debian because they cannot provide a Java package with the core distro. If they cannot provide a Java package with the core distro, it is impossible to provide any packages that rely on Java (i.e. "software being created with Java") as part of the core distro. Until very recently, this meant that writing an app in Java meant that app had no chance of being included with a Free GNU/Linux distribution. The open source software projects created with Java that Mark talks about are at a tremendous disadvantage to projects using C/C++, Perl, Python, Lisp, bash, and any other language with a free compiler that can be packed into a standard distribution.

Fedora started taking Java packages into the core late in the Fedora 2 development cycle. The only reason they were able to do this is because of the excellent gcj and GNU Classpath projects reaching semi-stability. These projects provide a Java compiler/interpreter and an implementation of most of the standard runtime. Both are completely Free - licensed under the GPL (with slight modifications in the case of Classpath). And now that an OSS compiler/runtime exists, there's a whole boat-load of packages over at jpackage.org that Fedora packagers are scurrying to fit into the core, which means that Java developers will be able target GNU/Linux environments and know that there are a ton of libraries already available and tested. None of this is possible without a freely redistributable Java compiler and runtime.