1 de mayo de 2009

Windows en la encrucijada de los teléfonos "modernos"

Aunque repita la misma introducción mil veces en este blog, insisto en que Apple ha dado un vuelco a los móviles no solo por su interfaz y la pantalla táctil, sino tambien por haber sido la primera compañía que ha introducido todo un SO tradicional dentro de un móvil. Si, ya había teléfonos con Linux, pero la mayoría de ellos lo utilizaban solo como un kernel embebido regordete pero potente y gratuito: ha sido el iPhone quien ha terminado adelantándose a todos.

Debido a las restricciones tecnológicas, los móviles empezaron su andadura con SOs embebidos que eran tan cutres como el hardware en el que corrían. Llegó un punto en que empezaron a resultar económico los móviles con procesador y RAM capaces de albergar versiones reducidas de los SOs tradicionales, es decir, dejaron de ser "dispositivos embebidos" para ser simplemente PCs portátiles, aunque fueran basados en ARM. Pero los fabricantes siguieron, por inercia, y porque no tenían otra cosa, con sus SOs embebidos, incapaces de explotar toda la capacidad de las cada vez más potentes generaciones de hardware.

Fue entonces cuando Apple halló el hueco para colarse, creando una versión reducida de OS X para ARM que era capaz de funcionar en hardware que tenía un precio aceptable y que lo tendrá aun más en el futuro. Usar su propio SO les permitió centrarse en lo que verdaderamente ha dado el éxito al iPhone: la pantalla pluritáctil (reconozcan que suena más cool que "multitáctil") y el software. Y reducir costes y tiempo, pues solo mantienen una base de código, y no varias. Vi una vez una comparativa de velocidad del navegador del iPhone con otro móvil con un SO embebido. El iPhone le daba mil vueltas. ¿Por qué? Porque el iPhone estaba usando exactamente la misma pila TCP/IP que usa en sus ordenadores de escritorio y en sus servidores, el mismo navegador web, la misma implementación wifi. El otro teléfono, basado en un SO embebido, tenía una pila TCP/IP y wifi propia, no optimizadas para los ratios de transferencia de las conexiones 3G y las redes Wifi. Y su navegador web era una versión embebida limitadísima y con un motor javascript lentísimo.

Android siguió los pasos del iPhone (aunque han tenido que reinventar el entorno de programación de cero, basándolo en Java) y se está incorporando poco a poco a su estela, igual que Palm. ¿Y qué ocurre con Windows? Pues tienen un problema, porque para seguir la tendencia necesitarían una versión reducida de XP. Bien, esa versión existe, pero...es solo para x86, lo cual obliga a Microsoft a seguir en móviles con Windows CE. Y así van a tener que seguir como mínimo durante 2 ó 3 años, pues hasta entonces Intel no tendrá nada (recordar que vendieron su plataforma ARM, Xscale) que pueda utilizarse en móviles sin fundir la batería a velocidades alarmante. Esta es la encrucijada de Microsoft.

Respecto a Windows CE, no es que sea mal SO, pero en realidad es un descendiente de los SOs embebidos equivalentes a los que se utilizaban cuando los móviles no tenían muchos recursos. CE es el SO que dominaba en los Pocket PCs, PDAs y demás artefactos hace casi una década: artefactos hoy desfasados. Es útil para dispositivos con pocos recursos, y sigue siendo muy útil en esos dispositivos, pero no en los móviles modernos, que han dejado de ser embebidos, y que necesitan un kernel como el de Windows XP, Vista o 7, donde MS mantiene una inversión mucho más alta y que, exceptuando algunos aspectos específicos como las capacidades como SO de tiempo real, está más evolucionado tecnológicamente. Sin embargo, como ya está dicho, ese kernel no está portado a ARM, al menos públicamente, y no parecen tener intención de cambiar la situación, asi que de momento no tienen otra elección que CE.

En cuanto al entorno de programación, a diferencia otros SO embebidos, de esos raros que tienen sus propias APIs y su propia manera de hacer las cosas y tienen POSIX solo como una "capa de compatibilidad" y no como algo nativo (como $DEITY manda), el CE si que tiene compatibilidad con su POSIX particular, es decir, Win32, las MFC y todo el universo Windows. Es, por así decirlo, una implementación reducida de Windows sobre el kernel de CE del mismo modo que XP lo es sobre NT y el 98 lo era sobre W9X. La diferencia es que mientras que entre XP/Win 2000/NT 4.0 había mucha compatibilidad con Windows 9x, en CE no tenían que preocuparse por eso, y han desarrollado un sub-mundo alternativo más incompatible, pero no hasta el punto de ser completamente diferente. Además, tambien se puede utilizar .NET, que es multiplataforma (al igual que las aplicaciones java de Android, y a diferencia de iPhone, que apuesta claramente por ARM). Asi que en este aspecto, aunque haya pequeñas diferencias, se podría decir que Windows CE está bastante preparado para acoger hordas de programadores experimentados en plataformas Microsoft.

