En la conferencia anual de Desarrolladores de Apple (WWDC 2014) se anunció la llegada de Swift, un nuevo lenguaje de programación para las plataformas OS X (mac) e iOS (iphone, ipad, ipod). Más allá del entusiasmo que nos causa querer utilizar lo más novedoso de la plataforma para crear nuestras aplicaciones, ¿Por qué usar otro lenguaje de programación? ¿Por qué cambiar si con objetive-c podemos construir de antemano grandiosas aplicaciones?
El Hardware y las exigencias del mercado de apps
Cada año fabricantes de hardware como Intel y AMD salen al mercado con procesadores más potentes. En medio de la batalla por mejorar el rendimiento, en la última década han lanzado al mercado procesadores multinúcleo capaces de realizar ejecución de instrucciones de manera simultánea, lo que se traduce en multiplicar la velocidad de ejecución de las aplicaciones. Los dispositivos móviles de última generación como el iphone y ipad, ya vienen equipados con procesadores multinúcleo que los hacen realmente rápidos. Para obtener el máximo provecho de estos avances del hardware, el software que se ejecuta en procesadores multinúcleo debe ser construido de forma especial. Los lenguajes tradicionales como objetive-c, si bien permiten construir aplicaciones que manejen este tipo de procesadores, no son ideales para hacerlo.Swift, un lenguaje funcional
Para suplir ese "vacío" que llega con el procesamiento en paralelo, Apple apeló a Swift como lenguaje alternativo de desarrollo. En este sentido, Swift sigue la filosofía de los lenguajes funcionales. Pero más que un lenguaje funcional, Swift reúne varias características que lo hacen muy conveniente, a la hora de crear apps para nuestros iphone/ipad:- Sintaxis moderna, incorpora características que lo hacen atractivo para el programador.
- Mantiene las características de un lenguaje orientado a objetos y añade las características de un lenguaje funcional.
- Mejora el manejo de colecciones e inicialización de variables, asignación de valores, etc.
- Maneja concurrencia de procesos.
- Minimiza el código repetitivo, mejora el manejo de colecciones y funciones.
- Es modular: permite definir funciones simples que pueden ser combinadas en varias formas.
- Es escalable: puede ser usado en pequeños o grandes proyectos, o en proyectos multiplataforma.