La elegancia de la sencillez en el código, bandera de Nadella
Microsoft unifica sus dos API de Windows, en respuesta a una de las demandas más habituales de los desarrolladores, y apuesta por el ‘low code’ y Linux
25 mayo, 2020 07:00Developers, developers, developers". El grito de guerra de Steve Ballmer, a la postre CEO de Microsoft, todavía resuena en los muros de Redmond, no sólo por ser uno de los momentos más extravagantes de la historia de la tecnología sino porque ese mantra conforma uno de los pilares sobre los que se ha construido el éxito de esta multinacional. Primero con Windows, universalizando una plataforma para la que desarrollar programas dirigidos al 'hombre-masa'. Luego con la apuesta móvil de la firma, en la que el propio Ballmer se anotó un sonoro fracaso ante el colosal atractivo de Google y Apple como entornos favoritos de esos mismos programadores a los que interpelaba con tanto ahínco. Y, ahora, con un Satya Nadella que ha dejado claro desde su primer día al frente del gigante norteamericano cuál era su máxima: convertir Microsoft "en el mejor entorno de desarrollo del mundo".
Nadella ha ido dando pasos notables en esta dirección desde 2014 que han culminado, en cierto modo, en la puesta de largo acontecida esta semana en Build 2020, la conferencia estrella de Microsoft para aquellos que viven entre líneas de código. Avances sin las estridencias de sus antecesores, con la elegancia de la sencillez y la severidad de la grandeza tan típicas del neoclásico y que, en este momento, busca precisamente imprimir a sus ambiciosas propuestas de programación.
La expresión de esa sencillez elevada al máximo nivel la encontramos en Project Reunion, denominación que viene a solucionar uno de los grandes hándicaps existentes en la estructura de Windows. Para entender la dimensión de esta iniciativa hemos de remontarnos a 2012. Ese año, Microsoft lanzaba el controvertido Windows 8, con una apuesta visual orientada a tablets que nunca llegó a calar entre el consumidor. Pero también se inauguraba una nueva API para el desarrollo de aplicaciones llamada WinRT, posteriormente rebautizada como Plataforma Universal de Windows (UWP, por sus siglas en inglés). Ironías de la vida, esta interfaz era cualquier cosa menos universal: la antigua API -Win32- gozaba de una amplia compatibilidad con dispositivos antiguos y muchos programadores decidieron seguir trabajando sobre ella.
Dos mundos paralelos para un único universo -Windows- no era el escenario ideal para ofrecer una tabla estable sobre la que tallar nuevos programas. Sabedores de ello, desde Redmond se fueron incorporando parches de integración y acceso cruzado entre ambos extremos, pero el caos subyacente seguía haciendo de las suyas.
Era necesaria una reinvención al más profundo nivel para unificar ambas API. Esa era la demanda escuchada en los mentideros del sector de forma generalizada. Petición que, ocho años después de abrir puertas a este particular multiverso, Microsoft ha venido a responder con el Project Reunion. En base a lo anunciado en Build 2020, se trata de una iniciativa con la que se "unificará el acceso a las API de Win32 y UWP, desacoplándolas del sistema operativo a través de herramientas como NuGet".
El primer componente en esa línea que veremos es WinUI 3.1 Preview 1, la capa de interfaz de usuario nativa de Windows 10, que reducirá ya esa fricción entre los dos entornos de desarrollo en conflicto desde hace casi una década. Pero hay más: Project Reunion permitirá modernizar con las últimas funcionalidades aplicaciones que hayan sido creadas ya sea con C ++, .NET (incluidos WPF, Windows Forms y UWP) o React Nativ. Al fin, Windows cose sus propios cortes y cicatriza un obstáculo que se había demostrado insuperable para muchos desarrolladores.
¿Windows o Linux?
Para muchos de esos mismos ingenieros, escribir código para Windows era una opción notablemente menos atractiva que hacerlo para Linux. Al final, se trata de la sempiterna pugna entre un entorno cerrado, propietario y limitado a los intereses de una multinacional frente a una propuesta de código abierto, soportada por la comunidad y con posibilidades delimitadas por el mismo infinito. Y, durante años, la propia Microsoft impuso muros de hormigón armado frente a los amantes del pingüino.
De nuevo, Satya Nadella vendría a enmendar este error de cálculo (reconocido recientemente también por el presidente de la firma, Brad Smith, en un encuentro en el MIT), haciendo una apuesta tan agresiva por el código abierto que incluso algunos analistas hablaron en su momento de un posible "caballo de Troya" para los intereses de la compañía.
Temor completamente disipado hoy en día, a juzgar por los resultados financieros de Microsoft. En este tiempo, la multinacional ha comprado GitHub para acercarse a esta comunidad, ha integrado Chromium como el núcleo de su navegador de internet, incorporado soluciones para el desarrollo combinado con Linux desde entornos Windows y, por supuesto, implementado herramientas de código abierto como base de muchos de sus servicios en la nube de Azure. "Queremos tener el mejor entorno para programación, incluso en Linux", matizaba esta semana Nadella. "Hacerlo lo más sencillo posible, de la idea al código y del código a la nube".
Un marco en el que Microsoft ha presentado novedades sustanciales para seguir afianzándose en el terreno de su antaño enemigo. Hablamos, en concreto, del lanzamiento de Windows Terminal v1 para Linux y de la segunda versión del Windows Subsystem for Linux, que incorpora por primera vez aceleración por hardware vía GPU para las cargas de trabajo y un "rendimiento casi nativo de Linux con un kernel real de este sistema operativo", en palabras de Scott Hanselman, capo de la empresa en este terreno.
Integración por doquier
Pero para lograr esa ansiada sencillez en el código, no basta con resolver los problemas y malas decisiones acumuladas hasta ahora: también hay que construir de cara al mañana. Y ahí es donde entran en juego otros de los anuncios de Microsoft de este Build 2020, celebrado de forma virtual.
Nuevas propuestas con un propósito claro: difuminar las barreras y consolidar los nexos de unión entre GitHub, Azure y VisualStudio, las tres joyas de la corona para los desarrolladores del ecosistema de Redmond. Así pues, hemos conocido la preview de Codespace (que permite escribir código en contenedores desde un navegador móvil, con compatibilidad con Visual Studio) o las más de 21.000 extensiones de que dispone este editor (equipado también con IntelliCode desde su versión 16.6).
Podemos incluso ir un paso más allá, hacia el terreno pujante del ‘low code’, esas apps que se pueden programar en minutos con poco trabajo de código. Microsoft ha presumido de las 70.000 organizaciones que ya han comenzado a usar su propuesta en este campo, Power Platform, que ahora añade más compatibilidad con los (parece que perennes) entornos legacy.
INTELIGENCIA ARTIFICIAL
La inteligencia artificial hace tiempo que se convirtió en una de las joyas de la corona de Microsoft. Y, en esas lides, la firma norteamericana ha presentado en sociedad el mayor supercomputador de IA del mundo, además distribuido y en la nube de Azure. Se trata de un sistema de más de 285.000 núcleos de CPU, 10.000 GPU y 400 gigabits por segundo de conectividad de red para cada servidor GPU, destinado a entrenar los modelos de la propia compañía y de sus clientes. Diseñado junto a OpenAI, este ingente equipo ya ha dado vida a los modelos Microsoft Turing para el lenguaje natural que se usan ya en productos como Bing, Office o Dynamics