lunes, 20 de septiembre de 2010

Java, Android... y Mono

Oracle presentó el mes pasado una demanda a Sun asegurando que el sistema operativo Android de Google viola las patentes del lenguaje de programación Java. Según Oracle, los de Mountain View infringen siete patentes, que se detallan en este PDF.

Todos pensábamos que con el cambio de licencia de Java a GPL no habría problemas con las implementaciones. Y en parte es cierto, cualquiera puede implemetar su propia máquina virtual sin ningún problema, el problema es usar la marca Java, llamar a nuestra hipotética implemetación "Java", para poder usar la marca hay que cumplir una serie de exigencias de Oracle, entre las que se encuentran, pedir autorización y pasar un test (que Oracle debe enviar), lo que significa que hay que implementar TODAS las funcionalidades de Java y además tener la simpatía de Oracle para que nos envíe el kit y poder llamar a nuestra implementación Java.


Por lo tanto no es tan fácil implementar Java sin problemas legales, Harmony es la implementación de la Apache Software Foundation y ya ha tenido problemas para obtener el TCK (Technology Compatibility Kit) por parte de Oracle.

La situación de Android es complicada, usan la marca Java y no implementan toda la especificación, por lo cual no pueden usar la marca y no están protegidos de demandas sobre patentes por parte de Oracle.

Microsoft ya fue demandada en el pasado por realizar una implementación de Java sin todas las funcionalidades y añadidos extra que sólo funcionaban en esta máquina virtual.

¿Es ético lo que Oracle está haciendo? Oracle tiene que garantizar la compatibilidad de todas las máquinas virtuales que se hagan llamar Java, por lo que me parece correcto, lo que Google ha implementado no es Java, no tendría sentido implementar toda la especificación para un sistema que está diseñado para dispositivos móviles, pero tampoco tiene sentido entonces llamarlo Java.


A Oracle le interesa demandar a Android porque es competencia directa, los móviles con este sistema no implementan J2ME y por lo tanto tampoco pagan esta licencia a Oracle


Una de las muchas preguntas que se generar a partir de aquí es, si Oracle puede demandar a cualquiera que haga un fork de Java sin pasar el TCK, ¿no podría ser posible hacer un fork? ¿podría esto incumplir la licencia GPL?


Por su parte Miguel de Icaza, el líder del proyecto Mono (una implementación de .NET) ha aprovechado para recordarnos todo  lo que se ha criticado a Mono por posibles demandas de Microsoft, Miguel dice que la Community Promise de Microsoft (contrato con el que Microsoft promete no demandar a quien implemente .NET) hubiera sido más adecuado para Android porque no se requiere pasar ningún TCK ni implementar toda la especificación (sólo las partes importantes) y no hay problemas en implementar extensiones.


viernes, 17 de septiembre de 2010

Google Chrome 7 es 60 veces más rápido

Quién no corre vuela

La nuevo versión del navegador de Google llegará a ser hasta 60 veces más rápido en algunos test gracias a la acceleración 3D que implementa esta navegador. Lo más irónico es que estos test son los que ha creado Microsoft para demostrar que la nueva versión de su navegador es más rápida. Esta nueva versión de Chrome verá la luz este otoño.

Esta nueva versión de Chrome deja en evidencia el rendimiento de los otros navegadores que están implementando la acceleración por hardware (Firefox 4 beta 5, Safari 5 y la beta del Internet Explorer 9).

James Robinson y Gregg Tavares explican cómo se ha logrado en el blog del proyecto:
Se escogen las mejores APIs gráficas en cada sistema operativo soportado por Chronium: Windows XP/Vista/7, Mac OS and Linux
Lo que está claro es que las tarjetas gráficas tan potentes que suelen incorporar los ordenadores actuales tendrán más uso gracias a esta nueva generación de navegadores y sistemas operativos, ya no sólo se necesita tarjeta gráfica para jugar.

WebGL, juegos 3D en tu navegador!

Chrome también sigue avanzando en la implementación del estándard HTML 5 y otros estándares implementa la acceleración 3D de WebGL, que permitirá el acceso a funcionalidades 3D desde el navegador, con lo que se podrán hacer juegos en 3D con un buen rendimiento.

"Estamos encantados de dar acceleración 2D a los programadores web, pero pensamos que dar acceleración para la web realmente es dar acceso a 3D desde el navegador con WebGL," explicaron Robinson y Tavares. "Con WebGL y 3D CSS, los programdores pueden crear juegos modernos, galerías de fotos impresionantes, visuliazición de datos en 3D y cualquier otra cosa que sueñen."

Éste vídeo demuestra algunas de las capacidades de WebGL en Google Chrome.

WebGL es un estándard creado por Apple, Mozilla, Google y Opera y actualmente está implementado en las versiones que están siendo desarrolladas de Chrome, Firefox y Safari (y ya está implementada en el móvil de alta gama N900).

Seguridad y bugs

Además se han publicado 10 actualizaciones de seguridad para Chrome 6, los de mountain view además de estar preocupados por sacar el máximo rendimiento a nuestras tarjetas gráficas están preocupados por al seguridad, pagan a los programadores que detecten vulnerabilidades importantes de seguridad en su navegador la nada despreciable cantidad de 500$ o hasta 1337$.

Fuentes: