I've been fascinated by the Oracle attack on Google's Android. I don't follow sport and just couldn't understand why so many people were getting excited about the World Cup at Akademy. But to me these epic disputes are a great spectator sport, as well as an opportunity to participate individually. The trouble is that it is all a bit slow, even slower than cricket - if it is like the SCO vs Linus train wreck, it could take up to five years to be resolved.
Anyhow, I've been doing some 'prematch' preparation reading all the blogs and news sites, studying the patents and so on. I think everyone should start by watching this presentation on Dalvik by Dan Bornstein the lead developer of Dalvik. If you watch the presentation it is clear that Dan is no Java guy, and when people ask him why did the Dalvik team choose the Java language for programming Android, he answers that Java has great tooling like Eclipse and there are many people who are familiar with the Java programming language. It was a pragmatic decision. If there were more people familiar with C# and the tooling on Linux was better, then maybe they would have chosen C#. To them Java is just another programming language. Likewise, to me, Java is just another programming language, and C# is just another programming language. The only sort of people who have an obsession about 'Programming Language A' being better than 'Programming Language B' are bad programmers. That doesn't mean that language 'A' may or may not be better than language 'B' for specific uses, but these 'religious types' are obsessed with their choice of language.
So if the choice of the Java programming language for Android was just a pragmatic decision, then why are Oracle suing Google for choosing Java? The best article I have found about the possible motivations is Oracle v Google: Why?.
However, Oracle appear to think differently. In their opinion they 'own' certain aspects of virtual machine, JIT compilation and Java .class library optimizations that nobody else is allowed to use without expensive licensing. These are the patents:
I think the first question to ask is which of the above patents are specific to Java, and which could apply to any virtual machine implementation.
So that is my brief run through of what I think of the individual patent claims. I am not a lawyer and so I could be completely wrong, but if enough people do this kind of technical analysis in conjunction with actual laywers, in the same way Groklow did for the SCO vs Linux case I hope we can manage to make the Oracle lawyers look like the technically illiterate people that they are (they are much the same set of apparently useless lawyers that were hired by SCO).
Although I don't really like Java much, Arno Rehn has been thinking of doing some Java bindings recently for Qt and I've been wondering if we could base them on the Android Dalvik VM and target them at the MeeGo environment. That way we could do our bit for hastening the demise of the regular JVM or the useless MIDP cut down Java environment, and help to make Dalvik the ubiquitous choice for running applications written in the Java language on small devices. The most interesting technical problem might be how to integrate the Android 'Zygote' process starter with the MeeGo DBus driven equivalent. Another interesting problem is that Dalvik supports JNI but Dan Bornstein mentioned that there was a more efficient mechanism for make native code calls. Maybe as the Smoke way of doing language bindings doesn't involve a JNI call for every method in the C++ api being wrapped, we could make use of that.
To me writing code is a means of Free Speech, and the Free Software movement is about preserving my rights of Free Speech in the face of the US patent system which is trying to cut down what I can say. Attacking the Oracle patent claims, and writing software to undermine their market position is the least I can do. If enough people think and do the same, I hope we can cause them trouble.
Charles Nutter (the JRuby developer) has written an absolutely superb review of the anti-Google patents. I defer to his views, as he obviously knows much more than I do about the subject. He comes to similar conclusions to me though, and thinks the Oracle patents are fairly light weight and that the case would fail in the context of a rational legal system.