Saltar al contenido

Impresionante ensayo de Paul Graham del que he extraido y traducido (con ayuda google, no es una traducción perfecta) algunas reflexiones. Yahoo tenía el potencial para convertirse en lo que ahora es Google pero, a pesar del éxito pasado, está cayendo en desgracia. Según Graham, el fracaso se debe a que Yahoo no tenía a los mejores hackers dentro de la empresa. Se dejaron llevar por el dinero fácil obtenido por los banners publicitarios y no invirtieron en software de calidad:

The worst consequence of trying to be a media company was that they didn't take programming seriously enough. Microsoft (back in the day), Google, and Facebook have all had hacker-centric cultures. But Yahoo treated programming as a commodity. At Yahoo, user-facing software was controlled by product managers and designers. The job of programmers was just to take the work of the product managers and designers the final step, by translating it into code.

One obvious result of this practice was that when Yahoo built things, they often weren't very good. But that wasn't the worst problem. The worst problem was that they hired bad programmers.

La peor consecuencia de tratar de ser una empresa de medios fue que no se tomaron suficientemente en serio la programación. Microsoft (en su día), Google y Facebook han centrado su cultura empresarial en los hackers. Pero la programación en Yahoo era tratada como una mercancía. En Yahoo, el software diseñado para los usuarios era controlado por los jefes de producto y los diseñadores. El trabajo de los programadores era sólo para tomar el trabajo de los directores de producto y los diseñadores en la etapa final, para su traducción al código.

Un resultado obvio de esta práctica era que las cosas que hacía Yahoo a menudo no eran muy buenas. Pero ese no fue el problema más grave. El peor problema fue que contrataron a malos programadores.

Si el software supone una ventaja competitiva muy grande en una empresa, entonces la diferencia en tecnología es fundamental. Es España todavía no se comprende esto:

So which companies need to have a hacker-centric culture? Which companies are "in the software business" in this respect? As Yahoo discovered, the area covered by this rule is bigger than most people realize. The answer is: any company that needs to have good software.

¿Qué empresas necesitan tener una cultura  centrada en los "hacker"? ¿Qué empresas están "en el negocio del software"? Como Yahoo descubrió, el área cubierta por esta regla es más grande de lo que la mayoría de la gente piensa. La respuesta es: cualquier empresa que necesite tener un buen software.

Una visión muy personal sobre los problema de Yahoo, por parte de una de las personas que mejor conocen la empresa. Si pensamos en España la situación es muy parecida a la de Yahoo: las empresas tecnológicas en España son en muchos casos vendedoras de carne que tratan el software cómo una mercancía. Mientras sea más rentable sacar dinero de la carne que de vender productos tecnológicos, seguiremos tendiendo una industria cárnica de baja calidad (aunque aparentemente sean empresas tecnológicas de primera línea).

Aprovechando las últimas modificaciones en el contenido del blog, estoy haciendo algunos cambios estéticos. Además voy a hacer limpieza de artículos antiguos pendientes de publicar (poco a poco, tengo unos 300), publicando los que todavía sean interesantes. El primer artículo que he encontrado es un white paper publicado por Pierre-Yves Oudeyer sobre la motivación en el aprendizaje infantil. A través de un experimento con robots, Pierre sugiere que el aburrimiento y la frustración son una parte fundamental del aprendizaje. Un robot necesita enfrentarse a situaciones familiares pero no lo suficientemente conocidas como para que no supongan un reto. Actualmente Pierre-Yves es investigador en el inria flowers continuando su investigación en este campo, la aplicación de la psicología del desarrollo a la robótica.

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.

Parece que google no quiere perder el ritmo de evolución de internet y considera que html5 es el futuro de la web. Y es que, según Jay Sullivan VP de Moviles en Mozilla, la definición de html5 permitirá salir de "la jaula de los plugin". Sorprendentemente,  aunque html5 es una especificación sin finalizar, ya está soportada ampliamante en la mayoría de navegadores, a pesar de que probablemente antes de 2010 no será un estándar definido. Pero el gran problema será internet explorer, el navegador de microsoft, que con una cuota de penetración altísima, todavía no soporta éste estándar ni siquiera parcialmente, aunque ha anunciado que lo hará.

Según el artículo de O'Reilly hay varias características que están disponibles ahora mismo o en muy poco tiempo (por ejemplo, Firefox soportará algunas características a partir de la versión 3.5 que estará liberada próximamente):

  • Etiqueta canvas que permite dibujar elementos 2D.
  • Etiqueta video que permite integrar elementos de video dentro de html.
  • Api's de geolocalización para que las aplicaciones web puedan adaptarse a la localización del usuario.
  • Bases de datos de navegador que permitirán almacenar datos en el navegador para trabajar offline (al estilo de Google Gears).
  • Web Workers: un mecanismo para disparar threads (hebras o hilos de ejecución paralela) desde una aplicación web.

Técnicamente, estas etiquetas nos acercan un poco más a flash y al desarrollo de aplicaciones de escritorio, pero es interesante el cambio que se ha producido en la especificación html. No sólo se especifican etiquetas, si no que se han definido una serie de apis, que los diferente navegadores han ido implementando. Creo que el mismo camino pueden seguir las etiquetas 3D, implementadas por google a través de un plugin, pero que permitirá definir unas etiquetas y/o apis estandarizadas, si se establece un diálogo entre las principales empresas de la web. Sólo echo de menos la integración en el escritorio, que google plantea a través de gears, pero viendo el ritmo que lleva la evolución de la tecnología del navegador, no creo que tarden demasiado en aumentar el nivel de integración pues parece el siguiente paso lógico en el desarrollo de aplicaciones web.