Swift 5.3 funcionará en Windows y también en otras distros Linux diferentes a Ubuntu

Apple acaba de anunciar en su blog oficial del lenguaje Swift una noticia que muchos llevamos esperando de hace bastante tiempo. Desde que Apple lanzó Swift como código abierto y dio soporte oficial a Linux Ubuntu, hemos esperado que el lenguaje consiguiera la madurez suficiente para llegar a otros sistemas.

Han pasado unos cuantos años, el lenguaje ha ido evolucionando, mejorando, ha obtenido estabilidad de API, binaria, posibilidad de crear librerías binarias estables en el lenguaje… y ahora le toca el turno al soporte en otras plataformas.

Después del lanzamiento de Swift 5.2 con Xcode 11.4 y su correspondiente versión para Linux Ubuntu, Apple ha anunciado oficialmente el plan de lanzamiento para la próxima versión menor Swift 5.3 y por fin hemos llegado al esperado soporte multiplataforma: Windows y otras distribuciones Linux aparte de Ubuntu.

El lenguaje no son las librerías

No hace mucho, en un episodio de Apple Coding Daily (que podéis escuchar aquí), contaba por qué no pueden crearse apps de iOS en sistemas que no sean macOS. Básicamente es una cuestión de dependencias y librerías. Para crear apps para iOS usamos un conjunto de librerías que conocemos como Cocoa Touch. Estas librerías son las que dan soporte a trabajo en red, sonido, gráficos, animación, gestión de tareas, dibujo de interfaces, realidad aumentada, aprendizaje automático… Cocoa Touch como conjunto tiene cientos de librerías que resuelven cada pequeña o gran tarea que sea necesaria para crear una app.

Cocoa Touch es el conjunto de librerías que permiten crear apps para iOS, que no funcionan en otros sistemas por las dependencias del mismo a nivel de núcleo de sistema operativo.

Muchas de esas librerías, tienen dependencias: otras librerías de las que dependen a su vez. Y todas ellas, en su más alto nivel, dependen del núcleo del sistema macOS que es el mismo que usa iOS, iPadOS, watchOS o tvOS: Darwin. La dependencia no es más que, en su función, usar componentes de otras librerías y estas de otras, creando un árbol que llega hasta el núcleo del sistema operativo.

Así que si quisiéramos crear apps de iOS con la librería oficial de Apple, con Cocoa Touch y su kit de desarrollo (SDK) tendríamos que conseguir que el núcleo Darwin y toda la jerarquía (árbol) de librerías que se usan funcionaran en un sistema como Windows o alguna distribución de Linux. Lo cual, como podéis imaginar, es hacer que macOS funcione en Windows como programa. Algo impensable.

Cocoa Touch

Esto mismo pasa también al contrario. No puedo programar apps de escritorio para Windows usando Mac o Linux, porque las dependencias de las librerías que usa Windows para ello están a nivel del propio sistema operativo.

El mismo paradigma que lleva pasando con lenguajes como C, C++ o C# durante muchos años, ahora podrá hacerse también con Swift. Un lenguaje de propósito general y multiplataforma.

¿Y por qué explico todo esto? Porque lo que Apple ha hecho es conseguir que el lenguaje Swift sea capaz de generar programas compilados que puedan ser ejecutados en sistemas operativos diferentes a macOS, como Windows o distribuciones Linux diferentes a Ubuntu. Y siempre que se pueda crear un programa en Swift y usar una librería en Swift cuya única dependencia sea el lenguaje o cualquiera de sus librerías integradas, este programa con el mismo código, podrá compilarse y ejecutarse en Windows, Linux o Mac.

No solo Swift

La llegada de Swift a sistemas como Windows abre una ventana enorme de oportunidades para crear soluciones de lado servidor, nuevas librerías multiplataforma, creación de programas en línea de comando, integración del lenguaje a herramientas ya existentes como Visual Studio y que pueda usarse Swift para crear apps para Windows, web u otros sistemas como ya se hace con C#. Siempre y cuando dichas librerías incorporen soporte para el lenguaje.

Es un primer paso, pero las oportunidades son infinitas. El propio lenguaje en su librería principal que le da soporte, lleva incluidas funciones de red o gestión de hilos y tareas y luego permite desde su gestor de paquetes incluir muchas más posibilidades con una cada vez más poblada comunidad volcada en dar funciones interesantes.

Swift Package Manager

Así que, aunque no se puedan crear apps para sistemas iOS con las librerías oficiales que solo funcionan en los sistemas operativos de Apple, otras muchas opciones se plantean que harán de Swift ese lenguaje de propósito general y multiplataforma que siempre ha querido Apple, como ahora lo es Microsoft C#.

Y no solo Apple trabaja en ello: el equipo de Google de Tensorflow (la librería de aprendizaje automático) trabaja en el lenguaje para conseguir la interoperabilidad del mismo con Python y, de hecho, son los responsables de haber creado un instalador en fase de prueba con MSI (el instalador de programas oficial de Windows). Así que instalar el lenguaje y sus dependencias será cuestión de unos cuantos «Siguiente», «Siguiente»…

Vapor

Todo esto llegará con el lanzamiento de Swift 5.3 que, presumiblemente, llegaría con las nuevas versiones mayores de los sistemas de Apple que se lanzarían a finales de mayo (justo antes de la WWDC) como iOS 13.5. Una vez lanzado, bastará ir a la web oficial de Apple, swift.org, bajar el lenguaje, instalarlo y punto.

Google ha creado un instalador de Swift para Windows que ya están probando. Se podrá descargar con Swift 5.3 cuando se lance.

Además, Apple ha incorporado el estándar LSP (Language Server Protocol) de Microsoft, para el motor de autocompletado, etiquetas, análisis y ayuda de código. Eso permitirá que con solo un plugin, cualquier editor como Sublime Text, Visual Studio Code o el mismo Visual Studio como IDE, puedan incorporar las mismas funciones de edición de código que se usa en Xcode.

Un paso muy importante que estamos a punto de dar y que es, sin duda, emocionante.


La noticia

Swift 5.3 funcionará en Windows y también en otras distros Linux diferentes a Ubuntu

fue publicada originalmente en

Applesfera

por
Julio César Fernández

.