Saltar al contenido

Este año, uno de mis objetivos era aprender a programar en Android, hacer alguna aplicación y publicarla en Google Play para ver cómo funciona. Todavía estoy en ello, de momento sólo he aprendido la programación básica de aplicaciones.

Programando
Llevo un par de meses, siguiendo el libro Android Programming: The Big Nerd Ranch Guide. Es un poco guíaburros (haz esto, esto y esto y conseguirás tal o cual cosa), pero es recomendable para el que quiera aprender un poco de todo. No llega a dar una visión general de Android pero es muy amplio y cubre muchos aspectos de este entorno de programación (formularios, bases de datos locales, conectividad http, sensores de localización, cámara de fotos, etc).

¿Porqué Android?
En igualdad de condiciones, si puedo elegir, prefiero los sistemas open source. Android además de ser libre, cada vez parece más seguro que va a dominar el mercado de teléfonos móviles. Google ha sabido aprovechar las ventajas de un sistema operativo abierto y apoyarlo con un desarrollo sostenido y dinámico más típico de una plataforma cerrada.

Plataforma Android
Gracias a la versatilidad que permite instalarlo y utilizarlo en dispositivos muy diferentes, a Android le queda recorrido en cuanto dispositivos y aplicaciones por desarrollar. Le da mucha libertad a los desarrolladores y a la larga se crearán otros productos que no serán sólo teléfonos móviles (ya hay relojes para empezar).

Por otro lado, ha conseguido enfocar a la comunidad open source. Para muchos desarrolladores tener una referencia única (por ejemplo la página sobre sensores) es una ventaja. No sé si es lo mejor, pero reconozco que es bueno que haya una voz principal, que recopile y unifique la información y la forma de trabajar.

Android ha superado muchas barreras que Linux por sí mismo no había podido superar y creo que le espera un futuro interesante.

 

Hace poco me preguntaron sobre el estado de linux: ¿qué ha pasado con linux? ¿ya no se oye hablar mucho de él? Me sorprendió la pregunta, pero es cierto que ya no se oye hablar tanto de linux. Me ha dado por comprobarlo en google trends:

comparacion sistema operativo google trends

Linux ha perdido popularidad y su espacio como alternativa de escritorio a Windows lo ha ocupado Apple. Pero esto no significa que linux como sistema operativo esté pasando un mal momento.

En servidores web no le va mal, según la wikipedia, sigue teniendo una cuota de mercado mayoritaria.  En ubuntu han cerrado el bug #1 que mantenían abierto simbólicamente desde hace años: Microsoft has a majority market share (Microsoft tiene la mayor parte del mercado).

Cuando me hicieron la pregunta, mi respuesta rápida fue: android es linux! Es una variante de linux y es open source. Probablemente no es la opción que Stallman hubiese escogido y a Linus Torvalds no le agrade tener un kernel de linux alternativo, pero lo cierto es que Android es open source y nació a partir de linux.

El problema es que android no está asociado con linux y el código abierto. Es otra cosa, un híbrido que se puede usar cómo un sistema operativo libre, pero tiene detrás una gran empresa apoyándolo detrás cómo microsoft o apple.

Pero creo que terminará extendiéndose como sistema operativo embebido. Tiene la ventaja de ser open source lo que lo hará atractivo para los fabricantes de hardware. Y permitirá crear dispositivos con interfaces táctiles baratos y adaptables y sin tener que pagar licencias por copia.

El lanzamiento de Chrome OS pone de manifiesto que la web se ha convertido en la plataforma de desarrollo de aplicaciones más importante y está sustituyendo al sistema operativo en este sentido. Las aplicaciones residen cada vez más en la web y menos en el ordenador y si la web es el principal punto de acceso a las aplicaciones informáticas, el siguiente paso es eliminar o mejor dicho ocultar o integrar al intermediario que es el sistema operativo.

Sin embargo, creando un sistema operativo propio, google ha tomado un camino demasiado "anti-microsoft". La tendencia hasta ahora ha sido clara en el sentido unificador de la web y el sistema operativo: aplicaciones web sustituyendo muchas aplicaciones de sistema operativo (correo, calendario, organizadores de tareas), plugins en el navegador para trabajar offline, un navegador que permite ejecutar páginas web cómo aplicaciones de escritorio, e incluso un plugin con un motor 3D para navegadores.

En este punto, el siguiente paso es integrarlo todo junto al sistema operativo para que funcione cómo un único sistema. Pero se debería haber creado un api multiplataforma de integración entre escritorio y web, para mantener la libertad de uso de sistema operativo y no forzar una combinación específica de sistema operativo + navegador. A las alternativas existentes (Windows XP + Explorer, Ubuntu + Firefox, OS X + Safari, etc) sólo les falta añadir la integración con el escritorio. Y en este sentido tanto Prism, cómo Silverlight cómo Adobe Air son opciones independientes del sistema operativo y google ha tomado una posición distinta, creando su propio sistema operativo. La ventaja es que google publicará su código fuente mientras que Microsoft o Adobe no. Y en el caso de que Prism consiguiese despegar será la única alternativa de codigo fuente libre que ejecute en diferentes sistemas operativos.

No sé a qué nivel se pondrá esta integración en Chrome OS, parece que se hará con javascript y en el blog de google se habla de respetar los estándares actuales cómo html 5. Todavía podemos esperar que se publique un api común y abierto. Y en el peor de los casos, al tratarse de un proyecto que se publicará cómo open source, sería posible tomar el código y portarlo a otros sistemas, por lo que parece que la posición de google no es exclusiva, sino que parece que quieren explorar nuevas ideas.

