The Java software market is a good example of why software patents are not needed. The only serious use of patents in the Java market is to add teeth to the enforcement of the Java trademark. The end result is a market for application servers, with a few dozen vendors, that was worth over $1.2B in 2004 and that shows signs of growing very prominent over the next several years as the demand for hosted applications continues to grow. Not only that, but there are several interchangeable versions of the Java platform available which has helped to foster the development of serious competition for control of the Java market.
The .NET market has not been so fortunate as the Java market. Microsoft has refused to open up the .NET platform to the same degree as Sun has, and while there is freedom to implement parts of the base specifications, the legal status of any alternative implementation is in limbo because Microsoft won't commit to the same open licensing of its patents for .NET that Sun has for Java. There is no ".NET Community Process" that can provide the same sort of assurance that the Java Community Process can provide. One of the benefits of the JCP has been that it has provided a few major corporations with sufficient incentive to write their own Java implementations that a credible open source implementation was not even started until recently whereas no on has hitherto dared to develop a commercial .NET reimplementation.
The very existance of these implementations is important because they provide the developers and users of Java and .NET with the assurance that they are not betting everything on just one vendor. Advocates of software patents almost always underestimate the importance of such multiple, non-patent-encumbered implementations to the success of a platform. Developing Java or .NET may be expensive, but for the actual developers and users who will make use of them, there is often even more to lose by tying an entire infrastructure to a technology that can only be provided by one vendor.
Lastly, consider this, you skeptics out there. Where would the market for Java application servers be today were it not for Apache Tomcat and JBoss providing high quality open source alternatives to the extremely expensive proprietary servers? This alone is a very good reason why software patents ought to go. Had Sun left other companies and open source groups in limbo on what they would do with their patents, few companies would have invested into the development of Java application servers. It was Sun's decision to not use their patents except as a mechanism to control the purity of the implementation of the Java platform that really got things going. Since Microsoft has not yet committed to allowing others to develop .NET runtimes that are fully compatible with theirs without licensing technology from them, the market for .NET products has been primarily limited to those who wanted to replace existing Microsoft-specific code rather than build a totally new market the way that Java has started.
Update: Correction, I realize now that I did not do enough research on the JCP patent licensing issues. I admit that I was wrong about that. I think my original point, that the fact that Microsoft has not created a fair process for others to work within for .NET has been very much to its detriment compared to Java in terms of competing implementations.
Others on software patents:
PFF.


Does this make sense? Patent and trademark are of course completely separate forms of IP.
.NET is ahead in one area -- a widely deployed free software alternative implementation -- mono. There are many free software JVMs but none have gained much traction, perhaps because Sun's sort-of-free JVM was good enough.
In the long run Sun missed a major opportunity for Java to be the dominant desktop applications language. Because there was no viable really free Java implementation available .NET will win via mono, patent fears notwithstanding.
Interesting. I thought the compatibility toolkit was available to open source implementations that wanted to pay up for the compatibility tests. If what you say is true, then I admit that I was mistaken there.
The real issue that separates the Java and .NET worlds, though, is that Microsoft has explicitly stated that they would not license the rights to many of their .NET technologies without compensation and have actually, from what I remember, threatened Novell with legal action if they implement them in Mono. I am not aware of any such threats against Kaffe, Classpath or others.
I also suppose I should have clarified what I meant by a credible open source effort. I don't mean to disparage Kaffe because it is a good effort, and I know that Classpath is doing a bang up job of reimplementing the APIs, but there is nothing so far that is a very strong candidate for a drop in replacement for the Sun or IBM JDKs. Surely you can appreciate that point. I respect the GCJ and Kaffe efforts, but what I was getting at is that they are nowhere near the point, at least from what I have read online, where they can be used as a replacement for the stable Sun JDKs.
As someone who's actually building an open source implementation, I have to disagree on some of the points you're trying to make.
A credible open source implementation of has been started in 1996: http://www.kaffe.org and works quite nicely. There is a lot of other credible ones, like gcj from FSF (started in 1998), and many others listed on http://www.classpath.org . I've also helped get Apache Harmony off the ground, and have started discussing licensing the compatibility kit with Sun for Kaffe, so I've got a fair deal of knowledge around the various IP regimes.
Regarding JCP and patents, you've got that wrong: Sun does not *at all* license any of its patentes around Java for free use for independant implementations that Sun does not own. That's not different from Microsoft. Unlike with real open standards, like ODF, there is no patent covenant for open source Java implementations in develoment.
In theory, the patents surrounding J2SE would be automatically licensed to an implementation that passes the Java compatibility tests, but since those tests are not available to open source implementations, no one has ever passed in the past 10 years, and it is not very likely than one will ever do, afaict, as real, open source competition is not in Sun's business interest.
The simple reason why Sun has not gone after open source implementations of Java is the same why Microsoft has not gone after open source implementations of .NET: that there is no money to be made by suing small open source projects.
cheers,
dalibor topic
Mike Linksvayer,
By having control over the patents on Java, if you call your product "Java," they have the ability to shut you down entirely. Their patents are basically the "nuclear option" in a case such as the Microsoft one. They could simply force Microsoft to stop doing Java work altogether, except for perhaps using the language syntax. I'm not sure if that's patentable, but much of the JVM has been patented.
My point about Mono was that there isn't even a process by which they can be a peer to Microsoft, a peer in terms of supported libraries and legal standing. Sun has created a process for that, and even though no open source implementation has reached that point yet, it is theoretically possible. I am actually quite excited about the Apache Harmony project because they stand a very good chance of becoming a major contender.
You are correct in that having a high quality free as in beer implementation of Java has had a detrimental impact on the creation of an open source Java platform. I would even agree that that stymied the adoption of desktop Java. However, a lot of that is Sun's fault for not working hard enough to make Swing a sleek toolkit back in Java 1.2 when Java was starting to get a second chance.
One more thing, another reason why the open source JVMs haven't gained much traction is that, AFAIK, none of them are fully compatible with the Java standards.
> By having control over the patents on
> Java, if you call your product “Java,?
> they have the ability to shut you down
> entirely.
You are talking about trademarks here, not patents ;-)
> They could simply force Microsoft to
> stop doing Java work altogether,
> except for perhaps using the language
> syntax.
JCP was founded in `98, after SUN sued Microsoft.
Microsoft was forced to end its Java developments, because Microsoft had a contract with SUN.
Microsoft broked the deals it agreed upon in its contract with SUN.
Please stop spreading nonsense.
Some people are just ignorant.
#1) By having control of the patents, they have extra ammo to use. They can do a "two-fer" on Microsoft by hitting them simultaneously on trademark and patent violations. That was my point. In a world without software patents, there would be nothing to keep Microsoft from making something that is "99% Java compatible."
#2) What is your point about JCP? What relevence does the date that it was founded have on this discussion? My only point about JCP is that there is a process to work within whereas Microsoft has not committed to anything except vague ECMA standardization mumbo jumbo. Hence why the issue of patents keeps coming up with Mono. No one knows if Microsoft is going to actually let it exist if it gets "too good." They say they will, but there is no outside protocol to go by and it's totally on Microsoft's good graces until then whereas at least Sun has made a pretty good good faith effort to open itself up.
In theory, the compatibility kit is available through a 'scholarship'.
Unfortunately, the actual terms of the license are highly non-trivial. The FreeBSD foundation spent a few thousand dollars on lawyers to get their license for the kit into a resonable shape, and that involved only certifying Sun's proprietary code. You can probably imagine that getting the terms clarified to allow an independent implementation to be certified, without imposing undue restrictions on developers of such an implementation is very yucky. :)
Sun does certain things better than Microsoft, for example the JCP is in principle a good idea, and so is the TCK Scholarship.
It's the execution that's lacking.
If Sun really wanted to encourage compatibility and collaboration between their implementation and free implementations, they would not publish the test suite under a "Read Only" license that does not allow compiling or running the tests, and prohibits writing one's own tests. [1]
Sun is no Microsoft, fortunately, so they usually have better things to do than to bully others (though JBoss and Lutris could sing a different story, I guess). Unfortunately, when it comes to it, Sun does not really live up to the projected image of a company focused on an 'age of participation', either, so even projects that focus on being 100% compatible have a hard time getting the changes through that would allow us to collaborate.
cheers,
dalibor topic
[1] https://jck.dev.java.net/jck-read-only-license.txt
I think the mere existance of the JCP gives OSS developers ground to stand on, whereas .NET is purely Microsoft's baby. I like .NET, especially C# and Boo, but I am not about to just walk away from Java, Python and PHP. The beauty of having the JCP is that it gets other companies involved, which forces Sun to get serious about licensing issues, and IBM's presence is no doubt a good thing for OSS developers.
A bigger problem is that many companies wouldn't even really consider a non-Sun implementation of Java except for maybe JRocket or Apple's VM. I know that most of the companies where I live couldn't for a few good reasons use Kaffe regardless of how good it got. How THAT gets fixed is anyone's guess :(