En junio de este año, los ingenieros de Apple presentaron Swift System, una nueva biblioteca para interactuar con tipos de moneda de bajo nivel y llamadas al sistema. Hoy, Apple Swift System de código abierto y también agregó soporte para Linux.
La idea detrás de Swift System es presentar una solución integral para interfaces de sistema de bajo nivel para todas las plataformas Swift compatibles. Así que echemos un vistazo a las novedades:
Dejando atrás las interfaces C importadas
La mayoría de los sistemas operativos que usamos hoy funcionan con algún tipo de interfaz de sistema escrita en C y ha permanecido igual durante décadas. Estas API se pueden usar directamente desde Swift, pero estas interfaces de sistema de tipo débil importadas desde C son propensas a errores y no se pueden administrar.
Por ejemplo, en sistemas operativos similares a UNIX, como Linux y el sistema operativo de Apple, las funciones de tipo débil tienen varios inconvenientes y no utilizan la expresividad y la seguridad de tipos que se pueden encontrar en Swift.
Lea también: El lenguaje de programación Swift ahora está disponible en Windows 10
Presentamos las interfaces rápidas idiomáticas
El módulo Swift System introduce varias funciones de lenguaje para mejorar la expresividad y reduce las posibilidades de error. Por ejemplo, System
define la llamada al sistema abierto como una función estática con argumentos predeterminados en el espacio de nombres FileDescriptor:

Al comparar esta versión con la versión original en C, puede detectar diferencias significativas como:
System
utiliza conjuntos de opciones y estructuras representables sin formato. Estos tipos fuertes ayudan a identificar errores en tiempo de compilación y son más fáciles de convertir hacia y desde los tipos C más débiles.- Los errores se lanzan utilizando el mecanismo de lenguaje estándar y no se pueden perder.
FilePath
es una bolsa de bytes administrada con terminación nula que cumple conExpressibleByStringLiteral
, mucho más seguro trabajar con él que unUnsafePointer<CChar>
.
Es importante señalar que System
no es una biblioteca multiplataforma sino multiplataforma. Proporciona un conjunto separado de API y comportamientos en cada plataforma compatible, que refleja fielmente las interfaces del sistema operativo subyacente. Por lo tanto, una sola import
incorporará las interfaces de la plataforma nativa específicas para el sistema operativo que elija.
0 Comentarios
Dejanos tu comentario para seguir mejorando!