Sin embargo, ciertas partes del entorno Windows de CE son una vulgar imitación, o mejor dicho reimplementación, de sus equivalentes de escritorio. Mientras que Apple utiliza el mismo Safari para el escritorio y para el iPhone, Microsoft tiene un IE de escritorio y, aparte, el IE Mobile, que está obsoleto excepto para navegación básica, y que ni tan siquiera es compatible en cuanto estándares con su hermano mayor ni con muchas páginas modernas. ¿Dónde vas con un móvil de última generación sin navegador decente? En este aspecto, hay que decir que Opera ha salvado el culo a Microsoft.

La situación de Microsoft en la encrucijada de los móviles es por tanto dificil: Por una parte Microsoft debería tener interés, como lo están teniendo Apple y Google, en usar un kernel y entorno base -y aquí se incluye el navegador- para ordenadores DE VERDAD, y no versiones embebidas, aunque solo sea por unificar todo en una sola base de código, pero les limita su dependencia de x86 por el momento, hasta que Intel pueda competir con ARM. Competencia en la que es de suponer que estén muy interesados, pero que va a dejar 2 ó 3 años de superioridad y libre albedrío a iPhone y Android. Por otra parte, su entorno de programación no ofrece gran dificultad de adaptación a los programadores Windows, pero se encuentra con un gran problema adicional: la falta de uniformidad. Mientras que en el iPhone los desarrolladores saben exactamente para qué dispositivo están desarrollando, saben que el dispositivo es pluritáctil, saben la potencia de la CPU, saben las capacidades de su chip gráfico, en Windows tienen que soportar aplicaciones diseñadas para todo tipo de dispositivos con diferentes tipos de entradas, algunos táctiles, otros no, unos con un buen chip gráfico, otros no....

En resumen, que veo a Windows bloqueado en el mundo de los móviles. Previsiblemente invertirán toneladas de recursos en modernizar Windows CE y su entorno, intentarán portar el IE real de escritorio a Windows CE (probablemente su mayor problema en estos momentos: así de importante se han vuelto los navegadores)...pero será poner parches a un viejo neumático, mientras que iPhone y Android (y Palm) tendrán terreno libre para dominar a sus anchas.

