swift

Swift vs. Objective-C

Desde la aparición de iOS8 en nuestros iPhones y iPads existe una nueva forma para los desarrolladores de construir aplicaciones móviles. Apple presentóen junio de 2014 Swift, un nuevo lenguaje de programación para iOS y OSX que según ellos agiliza y mejora el proceso de construcción de las aplicaciones tanto móviles como de escritorio.

Todos sabemos que a Apple le gustan las cosas controladas bajo sus normas y un nuevo lenguaje de programación exclusivo para su ecosistema suena muy de su estilo. Hay rumores que tarde o temprano este lenguaje seráopen source, pero como todo lo que rodea a la empresa de la manzana, de momento solo son rumores.

En ameu8 hemos valorado las ventajas y desventajas de empezar a desarrollar aplicaciones en este nuevo lenguaje, ya que si uno quiere, aún se pueden construir aplicaciones en el querido y a la vez odiado Objective-C. Nos gustaría dar unas pinceladas de las principales características que hacen este nuevo lenguaje sea conveniente o no para tu nueva aplicación.

Ventajas


Si estás interesado en empezar una nueva aplicación y quieres que exista una versión para iPhone y otra para ordenadores Mac, Swift es el lenguaje perfecto para ti. Swift funciona tanto para iOS como para OSX y esto hace que sea sencillo reutilizar componentes comunes en ambas aplicaciones. Esto redunda en menos tiempo de desarrollo al unificar tiempo del desarrollo y sacar más fácilmente tu producto al mercado en ambas plataformas a la vez.

objectivec

Según Apple, Swift es mucho más potente y tiene un rendimiento superior que su predecesor Objective-C. Esto no lo podemos probar directamente pero nos remitimos a los datos que Apple dio en la WWDC de 2014 cuando presentaron Swift. Se puede observar que un ordenamiento complejo de objetos en Swift es casi 4 veces más rápido que Python, mientras que Objective-C es solo 2,8 veces más rápido. Por otro lado, el sistema de cifrado RC4 (utilizado en algunos protocolos como TLS/SSL o WEP) también supera con creces a Objective-C en velocidad.

graphs

En cuanto a los desarrolladores, ¿que ventajas pueden obtener si utilizan Swift? En nuestra opinión, la principal ventaja es una nueva funcionalidad que Apple ha bautizado como Playgrounds. En ellas se pueden probar snippets o trozos de código y ver su resultado al instante sin perder tiempo en compilar y desplegar. De esta manera es muy sencillo realizar cambios sobre ese código y comprobar al momento la respuesta para que una vez satisfecho incorporarlo en tu proyecto. También se pueden realizar pequeñas pruebas de concepto en muy poco tiempo con esta funcionalidad.

Los desarrolladores también se pueden beneficiar de la sintaxis del nuevo lenguaje. Apple se ha centrado sobre todo en que su lenguaje sea preciso, fácil de leer y muy depurado. Con estas características es más fácil mantener el código y entenderlo si no has sido tu quien lo ha codificado.

Desventajas


Swift es un lenguaje completamente nuevo que no tiene ni un año de vida. Esto hace que aún no sea, ni mucho menos, un lenguaje sólido. ¿Quésignifica esto? Pues que es muy probable que Apple vaya haciendo pequeños ajustes en el lenguaje para que llegue a ser un lenguaje fiable. Ya vamos por la versión 1.2 y seguramente no serála última. Aunque es normal que los lenguajes vayan evolucionando según pasa el tiempo, los cambios que se hagan sobre Swift serán mucho más profundos y habituales que los que se puedan hacer sobre Objective-C.

Objective-C es un superconjunto de C y esto hace que se pueda utilizar código en este lenguaje. Las ventajas de esto son poder realizar operaciones a más bajo nivel lo que ayuda a realizar tareas menos abstractas y mucho más optimizadas. También que puedas utilizar librerías externas que estén hechas tanto en este lenguaje como en C++. C es el lenguaje más usado con diferencia y seguro que en algún momento has encontrado librerías en este lenguaje.

¿Hay algo más? 


more

Un punto muy a tener en cuenta es que el compilador de Apple admite que puedas escribir un proyecto utilizando clases en Objective-C y en Swift a la vez. Esto ayuda sobretodo si quieres migrar un proyecto de un lenguaje a otro o si quieres utilizar funcionalidades nuevas como Playgrounds en proyectos ya existentes.

También hay que resaltar que Apple estáapostando muy fuerte por Swift, lo que lleva a la conclusión que con el tiempo apostarán solo por un lenguaje y este seráSwift. Por lo que si quieres que tu aplicación dure mucho en el tiempo, conviene empezar a utilizar Swift para adelantarte a sorpresas. De todos modos, la comunidad de desarrolladores para iOS y OSX aún sigue utilizando Objective-C como lenguaje principal por lo que seguramente este cambio sea muy gradual en el tiempo.