A Apple informou que o Swift System agora é código aberto e que ele recebeu suporte ao Linux. Confira os detalhes dessa importante mudança.
A Swift é uma linguagem de programação desenvolvida pela Apple para desenvolvimento no iOS, macOS, watchOS, tvOS e Linux. Ela foi desenvolvida para manter compatibilidade com a API Cocoa e com código existente em Objective-C.
Em junho deste ano, os engenheiros da Apple lançaram o Swift System – uma nova biblioteca para fazer interface com tipos de moeda de baixo nível e chamadas de sistema.
Agora, a Apple abriu o código-fonte do Swift System e também adicionou suporte para Linux.
Swift System agora é código aberto e suporta o Linux
A ideia por trás do Swift System é apresentar uma solução completa para interfaces de sistema de baixo nível para todas as plataformas Swift suportadas. Então, vamos verificar o que há de novo nele:
Deixando interfaces C importadas para trás
A maioria dos sistemas operacionais que usamos hoje trabalha com suporte a algum tipo de interface de sistema escrita em C e tem permanecido a mesma por décadas.
Essas APIs podem ser usadas diretamente do Swift, mas essas interfaces de sistema com tipos fracos importados de C são propensas a erros e não gerenciáveis.
Por exemplo, em sistemas operacionais semelhantes ao UNIX, como Linux e SO da Apple, as funções mal digitadas têm vários contras e não conseguem utilizar a expressividade e segurança de tipo que se pode encontrar no Swift.
Apresentando interfaces idiomáticas Swift
O módulo Swift System apresenta vários recursos de linguagem para melhorar a expressividade e reduzir as chances de erro. Por exemplo, o System define a chamada de sistema aberta como uma função estática com argumentos padrão no namespace FileDescriptor:
imagem
Ao comparar esta versão com a versão original em C, você pode detectar diferenças significativas, como:
O sistema usa estruturas representáveis brutas e conjuntos de opções. Esses tipos fortes ajudam a identificar erros em tempo de compilação e são mais fáceis de converter de e para os tipos C mais fracos.
Os erros são lançados usando o mecanismo de linguagem padrão e não podem ser perdidos.
FilePath é um pacote de bytes gerenciado e terminado em nulo que está em conformidade com ExpressibleByStringLiteral – muito mais seguro de se trabalhar do que um UnsafePointer
É importante observar que System não é uma plataforma cruzada, mas uma biblioteca multiplataforma. Ele fornece um conjunto separado de APIs e comportamentos em cada plataforma com suporte, que reflete de perto as interfaces subjacentes do sistema operacional.
Portanto, uma única importação puxará as interfaces da plataforma nativa específicas para o sistema operacional que você escolher.