A lot of people are commenting on the Oracle/Google suit without having looked at the patents involved. That’s a bad idea, guaranteed to yield incorrect conclusions. For reference, here are the ones actually mentioned in the formal complaint . . . and yes, I did enjoy looking these up on Google.

  • 6125447: Protection domains to provide security in a computer system
  • 6192476: Controlling access to a resource
  • 5966702: Method and apparatus for pre-processing and packaging class files
  • 7426720: System and method for dynamic preloading of classes through memory space cloning of a master runtime system process
  • RE38,104: Method and apparatus for resolving data references in generated code
  • 6910205: Interpreting functions utilizing a hybrid of virtual and native machine
  • 6061520: Method and system for performing static initialization

First thing to remember is that this is a patent suit, not a copyright suit. That means it’s not about “Java” at all. It’s about certain ways of implementing a dynamic runtime, regardless of what name or input language is used. In that context, 5966702 is probably the most specific to Oracle’s actual Java-runtime technology, and that’s all about class files. The others are pretty general ideas, even if the Java runtime was the first embodiment used in the patent descriptions. For purposes of determining infringement, it’s mostly the claims – not the description – that matter. It’s probably quite premature for anybody who hasn’t looked at the Dalvik code to say whether it infringes most of these patents or not, or whether Google could avoid infringing on these claims without fundamentally changing how Dalvik works.