Hace aproximadamente un mes que Oracle demandó a Google por infringir siete patentes relacionadas con tecnologías Java en Dalvik, la implementación de la máquina virtual de Java escrita originalmente por Dan Bornstein para Android.
La demanda incluye, entre otras, las patentes 5966702 «Method And Apparatus For Preprocessing And Packaging Class Files» y 6910205 «Interpreting Functions Utilizing A Hybrid Of Virtual And Native Machine Instructions» que afectan directamente al formato Dalvik Executable (.dex) equivalente al bytecode original de Java.
¿Qué hay detrás de esta demanda? Bien, en mi opinión, simple y llanamente, se trata de recaudar royalties, que es a fin de cuentas de lo que van todas las patentes. Existen alrededor de medio centenar de implementaciones de la máquina virtual de Java, la misma Oracle tiene al menos 3: HotSpot, JRockit y JServer. Y Sun ya mostró su animadversión hacia el proyecto Harmony de Apache. Oracle ha demandado a Google y no a cualquier otro fabricante de un VM porque a Google puede pedirle una cantidad de dinero por cada copia de Android despachada, y últimamente se despachan muchas copias de Android.
En la Free Software Foundation han aprovechado para barrer hacia su casa publciando una nota en la que dicen que Google no hubiera sido objeto de esta demanda si hubiera usado IcedTea como base.
IcedTea es el fork de la JDK original de Sun que RedHat sponsorizó para que se pudiera incluir Java sin problemas de licencia en las distros de Linux.
Es de suponer que el CEO de Google Eric Schmidt, quien antaño fue director del grupo de desarrollo de Java en Sun, tuvo sus buenas razones para decidirse por Dalvik frente a JVM. Aunque yo desconozco las razones exactas que movieron a Google a implementar su propia máquina virtual para Android en lugar de usar la estándar de Java. En principio la diferencia técnica de JVM frente a Dalvik es que la primera es una máquina de pila mientras que la segunda es una máquina de registro, lo cual contribuyen a determinadas mejoras como un menor tamaño de los ejecutables .dex frente a los .class Java y otros factores relevantes para la compilación Just-In-Time. Aunque algunos (no todos) .class pueden convertirse en .dex con una herramienta llamada dx, Dalvik no cumple con el criterio de compatibilidad Java, ya que incluye un subconjunto de librerías no estándar derivadas de Apache Harmony.
Sobre la demanda de Oracle contra Google
Esta entrada fue publicada en Entorno Legal del Software Libre. Guarda el enlace permanente.