Aplicaciones universales independientemente del SO ¿Es posible?

Sabe que es un tema que me preocupa. Y como ya conté en alguna ocasión, me ha llevado por la calle de la amargura durante bastante tiempo.

universal apps

Un servidor tiende a utilizar desde hace unos cuantos años varios sistemas operativos al día. OS X como escritorio, Windows/Linux para portátil, Android/Windows Phone para móvil e iOS para tablet. Eso sin contar con los devices que voy probando (firefox os, ubuntu os,…).

Entiendo que mi caso no es el habitual, pero quien más quien menos tiene al menos a su alrededor dos sistemas operativos distintos, y entre ellos sigue habiendo las mismas imcompatibilidades de antaño.

Dicho sea de paso que el auge de los lenguajes web e Internet ha democratizado algo el sector. La mayoría de herramientas en cada SO son incompatibles entre sí, pero cuentan con un servicio web que sí es compatible entre ellas, por lo que en la práctica los problemas se reducen.

Y aún así, sigue rondándome en la mente el porqué ninguno de los grandes ha querido dar un paso en firme en este sentido. Cuando estás arriba, no te resulta interesante que haya compatibilidad.

Apple lo está dando, pero dentro de sus fronteras. OS X e iOS son y seguirán (al menos por ahora) siendo dos sistemas operativos distintos, pero gracias a continuity, la interacción entre uno y otro se acerca. El poder contestar llamadas “nativamente” desde el escritorio, o seguir con lo que estamos haciendo en el móvil es un claro ejemplo.

Ahí está Google, que parte con la ventaja de tener un claro dominio en el mundo de internet. Y sin embargo, optó por un Android que a cada paso es menos open source y más código privado. Basado en Java, sí, y con Linux por abajo, pero en la práctica imcompatible con el resto. Que tenemos emuladores, pero no eso NO ES compatibilidad.

De Linux a secas ni hablo. Hay problemas de compatibilidad entre las propias distribuciones, como para esperar que se pongan de acuerdo y alguien lidere la batalla.  Canonical es de lejos la que mejor posicionada está, y ese Ubuntu Phone, si al final acaba saliendo, sería el primero en apostar de lleno por la convergencia móvil/escritorio. Dentro de Linux, eso sí.

Y así llego a Microsoft, una empresa que ha sabido renovarse, y que a cada paso apunta maneras. Aquí no voy a hablar de si te gusta Windows 8 o no. Aquí hablamos de una compañía que cuenta con las herramientas suficientes para dar el paso definitivo. Y lo mejor de todo, que tiene la necesidad/presión suficiente para llevarlo a cabo.

Con Android/iOS monopolizando el móvil, y OS X recogiendo a los clientes insatisfechos de Windows, lo que necesita Microsoft es que Windows Phone funcione.

Y un servidor que lleva unos meses probándolo da fe ciega de las buenas intenciones. Ahora bien, lo que echa para atrás a cualquier posible comprador de dispositivos móviles es la compatibilidad. Lo que algunos llaman “el tener WhatsApp“, pero llevado al resto de aplicaciones.

Aquí la cosa flojea si es de los míos. Para el grueso de la sociedad la tienda de Windows Phone tiene todo lo necesario. Está WhatsApp, sí, y Twitter, y Facebook, y …

Pero tienen la necesidad de engordar las cifras de apps, y hay dos alternativas en la mesa: compatibilizar desarrollos externos (Android principalmente) o incentivar su plataforma como universal.

El primero es el esperado. Si yo puedo desarrollar para Android y portarlo sin problemas a WP, pues hago eso. Y el resultado será una amalgama de aplicaciones “medio-nativas” sin compatibilidad real con los live tiles y demás características únicas del ecosistema Windows. Ha habido intentos semejantes y tienen siempre el mismo final.

El segundo es el que de verdad me parece interesante. Con un Visual Studio gratuito, con un .NET que ahora es open source, con la gestión asíncrona que ofrece Windows y la compatibilidad de lenguajes (ojo a Cordova para webapps), Microsoft tiene las herramientas perfectas para posicionarse como plataforma universal.

Ojo que no hablamos ya de hacer apps para Windows, y luego portarlas. Hablamos de hacer aplicaciones universales, y luego empaquetarlas para cada sistema. Microsoft lo que ofrece es la plataforma, las herramientas, no sus sistemas operativos. Cada una con sus peculiaridades.

A nivel técnico es posible (EN), y si se hace bien, casi transparente de cara al desarrollador, que tendrá que adaptar ligeramente cada desarrollo antes de darle a compilar (de eso no nos vamos a librar en la vida).

Y el resultado es una Microsoft que recupera pastel ya no como proveedor de servicios, sino como plataforma (lo primero seguramente acabe llegando). Una Microsoft en la cresta de la ola, haciendo las cosas bien, y demostrando que es ahora más abierta que nunca.

Ese sería un camino interesante para la informática. Por supuesto, habrá que ver si acaba llegando :).