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.

 

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.

1

En base a un post en loogic sobre eyeOS, estoy redescubriento también este proyecto. La última vez que entré era una especie de emulador de escritorio en el navegador y ha mejorado mucho en el aspecto funcional y gráfico.

El proyecto también ha cambiado su orientación y ahora se dirige más a los desarrolladores: es open source y se puede descargar completo junto a un toolkit para desarrollar aplicaciones, lo que lo convierte más bien en un entorno para desarrollar aplicaciones web.

Una crítica que he leído (no recuerdo dónde, creo que fue en el radar de o'reilly) y con la que estoy de acuerdo es que emular ventanas dentro del navegador no es muy intuitivo, resulta raro tener un escritorio dentro de un navegador dentro de un escritorio.

Puede ser  muy útil en algunos casos, por ejemplo en educación (como se apunta en loogic) o para facilitar el teletrabajo (una empresa que ofrece un escritorio remoto a sus empleados), pero parece extraño para una persona que usa un ordenador habitualmente ¿porqué no usar directamente el escritorio del sistema operativo?

Creo que eyeOS se puede beneficiar mucho de algún desarrollo como prism para saltarse el escritorio basado en el sistema operativo y ofrecer un escritorio basado en web en su lugar. Creo que eso sería muy interesante.