Aug.02

Programación IOS… ¿que es Swift?¿y ahora que? Pros y contras

Hace unas semanas Apple nos sorprendió a todos anunciando el lanzamiento/adopción de SWIFT,  un nuevo lenguaje para los desarrollos que se hagan  a partir de IOS 8.  La idea de Apple detrás de este lanzamiento es la de proporcionar a su comunidad  un lenguaje de programación mas potente, flexible, seguro y sencillo de codificar. Para apoyar el anuncio pusieron a disposición de todos un documento de más de 500 paginas ( “The Swift Programming Language” ) descargable gratuitamente  a través de iTunes para que nos pudiéramos ilustrarnos e inicianosr en el mismo.  Además han lanzado un blog para ayudarnos paso a paso a aprender a programarlo.

Después de mucho leer sobre el tema y de empezar a trastear con el, y ya que estamos con una serie de entradas sobre desarrollo IOS,  no quería dejar pasar la ocasión  de comentar mis primeras (primerísimas) impresiones. Sobre todo intentaré poner el foco en las ventajas y desventajas que le veo respecto a lo que la comunidad de desarrolladores IOS estábamos utilizando hasta el momento.

 

Objetive C Vs Swift

 

¿Por que SWIFT?

Con la introducción en los últimos años de novedades como “Automatic Reference Counting”  (bendito ARC), el uso de Storyboards (en vez de .xib) y el uso de Autolayaouts, a mi humilde entender,  Apple ya había simplificado bastante el proceso de desarrollo en aquellas cosas que eran realmente tediosas. ¿Por que ahora esto? Sinceramente creo que Apple pretende simplificar el proceso al máximo, acercándolo a mas y mas gente a base de eliminar la necesidad de manejar elementos y patrones complejos como pudieran ser los punteros, referencias, etc.

 

Compatibilidad

Lo primero que me vino a la cabeza cuando lo estaba leyendo era la compatibilidad. ¿Será compatible con Objetive C? ¿Podrán convivir juntos? Según Apple la respuesta es sí, usará el compilador LLVM de Apple así que su idea es que ambos sean compatibles y convivan de manera que nuestra adaptación se pueda ir haciendo paulatinamente a la vez que los nuevos desarrolladores empiezan a programar IOS con las ventajas de Swift y sin conocimientos de Objetive C. Los desarrolladores que tenemos ya cierta experiencia en una tecnología solemos tener alergia a estos cambios, no por no reciclarnos (eso forma parte de la belleza de esta profesión) sino porque nos horroriza la posibilidad de tener que tirar a la basura nuestras librerías de código. Es por esto que le auguro un lento aterrizaje, por ejemplo yo mismo no me voy a lanzar como un loco a programar en Swift a menos que sea necesario, iré probándolo, usándolo en algunos desarrollos  y adaptando mis librerías poco a poco, sin traumas.

 

Novedades interesantes

Así a primera vista lo que mas me ha llamado la atención es el Developer Playground. Viene a ser un entorno de desarrollo interactivo en el que según vas desarrollando puedes ir viendo los estados de las variables, la salida del programa, un timeline y resultados en tiempo real, sin la necesidad de hacer “debug”. La verdad es que suena bien y esto si que me tienta…

 

Developer Playground

 

¿Diferencias?

Pues todas. La verdad es que con un primer vistazo ya se aprecian diferencias muy notables, Swift a primera vista se me parece mucho mas a lenguajes tipo scripting  como Python o Ruby que a Objetive C con lo que podéis imaginar que las diferencias darían para un montón de posts.  Partiendo de esa base y de que sintácticamente no se van a parecer demasiado, en este post simplemente los enfrentaré en líneas generales.

 

    • Potencia y rendimiento: Sin duda aquí Swift se lleva la palma, posee un nivel de abstracción mayor que Objetive C y, por lo tanto, el rendimiento es mejor.

  • Seguridad: Según Apple Swift es más seguro que Objetive C. Es bastante razonable pensar que pueda ser así, al ser mas estricto e interactivo, igualmente Objetive C viene derivado de Small (años 70) con lo que la afirmación de Apple es bastante verosímil.
  • Sencillez y curva de aprendizaje: En este punto voy a llevar la contraria a Apple. Después de un primer vistazo, por lo menos a mi,  no me parece que sea mas sencillo de aprender ni mucho mas intuitivo que Objetive C, más bien al revés.

 

swift-objective-c

 

En cualquier caso esto es solo una primerísima aproximación. De momento Swift es una sombra en la lejanía que llegará en los próximos meses pero, si Apple cumple con su promesa de compatibilidad y coexistencia pacifica con Objetive C,  supongo que su adopción por parte de la comunidad de desarrollo será lenta y gradual. Al menos yo intentaré aterrizar en Swift pasito a pasito e iré adaptándome y adaptando mis librerías de código poco a poco, sin traumas.

Share this Story:
  • facebook
  • twitter
  • gplus

About Roger

Leave a comment