- Esta versión expande Swift a más plataformas y dominios
- Swift es muy conocido como lenguaje para desarrollo de apps, pero también es excelente para bibliotecas, servicios a escala de internet y código donde el rendimiento es crítico
- Swift 6 se amplía aún más con nuevas capacidades de programación de bajo nivel, un subconjunto del lenguaje para Swift embebido, soporte ampliado para Linux y Windows, y nuevas API multiplataforma
Lenguaje y biblioteca estándar
Concurrencia
- Swift 6 ofrece seguridad para prevenir carreras de datos en código concurrente mediante un nuevo modo del lenguaje.
- Proporciona advertencias de seguridad frente a carreras de datos mediante la bandera del compilador
-strict-concurrency=complete.
- Incluye una nueva biblioteca de sincronización con API de concurrencia de bajo nivel.
Typed throws
- Ahora es posible especificar en la firma el tipo de error que una función puede lanzar.
- Es útil para pasar tipos de error en código genérico o en entornos con asignación de memoria restringida.
Propiedad
- Mejora el rendimiento al integrar los tipos no copiables, introducidos en Swift 5.9, con el sistema de genéricos.
- Usa la sintaxis
~Copyable para modelar recursos y optimizar el rendimiento.
Interoperabilidad con C++
- Swift 6 soporta tipos move-only de C++, métodos virtuales, argumentos predeterminados y más.
- La anotación
SWIFT_NONCOPYABLE permite exponer tipos de C++ como tipos no copiables.
Swift embebido
- Incluye un subconjunto del lenguaje y un modo de compilación para desarrollo de software embebido.
- Soporta objetivos bare metal ARM y RISC-V.
Enteros de 128 bits
- Agrega tipos enteros con signo y sin signo de 128 bits.
Mejoras de productividad
- Introduce varias funciones para mejorar la productividad, como
count(where:).
Depuración
Resúmenes personalizados de LLDB con @DebugDescription
- El macro
@DebugDescription permite personalizar cómo se muestran los objetos en LLDB.
Mejoras de rendimiento al iniciar mediante módulos explícitos
- Mejora significativamente el rendimiento de inicio del depurador usando compilaciones con módulos explícitos.
Bibliotecas
Foundation
- Unifica la implementación de Foundation en todas las plataformas.
- Extiende a Linux y Windows la implementación en Swift usada en macOS e iOS.
Swift Testing
- Introduce una nueva biblioteca de pruebas llamada Swift Testing.
- Ayuda a escribir y organizar pruebas mediante macros.
Soporte de plataformas
SDK totalmente estático para Linux
- Permite compilar ejecutables para Linux con enlace completamente estático.
Nuevas distribuciones de Linux
- Agrega soporte oficial para Debian, Fedora y Ubuntu 24.04.
Rendimiento de compilación en Windows
- Ofrece toolchains precompilados para la arquitectura arm64.
- El gestor de paquetes de Swift paraleliza las compilaciones por defecto en Windows.
Próximos pasos
Descargar Swift 6
- Puedes instalar el toolchain oficial de Swift 6 en Swift.org/install.
Empezar con Swift
- El libro del lenguaje de programación Swift fue actualizado para reflejar la sintaxis y las funciones más recientes de Swift 6.
Explorar el ecosistema de paquetes
- Puedes explorar distintos paquetes en Swift.org/packages.
Participar
- Puedes compartir comentarios y experiencias sobre Swift 6 para contribuir al futuro desarrollo del lenguaje, las herramientas, el ecosistema de paquetes y la comunidad.
Resumen de GN⁺
- Swift 6 es una versión importante que se expande a diversas plataformas y dominios.
- Incluye varias funciones nuevas como concurrencia, interoperabilidad con C++ y Swift embebido.
- Introduce nuevas bibliotecas como Swift Testing y mejoras de productividad.
- Amplía el soporte para Linux y Windows y mejora el rendimiento.
- Swift 6 ofrece a los desarrolladores más posibilidades y eficiencia.
2 comentarios
Opiniones de Hacker News
Swift se está muriendo lentamente debido a los conflictos inherentes de su gobernanza
Estoy aprendiendo Swift recién ahora y hasta el momento me parece bien
Gracias a la concurrencia segura y a los
throwstipados, Swift empieza a parecerse a un Rust más amigableSwift 6 es un gran salto para el desarrollo multiplataforma con baterías incluidas
Empecé a aprender Swift y SwiftUI hace poco, y me sorprendió lo complejo que es el lenguaje
@observableObjectPensé que Swift se quedaría solo en macOS, pero me parece muy interesante
sigtermno funcionanSwift necesita decidir qué quiere ser y mantenerse en eso
Probé SwiftGodot, y usar Swift para desarrollo de juegos me resulta más interesante que las pausas del GC de C#
Poder migrar gradualmente es muy bueno
El lenguaje Swift se ha convertido en un monstruo
Parece que, para empezar con el gran lenguaje que es Swift, no queda más remedio que adoptar el ecosistema de Apple, bastante costoso, y eso termina siendo una barrera nada menor para los desarrolladores.