Así que la integración de la web con el escritorio es el aspecto más importante en el proyecto Chrome OS, porque ya existen combinaciones de navegadores y sistemas operativos ligeros, pero no suponen un claro avance en este aspecto. Y cómo google estaba notando esa carencia, van a trabajar para que la web se convierta en la plataforma de desarrollo del sistema operativo, es decir que las aplicaciones escritas para Chrome OS sean aplicaciones web y aplicaciones de escritorio al mismo tiempo, sin distinción. Y este es el elemento que me parece más innovador de la propuesta de google, aunque no han definido cómo lo van a hacer.

Si se hace mediante librerías abiertas, podríamos ver estas librerías portadas a otros sistemas operativos (incluso windows!). Pero si la integración de la web con el escritorio es débil, entonces no existiría una ventaja técnica para utilizar Chrome OS frente a Windows + Explorer o cualquier otra combinación de sistema operativo + navegador. Podrían existir otros elementos a tener en cuenta, cómo la posibilidad de que los fabricantes de netbooks se ahorren la "tasa" de Windows, pero puede que no sea tan importante (no sé dónde leí que pese a que la mayoría de netbooks son más baratos con linux, se venden más con windows).

Creo que el elemento diferencial será que las aplicaciones web y de escritorio seran iguales y ésta será la gran aportación de Chrome cómo sistema operativo. Aunque cómo bien apuntan en techcrunch, a microsoft no le dejaron integrar su navegador con el sistema operativo. Aunque este caso puede ser distinto, ya que google planea distribuir su sistema operativo con una licencia open source. Pero ¿le dejaran a google integrar su navegador con su sistema operativo con su motor de búsqueda? Mientras todo el conjunto de software se mantenga open source, yo aceptaría la posición de google, pero cualquier movimiento en la dirección de restringir las libertades de los usuarios debería ser vigilado.

2

Se confirma una de las noticias más esperadas: google va a desarrollar su propio sistema operativo. En un principio orientado a los netbooks, no se descarta su uso en ordenadores de escritorio y/o portátiles. Finalmente se ha descartado la posibilidad de usar android en netbooks y han decidido crear un sistema operativo nuevo. Según comentan en el blog de google, el objetivo es diseñar un sistema operativo pequeño, estable y seguro que permita ejecutar un navegador y potenciar la idea de la web cómo plataforma de ejecución de aplicaciones.

Cómo bien se explica en microsiervos, un sistema operativo se compone de diferentes componentes módulos y técnicamente no se puede ver a Chrome (navegador) cómo una sustitución del sistema operativo. De hecho van  utilizar el núcleo (la parte técnicamente más importante de un sistema operativo) de linux para desarrollar Chrome OS. Para explicarlo de forma sencilla, es cómo si un fabricante de carrocerías de coche de la marca X dice que empieza a fabricar coches de la marca X. Obviamente la carrocería no es el coche entero aunque se le ponga el mismo nombre y no significa que la carrocería se convierta en el coche entero. Así que para añadir las piezas que Chrome (navegador) necesita para convertirse en Chrome OS (sistema operativo), google necesita hasta 2010 (y eso reutilizando el núcleo de linux).

Sucedió lo mismo en los 90, con las tecnologías de escritorio, que técnicamente tampoco son el sistema operativo sino un componente más, pero hoy en día nadie se imagina un sistema operativo sin interfaz gráfico y se asocia todo cómo si fuera un único sistema. Volviendo al ejemplo del coche, la mayoría de la gente asocia el coche con el aspecto que tiene la carrocería, sin importar demasiado el fabricante del motor.

El anuncio de Chrome OS viene precipitado por la llegada de Windows 7 en otoño, que cuando salga Chrome OS en 2010 estará bastante rodado. Probablemente en Google apostaban por un nuevo retraso de Microsoft, al igual que pasó con Vista, pero cómo parece que no hay retrasos, han decidido anunciar Chrome OS anticipadamente. En este lanzamiento no hay ningún tipo de detalle técnico, ni de presentación, sólo un post en un blog, que incluso para google es una información demasiada escueta (el lanzamiento de open social, android o chrome tenían más información).

Con este lanzamiento, google continua con su estrategia empresarial: si existe un producto que no puedes atacar, convierte a ese producto en "comodity" de forma que tu rival no pueda sacar ventaja económica. Con open social querían contrarestar a Facebook lanzando un api libre y gratuito frente al api más cerrado de Facebook. Con android atacar a Microsoft y Apple en los sistemas operativos de los teléfonos móviles. La estrategia es siempre parecida, lanzar un producto similar pero open source/gratuito/más abierto que los rivales para neutralizar su ventaja competitiva.

En cualquier caso es una buena noticia, sobretodo para muchos usuarios que ni distinguen el navegador del sistema operativo ni necesitan entender la diferencia. Puede ser una buena opción para que se planteen abandonar microsoft y que por fin haya competencia en el mercado de sistemas operativos (apple no ha conseguido una penetración amenazadora para microsoft).  No es lo mismo usar una variante de linux, desconocido para la mayoría de usuarios, que un sistema operativo apadrinado por google.

Actualización: Parece que el anuncio de Chrome OS llega por el anuncio del "Office In the Cloud". En cualquier caso no tenía la pinta del anuncio normal de una aplicación de google.