Maldito JetLag…
Había prometido publicar este artículo el lunes, justo después de volverme de San Francisco, donde la última semana estuve disfrutando de la #Build2015 invitado por Microsoft, pero el cansancio, unido al trabajo amontonado después de varios días totalmente centrado en el evento (y las fiestas posteriores), ha pasado factura.
La crónica sale por tanto hoy, más centrada en el papel que Microsoft jugará a partir de ahora en el mercado tecnológico. Mañana previsiblemente también publicaré al respecto en el blog de SocialBrains (bastante que me han cubierto las espaldas estos días), y el sábado (si de nuevo, el tiempo acompaña), verá la luz el vlog que tengo aún por preparar sobre el viaje, donde nos meteremos hasta la cocina del que ha sido seguramente el evento más importante de la historia de Microsoft en las últimas dos décadas.
Índice de contenido
Microsoft vuelve al juego
Y lo hace a lo grande. Los de Redmond, que dominan el mercado corporativo como solo ellos saben, han dado un golpe en la mesa que aún está resonando por toda la red.
La filosofía One Microsoft, empezada hace poco más de un año (al menos públicamente, aunque sin duda llevaría tiempo gestándose), transforma a una empresa de software al uso en una empresa de productividad y experiencias basada en servicios.
Lo que hace mover el motor de la nueva Microsoft no es por tanto la tecnología por la tecnología, sino la interacción y aquello que de ella se obtenga. Y llegar a eso es muy pero que muy complicado teniendo en cuenta que Microsoft es una empresa creada por ingenieros.
De hecho, es quizás el punto que más se le puede criticar del evento. Los de Redmond no son tan buenos vendiendo como lo es Apple o Google. Sus eventos han estado históricamente centrados en los desarrolladores, no en el usuario final, y por ello, habitualmente, han sido desprestigiados por los medios.
La nueva Microsoft es una empresa que, sin perder sus orígenes, empieza a entender (y de una forma muy acertada en algunos de sus productos) cuáles son las necesidades de su cliente, adaptando la tecnología para que sea esta quien afronte las dificultades y no el usuario.
Así es como llego al primer punto esencial para comprender ante lo que estamos.
1.- Una sola experiencia de usuario
Microsoft es la primera compañía en llegar a la muy necesitada convergencia escritorio/móvil. Antes que BlackBerry (que lo intentó hace un par de años y se ha quedado por el camino), que Canonical (quien hasta ahora parecía estar más cerca), y sobre todo, antes que Google y que Apple.
La experiencia ante Windows10 para escritorio y Windows10 para móviles es prácticamente la misma. Cada una, adaptada a las necesidades de su dispositivo.
Y si antes habíamos conocido cómo Windows10 para escritorio era capaz de adaptarse a experiencias táctiles en tiempo real (hablamos de Continuum en su momento), en esta Build descubrimos entusiasmados que Continuum llegará también para móviles (EN), adaptando su experiencia cuando este se conecte a un periférico (teclado, pantalla,…).
¿Queda mucho para la llegada de un móvil que sirva a la vez de escritorio? No tanto en el caso de Windows, cuya principal “dolencia” será la necesidad de un hardware específico (y más potente) que sea capaz de levantar con fluidez el entorno de escritorio.
2.- Una sola plataforma
El sistema operativo mantiene la misma experiencia de usuario en todos los dispositivos, adaptada según las necesidades específicas de cada soporte, pero esto no sirve de nada si no hay una cultura de desarrollo que la acompañe.
Y así llegamos al segundo punto, que engloba varias de las grandes sorpresas presentadas en la Build. Las aplicaciones universales son ya una realidad. Desarrolla una vez, y tendrás versiones adaptadas para móvil, escritorio, HoloLens e IoT. Todas basadas esta vez en cuatro pilares fundamentales:
- Web: HTML5 como la gran plataforma conciliadora, que como bien sabe, ejecuta nativamente en Windows.
- .NET y WIN32: El ecosistema de desarrollo por defecto de Microsoft, que viene acompañado de nuevas características que le dotan de elementos de un lenguaje funcional.
- Android Java/C++ (Project Astoria (EN)): Los desarrollos de Android tendrán su espacio en la plataforma de Microsoft.
- iOS Objective C (Project Islandwood (EN)): Al igual que las aplicaciones de iOS.
Resumiendo: Será posible desarrollar con lenguajes nativos de Android o iOS aplicaciones que correrán en estos sistemas, y también, nativamente, en Windows.
Pese a que ha sido una constante en la mayoría de medios que cubrieron el evento estos últimos días, no se trata por tanto de que el desarrollador desarrolle un proyecto para Android o iOS y lo porte a Windows, sino que un desarrollo en la plataforma de desarrollo de Microsoft, con el mismo lenguaje de Android o iOS, servirá para los dos (cuando al revés no es posible). Al principio, y que se sepa, con algunas restricciones (solo compatible para dispositivos ARM, y con la misma resolución (en el caso de iOS)), pero entiendo que será cuestión de tiempo.
Hablamos de una sola plataforma que toma la delantera, abriéndose a comunidades de la competencia, y ofreciendo un IDE (Visual Studio) y un nuevo editor de código (VS Code (EN)) que se postulan por momentos como las mejores herramientas de desarrollo que existen.
¿Qué se les puede echar en cara? Que aún no haya Visual Studio para Linux y Mac (sí tenemos Code), pero tiempo al tiempo (y no lo digo sin conocimiento de causa 🙂).
3.- Un solo ecosistema
No es lo mismo que el punto anterior, y quizás sea el más complejo de analizar. La nueva Microsoft se basa, como comentaba, en servicios. Y son esos mismos servicios los que están viendo enriquecidas sus prestaciones al abrirse al resto de servicios.
Así, descubrimos que Office (EN) y Skype (ES/enlace roto) (el primero una suite de productividad, el segundo un servicio de comunicación) pasan a ofrecer ecosistema de desarrollos a terceros, pudiendo mediante su API integrar partes de este servicio en otros.
Esto en la práctica genera un entorno muy flexible, en el que el desarrollador juega con la modularidad del lenguaje para insertar prestaciones que ya son gestionadas por servicios tan potentes y de uso masivo como los antes mencionados. Y donde los usuarios encontrarán una tecnología que por momentos se vuelve natural, inmediata.
Diferentes tecnologías comunicándose entre sí, embebiéndose las unas con las otras y tejiendo por tanto un entorno enriquecido cuya tecnología es invisible al usuario.
Ya no hablamos de aplicaciones separadas e inconexas. El futuro pasa por su agregación en una red continua, que comparte prestaciones y datos.
4.- Realidad aumentada e internet de las cosas
El cuarto y último pilar de la nueva Microsoft.
Dos campos que aunque no son nuevos para la compañía, sí han cobrado un protagonismo verdaderamente considerable en esta última Build.
Reconozco que iba con pocas esperanzas respecto a las HoloLens. Presentadas hace unos pocos meses mediante un vídeo publicitario, todo apuntaba a que se quedaría prácticamente en eso, un renderizado destinado a crear hype alrededor del producto.
Nada más lejos de la realidad.
Tuve la suerte de acudir a un evento privado en el que si bien no he podido probarlas, sí pude disfrutar de otra presentación la cual, y debido a que para entrar nos quitaron los dispositivos, no pude grabar.
También he podido hablar con uno de los ingenieros que está detrás del desarrollo de HoloLens, así como con otro de los españoles que fuimos a la Build, y que tuvo la inmensa suerte de probar durante 4 horas cómo es desarrollar para HoloLens.
Decir que el desarrollo está lo suficientemente maduro como para representar un producto muy a considerar en un futuro próximo. Igual que las Google Glass apuntaban a ser un producto que pasaría al olvido (cosa que al final se ha materializado), ya no lo tengo tan claro con HoloLens.
Realidad física y realidad virtual se unen en estas lentes, apuntando hacia nichos específicos donde el trabajo colaborativo en tiempo real es un bien necesario. Poder estar hablando con un experto mientras este te enseña cómo realizar una labor, dibujando flechas en la realidad que estás viendo, es simplemente increíble.
El tener aplicaciones abiertas “colgadas” como cuadros en la habitación, o poder echarle un vistazo a un renderizado 3D que se ajusta a la perfección a la superficie de la habitación, son algunos puntos más que me han llamado la atención.
Para desarrollar, basta con saber Unity, y utilizar el SDK específico para activar los gestos (movimiento de dedos, principalmente), que resultaron muy exactos para todos aquellos que pudieron probarla.
Eso sí, el ángulo de apertura de la realidad aumentada de las HoloLens se prestaba al parecer algo escaso en el eje vertical (alrededor de 45º hacia arriba y hacia abajo), lo que hace que los objetos “desaparezcan” si estás demasiado cerca de ellos.
Respecto al internet de las cosas, me pareció bestial la integración que ha tenido Windows ya no solo con impresoras 3D (Windows8 abría este mercado), sino también con proyectos open source como Raspberry Pi (EN) o Arduino (EN).
Mercados que sin duda no representan actualmente una porción significativa (y rentable), pero que sirven para limar las asperezas de todos aquellos que todavía ven a Microsoft como la Microsoft de la era Ballmer.
Y esto solo es el principio
Llevo más de 1500 palabras, y apenas he podido dibujar parte de todo lo que Microsoft presentaba estos días. Quizás por tanto la mejor manera de resumirlo todo sea con el hangout que grabamos el viernes desde San Francisco, y en el que estuve acompañado de Jorge del Casar (@JorgeCasar), Quique Fdez (@CKGrafico) y algún que otro espontáneo.
Dura hora y cuarto, lo sé. Pero tocamos uno a uno todos los temas tratados en el evento (o al menos, los más importantes). Ese Project Spartan renombrado a Microsoft Edge (no me creo que haya sido el mejor nombre ni el mejor logo que había sobre la mesa) como respuesta a la pésima reputación de IE. Las implicaciones de una integración entre Raspberry Pi y los sensores de un Lumia. El papel de Minecraft dentro de Microsoft…
Y como decía, mucho, mucho más. Esto solo es el principio. Hay un nuevo jugador en el tablero…, si es que en algún momento dejó de estarlo.
Edit al día siguiente: Publico en el blog de SocialBrains (ES) mi análisis, basado más en el ámbito marketiniano de los de Redmond, y del evento en sí.
Edit a día 8 de Mayo del 2015: Microsoft acaba de liberar en su plataforma (EN) los vídeos en diferido de todas las charlas y keynotes.
Edit a día 20 de Mayo del 2015: Los chicos de Microsoft me acaban de pasar un enlace con la información técnica (ES) sobre cómo desarrollar aplicaciones multiplataforma, y/o portar desarrollos de otras.
Gracias Pablo por este post. Sigue sin quedarme claro lo de Android e IOS, dices
“Pese a que ha sido una constante en la mayoría de medios que cubrieron el evento estos últimos días, no se trata por tanto de que el desarrollador desarrolle un proyecto para Android o iOS y lo porte a Windows, sino que un desarrollo en la plataforma de desarrollo de Microsoft, con el mismo lenguaje de Android o iOS, servirá para los dos (cuando al revés no es posible).”
No entiendo bien eso del mismo lenguaje de Android e IOS ya que para desarrollar en objective C siempre va a hacer falta un Mac por como sabes tema de licencias. Puedes concretar un poco? se va a desarrollar bajo Windows una app en Java para Android y esa app será también valida para Windows? o se desarrollará en C# para las tres plataformas tal y como hace Xamarin?
Gracias por la pregunta Oscar. La verdad es que es un tema que he visto cubierto en muchos medios de forma incorrecta. La cuestión es que desde Visual Studio (por tanto, y por ahora, desde Windows) podremos desarrollar aplicaciones para Android y/o iOS (ya lo podíamos hacer antes), utilizando los emuladores y todas las herramientas de un IDE, y el resultado, será una aplicación desarrollada para Android o iOS, y también para Windows10.
No se trata por tanto de que un apk lo portemos a Windows10, sino que el código podrá ejecutarse nativamente en Windows. Por supuesto, habrá algunos pequeños cambios (clásicos controles IF para algunas prestaciones que son distintas en los sistemas operativos) pero la cuestión es que se desarrolla una sola vez con código nativo.
Luego, en efecto, si quieres subir tu app a la app store, necesitarás un mac, pero eso es por restricciones que impone Apple para certificar la aplicación.
No sé si me he explicado mejor ahora Oscar.
Por cierto, se me olvidó mencionar que si quieres desarrollar para Android, iOS y Windows tendrás que irte a Xamarin o a frameworks HTML5 como Cordova.
Aquí la ventaja es que desarrollas en el lenguaje nativo de uno de los sistemas operativos. No tienes que usar un framework distinto que es compatible mediante intermediarios con el kernel de cada uno de ellos.
Yo no entiendo bien ese movimiento y supongo que habrá algo por ahí que falta por explicar bien. Yo lo había entendido como una tecnología que iba a permitir migrar aplicaciones en Java y IOS de forma rápida, permitiendo reutilizar mucho de su codigo, guiándote en los cambios etc pero eso que comentas no lo veo
Es, yo creo, imposible que consigan compatibilidad 100%. Cada hardware es distinto y sobre todo cada marca tiene su propio ecosistema que casi obligan a usar . La tienda de Google Play o itunes para in app purchases, el game center etc etc. Es muy difícil ser neutral porque a ellos les interesa que lo uses, un ecosistema lo es muy en parte gracias a sus aplicaciones, incluso llegado el caso pueden obligarte a hacerlo. Por ejemplo que si no usas su sistema para in app purchases no puedes publicar la app o bien sistemas mas sutiles como no rankear alto en sus stores.
Por no hablar de que no se lo pondrían fácil si ven que la cosa tiene tracción. Te publican una nueva API y ya te quedas fuera de juego un tiempo, pueden hacer un montón de cosas.
Todas estas incompatibilidades lo que generan al final son pesadillas para el usuario que no quiere saber nada del mantenimiento y solo quiere un móvil que funcione y se actualice solo.
A Blackberry por ejemplo no le fue nada bien poder ejecutar apps Android. Y todo esto lo digo yo que no tengo ni idea del negocio, así que pienso que la gente de Microsoft lo ha pensado todo y hay partes que no se han entendido bien.
Si tienes toda la razón Oscar. Ten en cuenta que esto lo han anunciado esta semana, y verá la luz a lo largo del ciclo de vida Windows10.
Quiere decir que faltan aún meses en los que mejorarán algún punto y quizás también tengan que echar para atrás otros.
Por cierto, que hace un momento he hablado con los chicos de Microsoft, y me han corregido. En el caso de Android, actualmente, lo que se utiliza es el APK, al cual le meten una capa superior para que sea compatible con las APIs de Windows. Me ponían el ejemplo de una aplicación que use Google Maps. Puesto que Windows no hay GApps, utilizará en su defecto Bing Maps.
En el caso de iOS, y por ahora, es tal y como mencionaba en el comentario anterior.
Quedan aún muchas cosas por conocer. Eso está claro. Lo principal es considerar que el movimiento es el primero que se hace en esa dirección. Al principio, es de esperar que sea muy restrictivo (compatibilidad más o menos aceptable), y poco a poco lo vayan mejorando. Sobre lo que comentas de la dificultad de mantener esa compatibilidad a lo largo del tiempo, ten en cuenta que eso mismo le está pasando a Xamarin. Depende de una comunidad muy activa para actualizarse a los continuos cambios en cada sistema.
En este caso, será Microsoft la encargada, que creo que por músculo no va a ser :).
A lo largo de esta semana han quedado en pasarnos un artículo arrojando más información al respecto. Por ahora, hay que coger con pinzas lo que tenemos, ya que de aquí a unos meses puede cambiar todo mucho.