There’s been a lot of talk lately about trying to get Sun to open source Java (my personal favorite article is at theRegister). The arguments are good on both sides, and the debates have brought to light some areas that aren’t very well explored. I don’t care all that much about Java, it’s not one of my preferred languages. But the question of “why open source?” is an interesting one in general. I think I agree with the ideas that Mitch Kapor spoke about at an SDForum event, that open source is the best way to keep software development honest. During the dotcom bubble lots of companies were able to rapidly suck insane amounts of money out of the economy. They’re extreme examples, but really that’s what goes on with most software companies. Software companies need to create artificial barriers to protect their competitive advantage. They need to protect their margins. Depending on the techniques used to do that it can result is software which is radically overpriced. Open source is one method for trying to correct this problem with the market.
Although some like the idea of free software, what they tend to start waving their arms about at this point in the discussion is that open source is “risky”. I’ve come to understand over time that what they really mean is that they don’t have enough existing experiences with open source for them to be able to make the decision without thinking. Perhaps this is one of the final defense mechanisms of the software market to protect high margins. The problems in analyzing open source mostly stem from the lack of the “free rider” problem that’s normally associated with a resource held in common. As a communal resource which doesn’t suffer from depletion, open source apparently obeys some laws which people don’t fully understand yet. Their answer is normally that they would rather use something they understand than something they don’t understand but which might be better. Like Joel explains in his explanation of commoditizing complements, people should be generally happy when the stuff they have to use or their users have to get decreases in cost.
But this doesn’t hold true. Apparently “risk” is as big a factor in business decisions as price is (where “risk” is defined as “presence of preexisting data on this topic”). And on top of that, for some reason the pricing function includes a discontinuity at 0. I keep hearing over and over that people want to pay lots of money sometimes. It makes them feel safe and secure. I would have guessed it made them feel shafted, but hey, that’s just me and my wild and crazy rational mind. Not all in sync with the rest of humanity.
So where does that put us with regard to the whole “should Java be open sourced?” issue. Unfortunately, the answer is “fuck no!!!” Java should not be open sourced. All that would do is kill it in the marketplace. The market is not ready for open source really. There are some projects that have done a great job of pushing out the initial boundaries (BIND, the GNU compiler, Linux, Apache, etc.), but the market needs time to figure out what to do with these mutations and adapt to them. Free markets, like evolution, take time to make sense of the stimulus they’re receiving. So the best thing to do for now is to let Sun keep the reigns for Java. It’ll allow the other unevolved companies see it as something they can understand, measure, and include in themselves.
That’s a really painful thing to have to say, being as rabid of an open source advocate as I am. So of course, the next logical question for me is how can we speed up this adoption process? I would really like to be living in a world where all my technogeek toys run software that I can hack. So how do I scratch my own itch and change the world? That’s the question that has me writing a blog entry at 4am instead of sleeping. So if you have an answer, please let me know.