Swift incorporado no Raspberry Pi Pico

O alcance crescente de Swift para além das plataformas da Apple está despertando novo interesse, desde rodar em microcontroladores como o Raspberry Pi Pico até alimentar apps no Windows e código do lado do servidor. Comentadores elogiam seus enums com valores associados, correspondência de padrões e concorrência estruturada, muitas vezes comparando-os favoravelmente a Dart, Kotlin, Rust e .NET, mas apontam trade-offs em torno do tratamento de null, da complexidade da sintaxe e da semântica de copy-on-write. Muitos veem Swift como tecnicamente forte, mas limitado por lacunas nas ferramentas e por um ecossistema relativamente raso em plataformas não Apple, especialmente para UI e adoção em larga escala.

Recursos da linguagem Swift e enums / correspondência de padrões

  • Muitos comentaristas elogiam os enums de Swift com valores associados (tipos soma) e o switch exaustivo como algo simples, mas poderoso.
  • Isso é comparado aos clássicos “tagged unions” / unions discriminadas de ML, OCaml, F#, etc.; alguns argumentam que Swift está essencialmente redescobrindo ideias de longa data.
  • Alguns sentem que outras linguagens mainstream (especialmente as mais antigas, como Python, Java, C# historicamente) demoraram para adotar essas construções ou adicionaram variantes mais fracas.

Nullability, opcionais e refinamento de tipos

  • Grande subthread sobre if let / guard let de Swift versus a análise de nullabilidade baseada em fluxo ao estilo Dart/TypeScript.
  • Lado pró-Swift: a sintaxe separada de binding evita usos indevidos como “verificar e depois fazer force-unwrap”, torna refatorações futuras mais seguras e incentiva código explícito e legível no “caminho feliz”.
  • Lado pró-Dart/TS: a promoção de tipos por controle de fluxo é mais simples e menos verbosa; usar o mesmo if x != null que os desenvolvedores já esperam parece mais natural.
  • Alguns veem opcionais onipresentes como uma “nova cor” de função, potencialmente superutilizada e propagando incerteza pelo código.

Comparações com outras linguagens

  • Os enums de Kotlin são vistos como mais limitados que os de Swift; classes seladas de Kotlin são mais próximas, mas mais verbosas.
  • Dart 3 ganha patterns, classes seladas e exaustividade; alguns dizem que está convergindo para recursos parecidos com os de Swift, mas com mais cerimônia.
  • ML/F#/OCaml são citados repetidamente como arte anterior para correspondência de padrões e unions.
  • Swift é descrito como estando entre Rust e C++ em ergonomia, com tipos fortes, concorrência estruturada e ARC, em contraste com o borrow checker de Rust.

Swift além das plataformas da Apple

  • Experiências em Linux e Raspberry Pi são geralmente positivas para ferramentas sem GUI e servidores; alguns relatam uso tranquilo com frameworks como Vapor.
  • Há suporte para Windows e Android, mas ele é descrito como instável ou de nicho; ainda existem lacunas em depuração e no ecossistema.
  • O Embedded Swift (por exemplo, Raspberry Pi Pico, Zephyr) se beneficia da interoperabilidade com C/C++ e da integração com CMake; ainda está no começo, mas é promissor.

Ecossistema, UI e viabilidade

  • Há forte preocupação de que Swift seja fortemente acoplado às pilhas de UI da Apple; em outras plataformas, a falta de um framework de UI de primeira classe e o ecossistema de bibliotecas pequeno são vistos como grandes barreiras.
  • Alguns argumentam que uma linguagem é tão útil quanto seu ecossistema; embora Swift seja open source, a administração de longo prazo fora da Apple é incerta.

Ferramentas e experiência do desenvolvedor

  • As opiniões sobre Xcode e as ferramentas de Swift divergem bastante: alguns relatam estabilidade e boa produtividade, outros descrevem travamentos frequentes e uma experiência frustrante.
  • O suporte no VS Code e via LSP está melhorando, mas ainda não está no nível do Xcode; os ecossistemas .NET e Java são citados como mais maduros para trabalho multiplataforma.