Mono competes with Java, and as Chris said a few weeks, am sure I have some agenda here. But I believe in open source and free software. Ultimately, a free java is just what the doctor ordered.
Like every other pundit on the magazines, this is my followup into the speculative Java debate.
Am reading the recent quotes from a Red Hat executive on the Register (so I guess we have to take these comments with a grain of salt, as the Register is highly selective about what it quotes and how it quotes it), but they ring true.
Regarding the new binary license and Sun's announcement this week, he said:
"They try to do the minimal amount they can get away with,"
Am sure that Sun has its own reasons for doing a calculated release of Java, but they have a good track record of following up on their promises: OpenOffice and OpenSolaris (and I guess they are also GPLing their CPUs, not sure).
The OpenOffice strategy was in the hands of Marco Boerries who has now departed Sun. And in the case of OpenOffice the value was in bringing down the leader in the space (Office); While in the Java case its a matter of opening up the leader (Java) and potentially loosing some leverage in the industry.
Now, when it comes to the one laptop per child project and Java, its interesting to note what Chris said recently:
Everyone has agendas. We ran into quite a few at this point in development. People who wanted us to use Java for Java’s sake, people who wanted to see their particular software on the laptop, people who wanted to control what kids would see, and what educational content they would be exposed to - everything.
Red Hat is clearly now a company with a lot invested in Java and much to lose from Sun's control over such a core component of the OS. I have no way of confirming if the Register correctly paraphrased their CTO, but the reasons given had nothing to do with JBoss and everything to do with some research-grade projects: OLPC and Real Time Systems?
In any case, it boggles the mind that people would like to run everything on Java on those poor OLPC machines. They have as much power as my cell phone (and Java has brought down and rebooted my phone more times than I care to remember; Granted I spend too much time in Google Talk and Google Maps).
Now, on the other hand, everyone clamoring for Sun to open source Java seems to be tacitly admitting that free software can not compete in out-engineering a proprietary company if the proprietary company gives their goods for free, a point that I have made previously ("Fork in the Open Source Java world" and "Open Source Java, Part 2"). Tom Tromey did have an interesting follow up to my negative outlook (finding the post is an exercise for the reader).
He certainly does not agree with me, and its very possible that my passion for Mono might influence my motivations, but in the end an open source Java is good for everyone.
Beyond all the debate surrounding Sun's actions there is an interesting debate that we should look at: can open source effectively competing with proprietary software if the goods are given away for free?
I believe we have overestimated the need and importance that people put on open source software over the need for free software (free as in price in this context, gratis). This is one of my points in the previous blog entries.
Points to ponder: effect of free VisualStudio Express over SharpDevelop. The new license that allows binary distributions of Java among Linux users. Free Flash player over the three hundred incomplete efforts to reimplement it for free.
Discuss among yourselves.
Update: Some confused readers did not make the connection and are missing my point, so I quote a bit from the earlier article
Unlike Mono, open source Java faces a big problem: there are a number of free commercial Java runtimes available for every operating system that matters. The group of people who would have contributed to a free java to scratch an itch are gone. From those who remain another large chunk will switch in a heartbeat to a commercial implementation the moment they run into missing features, scalability issues, the lack of a moving GC or a hard to debug problem.
So you must rely purely on free software advocates or people employed to clone Sun's Java for a strategic purpose.
As I mentioned in someone's comments section, broaldy speaking there are two large groups of contributors to open source software: free software kind, the activists, the idealists and the pragmatists, scratch-their-own-itch kind.
Open Source Java moves slower because it lacks the second group of contributors. That group is happily using Sun's Java. Mono on the other hand has been able able to benefit from contributions of the second kind. The day Microsoft releases .NET for Linux/Unix is the day that Mono looses a big chunk of the second kind of contributors.