Swift es un lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo de aplicaciones para iOS y macOS. Fue presentado en WWDC 20147 y está diseñado para integrarse con los Frameworks Cocoa y Cocoa Touch, puede usar cualquier biblioteca programada en Objective-C y llamar a funciones de C. También es posible desarrollar código en Swift compatible con Objective-C bajo ciertas condiciones. Swift tiene la intención de ser un lenguaje seguro, de desarrollo rápido y conciso. Usa el compilador LLVM incluido en Xcode 6. En el año 2015 pasó a ser de código abierto.
Tipos de Datos
Swift es un lenguaje fuertemente tipado, aunque su declaración no siempre es necesaria gracias a su capacidad de inferir tipos. Los tipos de datos se dividen principalmente en dos grupos. Los Tipos de valor, y los Tipos por referencia, se diferencian principalmente en como son asignados.
- Al asignar un Tipo de valor se guarda una copia de su contenido. Se recomienda su uso cuando se requiere copiar su información o se vaya a trabajar en múltiples hilos.
- Al asignar un Tipo por referencia se asigna una instancia compartida que es mutable aún si son usadas en constantes, es decir modificar una instancia se verá reflejado en todas las variables y constantes que la compartan. Se recomienda su uso cuando se requiera compartir datos mutables.
Características
Las características de Swift están diseñadas para trabajar juntas y crear así un lenguaje potente, pero divertido de usar. Algunas características adicionales de Swift serían:
- Unificación de Closures con funciones punteros.
- Tuplas y valores de retorno múltiples.
- Genéricos.
- Iteracción rápida y concisa sobre un rango o colección.
- Estructuras con soporte para métodos, extensiones y protocolos.
- Patrones de programación funcional, por ejemplo: map y filter.
- Potente gestión de errores.
- Control de flujo avanzado con las palabras claves do, guard, defer, y repeat.
Seguridad
Swift fue diseñado desde el principio para ser más seguro que los lenguajes basados en C. Las variables siempre se inicializan antes de ser usadas, los arreglos y los números enteros son comprobados para evitar desbordamiento, y como ya mencioné, la memoria se gestiona de forma automática.
Otra característica de seguridad es que por defecto los objetos en Swift nunca pueden ser nulo, y si tratáramos de hacer uso de un objeto nil (sería el equivalente a Void en otros lenguajes) resultaría en un error en tiempo de compilación. Esto hace que la escritura de código sea mucho más limpia y más segura, al mismo tiempo que evita una causa frecuente de errores en tiempo de ejecución. Sin embargo, hay casos en los que es apropiado el uso de nil, y para estas situaciones Swift tiene una característica innovadora conocida como Optional. Un valor opcional puede contener nil, pero la sintaxis del lenguaje Swift nos obliga a tratar de manera segura con este tipo de contenedor utilizando el caracter “?” para indicar al compilador que entendemos el comportamiento y que lo vamos a manejar con precaución.
que cool