12 comentarios:

  1. Anónimo10:34 p. m.

    Me llama la atención que no hayas mencionado a Nokia y Symbian, especialmente teniendo en cuenta que en Europa y en España Symbian sigue siendo un gran dominador (aunque quizás en smartphones no).

    El movimiento que hizo Nokia para comprar lo que le quedaba de Symbian y publicarlo como software libre, hace que uno dude mucho de que planeen tirarlo a la basura para pasar a usar Linux o algo similar.

    Cuando lo publiquen (deben de estar a punto), quizás podamos ver alguna comparación de ambos, ya que leí que Symbian era capaz de hacer cosas que un Linux no podía aún.

    ResponderEliminar
  2. A mi me gustaría saber donde Nokia va a encajar Qt.. se supone que lo comprar para usar lo que anteriormente se llamaba Qtopia, pero...

    ResponderEliminar
  3. Muy bueno, como siempre.
    Tengo que decir que estoy de acuerdo en que un desarrollador windows puede pasar perfectamente a CE y además te diré que, al contrario que con dispositivos j2me, apenas hay fragmentación y únicamente hay que lidiar con un par de tamaños de pantalla.

    Por otra parte, hay dos cosas muy importantes que hacen que un terminal funcione:
    - un sdk y herramientas adecuadas: hasta hace relativamente poco MS no ha tenido nada realmente interesante.
    - una forma de hacer dinero: apple ha dado en el clavo

    ResponderEliminar
  4. javi santana: Muy cierto, lo de permitir hacer dinero a los programadores...

    ResponderEliminar
  5. Anónimo2:05 p. m.

    Ya sé que este es un blog orientado más al software (libre) que al hardware, pero hay que estar muy ciego para no ver que el principal gancho en los moviles no es el S.O. sino el hardware. Por ejemplo, la gente que quiere renovar movil con su compañia busca un movil con Bluetooth, pantalla tactil, camara de 5 megapixeles, GPS, etc. El software es realmente secundario. Un ejemplo clarisimo lo teneis en los nuevos moviles LG con pantalla tactil, que se estan vendiendo como churros y llevan un S.O. hecho totalmente "adhoc" por LG.

    ResponderEliminar
  6. @elsalmón la principal diferencia es que mientras con el terminal solo ganas cuando lo vendes, con el software tanto desarrolladoras, como el intermediario (apple, google) se siguen llevando pasta.

    Además, los fabricantes de hardware tan contentos, adaptan android a sus terminales y a vender como churros.

    ResponderEliminar
  7. Anónimo7:32 p. m.

    @Javi santana, baja al mundo real. El porcentaje de penetración del iPhone no llegaba al 1% del mercado a finales de 2008, como reclamaba un danés en una conferencia celebrada durante el Mobile congress de Barcelona. Y hasta junio no conseguiremos la cifra record de ¡ 3 ! modelos con Android. El principal fabricante de moviles en el mundo es la europea Nokia, nunca olvides eso.

    Algunos estamos hartos del imperialismo americano y de tener que hablar de los productos de Apple a todas horas. Tanto Android como Apple hoy por hoy son muy minoritarios y el numero de terminales a corto plazo es tambien muy pequeño. Además el acceso a los "contenidos" siempre estará limitado y filtrado por las operadoras asi que el intermediario real no es Apple ni Google sino Timofonica, Garrafone, etc. Y respecto a lo ultimo, realmente hasta ahora no puede decirse que haya una gran entusiasmo de los fabricantes por sacar incluir Android. Estamos en crisis y Android requiere moviles con CPU potente, mucha memoria, GPS, 3D, es decir, caros.

    ResponderEliminar
  8. @el salmón: pensaba que después de varios años desarrollando y comercializando software para terminales móviles estaba en el el mundo real :).

    Con apple los desarrolladores han empezado a ganar dinero, hasta ahora quien se llevaba la pasta era la operadora que era la que controlaba qué se publicitaba y que no (salvo excepciones como zed o gameloft el resto es lo que le de la gana al operador). Ahora el desarrollador puede crear y poner a disposición del público sin que la operadora mande. Es más, movistar ha puesto el culo (y la vaselina) para comercializar iphone en España.

    ResponderEliminar
  9. Anónimo9:08 p. m.

    @javi santana: ¿no crees que la gran variedad de plataformas actual (y más en el futuro) hace que las aplicaciones o servicios moviles se tiendan a desarrollar para la web o sencillamente mediante SMS? ¿que pintan las plataformas moviles entonces? ¿de que le sirve al desarrollador programar una aplicacion que las operadoras van a capar a nivel de red (vease el p2p o la VoIP)?

    Insisto, ¿crees que la mayoria de los compradores del iPhone en España lo pillaron porque llevaba una plataforma robusta y habia una tienda de aplicaciones o sencillamente lo pillaron porque llevaba pantalla tactil, GPS y era lo más "cool" del momento?

    ResponderEliminar
  10. el Salmon: Tienes razón en cuanto a que la penetración del iPhone o los Android en el mercado es relativamente pequeña. Pero si distingues entre moviles y smartphones la cosa cambia bastante. Además hay que tener en cuenta que el iPhone se puso a la venta a nivel mundial hace solo un año. Nokia es el que más teléfonos vende sí, pero vende todo tipo de teléfonos mientras que Apple vende uno. Un solo teléfono. Dices que la gente busca hardware y que el software no tiene importancia. Puede ser. De hecho en muchos casos es así... hasta que pruebas un iPhone con su mierda de cámara, su bt capado, sin GPS (el iPhone original)... y entonces te das cuenta de que lo importante es el conjunto HW/SW. No vale solo con tener de todo, tiene que funcionar bien. Tener funcionalidad... y Apple lo ha bordado con su cacharrito. Y lo mejor es que ha dejado al resto de la industria a la altura del betún. Tanto la del SW como la del HW.

    En el artículo se pretende mostrar como la nueva generación de cacharros presidida por el iPhone y acompaña por los androides y futuros Pres pone en aprietos la política mobile de Microsoft. A favor tienen ordas de desarrolladores, en contra un sistema obsoleto y más de 2 años de retraso. Tan mal está la cosa que empiezana multiplicarse las marcas que apuestan por android (mira el samsung) con productos en el mercado.

    Y es que en mi opnión quien abiertamente se ha enfrentado a Microsoft es Google. Lo de Apple está muy bien, pero es como el Mac. Un producto cerrado a cal y canto, completamente controlado, que funciona como un tiro pero que solo venden ellos. Google, con su andoide, pretende meterse justamente en el hueco que ha abierto Apple. Y es un hueco enorme y con muchas posibilidades de creciemiento.

    Nokia también tiene un linux en sus dispositivos estilo MID. El futuro de Symbian es incierto. Aunque la espectacular, por ingente, gama de teléfonos de Nokia puede seguir usando Symbian sin mayores problemas.

    ResponderEliminar
  11. Joe, si que ha dado el tema para hablar :-)
    Yo estoy con un amigo encaminandonos en una aventura Androniana y aquí también hay que lidiar con distintos dispositivos, pero Google te intenta hacer la vida fácil con ello, no es un problema muy grande.

    Yo apostaría que MS ha pensado en todo esto con su Windows 7 y será compilable para ARM, o a lo mejor han apostado por que los futuros móviles lleven Atom... pero me parece que sacarán algo antes de 2 años casi seguro. Otra cosa son las API de programación de MS, que dan auténtico asco.

    Saludos.

    ResponderEliminar
  12. Anónimo12:34 a. m.

    No hay comparación entre lo productivo que puede ser un windows mobile versus un iphone, por muy bonito que sea el iphone. Es más... una blackerry es mucho más util que iphone. A nivel empresarial, me interesa que el gps sirva de algo más que para decirme donde estoy, me interesa tener una aplicación a la medida.. y eso me lo puede dar java... no un iphone en particular.

    ResponderEliminar