Swift System agora é código aberto e suporta o Linux

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

Swift System agora é código aberto e suporta o 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.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.