- Esta versão expande o Swift para mais plataformas e domínios
- O Swift é bem conhecido como linguagem para desenvolvimento de apps, mas também é excelente para vários outros usos, como bibliotecas, serviços em escala de internet e código sensível a desempenho
- O Swift 6 se expande ainda mais com novos recursos de programação de baixo nível, um subconjunto da linguagem Embedded Swift, suporte ampliado a Linux e Windows e novas APIs multiplataforma
Linguagem e biblioteca padrão
Concorrência
- O Swift 6 oferece segurança para evitar condições de corrida em código concorrente por meio de um novo modo da linguagem.
- Fornece avisos de segurança contra condições de corrida de dados por meio da flag do compilador
-strict-concurrency=complete.
- Inclui APIs de concorrência de baixo nível com uma nova biblioteca de sincronização.
Typed throws
- Agora é possível especificar na assinatura o tipo de erro que uma função pode lançar.
- Isso é útil para propagar tipos de erro em código genérico ou em ambientes com alocação de memória limitada.
Ownership
- Melhora o desempenho ao integrar tipos não copiáveis, introduzidos no Swift 5.9, ao sistema de genéricos.
- Usa a sintaxe
~Copyable para modelar recursos e otimizar desempenho.
Interoperabilidade com C++
- O Swift 6 oferece suporte a tipos move-only do C++, métodos virtuais, argumentos padrão e mais.
- A anotação
SWIFT_NONCOPYABLE permite expor tipos C++ como tipos não copiáveis.
Embedded Swift
- Inclui um subconjunto da linguagem e um modo de compilação para desenvolvimento de software embarcado.
- Oferece suporte a alvos bare metal ARM e RISC-V.
Inteiros de 128 bits
- Adiciona tipos inteiros de 128 bits com e sem sinal.
Ganhos de produtividade
- Introduz vários recursos para melhorar a produtividade, como
count(where:).
Depuração
Resumos personalizados no LLDB com @DebugDescription
- O macro
@DebugDescription permite personalizar como objetos são exibidos no LLDB.
Melhor desempenho de inicialização com módulos explícitos
- Melhora significativamente o desempenho de inicialização do depurador usando builds com módulos explícitos.
Bibliotecas
Foundation
- Unifica a implementação do Foundation em todas as plataformas.
- Expande para Linux e Windows a implementação em Swift usada no macOS e iOS.
Swift Testing
- Introduz uma nova biblioteca de testes chamada Swift Testing.
- Ajuda a escrever e organizar testes usando macros.
Suporte a plataformas
SDK totalmente estático para Linux
- Permite criar executáveis com linkagem totalmente estática para Linux.
Novas distribuições Linux
- Adiciona suporte oficial a Debian, Fedora e Ubuntu 24.04.
Desempenho de build no Windows
- Fornece toolchains pré-compiladas para a arquitetura arm64.
- O gerenciador de pacotes do Swift paraleliza builds no Windows por padrão.
Próximos passos
Baixar o Swift 6
- É possível instalar a toolchain oficial do Swift 6 em Swift.org/install.
Começar com Swift
- O livro da linguagem de programação Swift foi atualizado para refletir a sintaxe e os recursos mais recentes do Swift 6.
Explorar o ecossistema de pacotes
- É possível explorar vários pacotes em Swift.org/packages.
Participar
- Você pode compartilhar feedback e experiências com o Swift 6 para contribuir com o desenvolvimento futuro da linguagem, das ferramentas, do ecossistema de pacotes e da comunidade.
Resumo do GN⁺
- O Swift 6 é uma grande versão que se expande para várias plataformas e domínios.
- Inclui vários novos recursos, como concorrência, interoperabilidade com C++ e Embedded Swift.
- Introduz novas bibliotecas, como Swift Testing, e recursos de produtividade.
- Amplia o suporte a Linux e Windows e melhora o desempenho.
- O Swift 6 oferece mais possibilidades e eficiência para desenvolvedores.
2 comentários
Comentários do Hacker News
Swift está morrendo lentamente por causa de conflitos inerentes de governança
Estou aprendendo Swift agora e, até o momento, acho ok
Com concorrência segura e
throwstipado, Swift está começando a parecer um Rust mais amigávelSwift 6 é um grande salto para desenvolvimento cross-platform com baterias incluídas
Comecei a aprender Swift e SwiftUI recentemente e me surpreendi com o quão complexa a linguagem é
@observableObjectAchei que Swift ficaria restrita ao macOS, mas é muito interessante
sigtermnão funcionamSwift precisa decidir o que quer ser e manter isso
Testei o SwiftGodot, e usar Swift para desenvolvimento de jogos parece mais interessante do que a latência de GC do C#
Poder migrar de forma gradual é muito bom
A linguagem Swift virou um monstro
Parece que, para começar a usar essa ótima linguagem chamada Swift, não há como evitar adotar o ecossistema da Apple, que é um tanto caro, e isso acaba sendo uma barreira nada pequena para os desenvolvedores.