7 pontos por GN⁺ 2024-09-18 | 2 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2024-09-18
Comentários do Hacker News
  • Swift está morrendo lentamente por causa de conflitos inerentes de governança

    • Existe um conflito entre a comunidade open source do Swift Working Group™ e a Apple como empresa
    • Como a Apple paga a maior parte dos salários, ela tem mais influência
    • Dívida técnica, como exceções hardcoded no compilador, permanece para sempre na base de código do compilador
    • A Apple empurra conceitos pela metade sem discussão para deixar a sintaxe do SwiftUI mais bonita
    • Continua sendo uma linguagem incrível, mas parece difícil que sobreviva bem nos próximos 10 anos se a Apple não a soltar
  • Estou aprendendo Swift agora e, até o momento, acho ok

    • Ao usar SwiftUI, aparece com frequência o erro "falha na compilação: o compilador não consegue fazer a checagem de tipos desta expressão em um tempo razoável; tente dividir a expressão em subexpressões distintas"
    • É chocante que o compilador esteja pedindo ajuda
  • Com concorrência segura e throws tipado, Swift está começando a parecer um Rust mais amigável

    • Não acho que eu vá usá-lo no dia a dia por causa do ecossistema pequeno de pacotes
    • Espero que o Foundation cross-platform avance numa direção que melhore isso
  • Swift 6 é um grande salto para desenvolvimento cross-platform com baterias incluídas

    • É uma grande vantagem porque o Foundation oferece muita coisa por padrão
    • Swift 6 parece uma tentativa de substituir C, C++, Rust, Zig etc. no longo prazo, com melhorias de baixo nível e recursos cross-platform suficientes
  • Comecei a aprender Swift e SwiftUI recentemente e me surpreendi com o quão complexa a linguagem é

    • Especialmente em relação a variáveis de instância reativas
    • Não entendo conceitos como @observableObject
    • Existem tantas maneiras diferentes que acabo só tentando até funcionar
  • Achei que Swift ficaria restrita ao macOS, mas é muito interessante

    • Tive problemas ao converter o compilador Swift do pacote do Ubuntu para Debian
    • A maior parte funciona, mas coisas simples como o sinal sigterm não funcionam
    • Swift é uma linguagem fantástica e acho que é a linguagem mais avançada e inteligente da atualidade
    • É impressionante ver como o SwiftUI foi implementado
    • A linguagem é fácil de usar e cheia de recursos e ideias avançadas que consideram o uso real dos desenvolvedores
    • Porém, as mensagens de erro do compilador e a documentação são bem pouco amigáveis
    • A maioria das bibliotecas ainda não funciona bem no Linux, mas se conseguir equilibrar segurança, velocidade e prazer no desenvolvimento, o futuro é promissor
  • Swift precisa decidir o que quer ser e manter isso

    • Há açúcar sintático demais e conceitos pela metade
  • Testei o SwiftGodot, e usar Swift para desenvolvimento de jogos parece mais interessante do que a latência de GC do C#

    • Ainda não há suporte para compartilhar bibliotecas de desenvolvimento para Windows
    • O tempo de compilação é longo
    • O changelog menciona melhorias no Swift Package Manager multithread no Windows
  • Poder migrar de forma gradual é muito bom

    • Migrar para o modo Swift-6 pode ser pesado, incluindo checagens de segurança contra corrida de dados
    • É possível usar as novas ferramentas e ainda continuar com a linguagem na versão 5.10
    • O mesmo pacote pode ser compilado em dois modos de linguagem, permitindo que bibliotecas avancem de versão e ainda deem suporte a clientes que não estão prontos
  • A linguagem Swift virou um monstro

 
bus710 2024-09-19

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.