Como blog dedicado a la temática móvil, en iPaderos hacemos un amplio seguimiento tanto de los movimientos de Apple como de la competencia, y hemos prestado obviamente mucha atención en las idiosincrasias de Microsoft y Google como principales oponentes de Apple en este mercado. Y tenemos que volver a Microsoft porque últimamente las está montando de aula.
La última realmente gorda (porque luego veremos otro tema menor pero no menos importante) es que Microsoft ha adquirido Xamarin. Esto tiene bastante importancia aunque a la mayoría del público este nombre no le diga nada, porque fueron de los pioneros en desarrollar un kit de software para móviles y tablets no nativo al sistema en concreto, permitiendo usar C#, el lenguaje estrella de .NET para desarrollar en iOS y Android. Lo he usado, y luego expresaré mi opinión al respecto, pero esto significa que los de Redmond se han comprado el ariete para intentar entrar por la fuerza en casa el enemigo.
Sabemos que hoy por hoy Microsoft está totalmente fuera de juego en el terreno móvil. Los descalabros con Nokia y la muy tímida penetración de Surface en el mercado les han hecho prácticamente abandonar la mayoría de los proyectos, como el del puente software de Android, que luego comentaré. Pero ya desde hacía un tiempo se venía contemplando el escenario que finalmente ha sucedido: Microsoft ha adquirido Xamarin, con lo que suponemos que absorberá a sus trabajadores e integrará sus métodos y mecanismos en Visual Studio para la creación de aplicaciones multiplataforma de forma cuasi nativa, o lo más cercano que se puede sin ser totalmente nativa. Ahora veremos como lo hacen y porqué es importante.
Xamarin es un entorno realizado usando el sistema Mono, liderado desde el principio (al menos hasta hace un tiempo) por Miguel de Icaza, un desarrollador mexicano que se hizo famoso en su día en el mundo Open Source con el conocido en sistemas Unix «Midnight Commander«, un clon del Comandante Norton, una interfaz que causó furor en el mundo del MS-DOS de hace al menos treinta años y que permite manejar el sistema de forma un poco más amigable en un entorno de consola de texto. Después se subió a la parra con Gnome, un reconocido entorno de escritorio para Linux, hasta que hace unos años, dio la campanada con una noticia que sentó como una patada en el trasero para muchos: abandonaba Linux por Apple. El controvertido programador inició el proyecto Mono poco después de que Microsoft sacara .NET al mercado y con el respaldo de Novell lo llevó a ser un entorno de desarrollo bastante popular entre los programadores Open Source. Después fundó su propia empresa, Xamarin, que finalmente ahora desaparece en las manos de Microsoft. Vaya andadura, ¿verdad? La idea de Xamarin no es nada mala: usar las potencialidades de .NET para desarrollar una plataforma que permita generar apps para iOS y Android (así como Windows Phone, 8 y 10) desde un único sitio. La idea es estupenda, pero como indicaré a continuación, no tan buena.
Yo he usado por un par de años Xaramin y puedo decir, por desgracia, que es más hype que otra cosa. Me encanta .NET y C#, es un gran lenguaje y un muy buen entorno para programar. Pero de Icaza y sus chicos nos prometieron a todos multiplataforma y eso, lamentablemente, no sólo no ha ocurrido, sino que de hecho, es imposible. Como bien se está demostrando por el abandono del proyecto Astoria por parte de Microsoft, que es el puente de Android para Windows 10, Microsoft misma, un gigante tecnológico, no está pudiendo lidiar con los presupuestos de la multiplataforma. Desde Xaramin se prometía que se podrían desarrollar apps para distintas plataformas reutilizando código (lo que es cierto), pero no te decían que básicamente podrás reutilizar un porcentaje mínimo de código, ya que toda la interfaz tiene que hacerse a medida para la plataforma concreta. Terminamos abandonando Xaramin por esto y por las licencias abusivas que tenían, y porque técnicamente no sale rentable: una app que mide 500 KB en Java se termina convirtiendo en 10 MB en Xamarin, por culpa del motor de ejecución y las librerías de .NET que tiene que portar, aparte de ser aplicaciones más lentas y menos eficientes que las nativas. Sí, lo programas todo en C#, pero al final casi te sale más rentable en algunos aspectos aprender Swift y Java que hacer todo con una sola herramienta. Y además gratis.
El abandono del proyecto Astoria es muy significativo como decía. Ya avisábamos en su día que hacer este port era (al menos «casi») misión imposible, y se ha demostrado que gente tan cualificada como esta no ha sido capaz de sostenerlo, siendo Android además tan relevante para su estrategia. Con la compra de Xamarin, se cubren las espaldas para continuar con su estrategia a largo plazo, pero uno se pregunta por qué no lo hicieron antes y por qué han esperado tanto. Llevan coqueteando años con de Icaza y habrá que ver como se termina manifestando este acuerdo en los productos de desarrollo de Microsoft. Xamarin tiene entornos en OS X, Linux y Windows. Ahora queda la duda de si se mantendrán los dos primeros o se unificará todo bajo el contexto de Visual Studio, lo que le hará perder desarrolladores que no querrán tener que instalarse unas Windows para poder trabajar. Aparte de eso, está la cuestión de si obligarán, como con Windows 8 y Windows 10, a trabajar bajo las últimas versiones del sistema para poder desarrollar para móviles. Si es así, todo esto habrá sido infructuoso, y una compra estéril más para Microsoft. Todo esto sólo tendrá sentido si por fin hacen lo que tienen que hacer: portar Visual Studio y .NET de verdad a OS X y Linux, haciendo cierto el sueño multiplataforma. El tiempo nos dirá como acaba la cosa.
PD: Desde ZDNet nos dan una perspectiva más sobre lo negativo de la noticia.