Swift

Swift

Acabo de terminar de desarrollar mi primer proyecto enteramente escrito en el nuevo lenguaje de programación adoptado por Apple para las implementaciones nativas para iOS: Se trata se Swift. digo nuevo porque, aunque llevan ya más de dos años introduciendolo, ha evolucionado recientemente hacia su version 3, concretamente a día de hoy ya estamos en la 3.1.1. y es bastante diferente a las anteriores.

Lo primero que sentí, como imagino que le ocurrió a todo desarrollador iOS, fue incertidumbre, no ante lo desconocido, ya que estoy ya a estas alturas más que acostumbrado a afrontar nuevos retos, lenguajes, tecnologías y artefactos que tienen a bien lanzar por aquí y por allí como no puede ser de otra manera, se llama progreso. El problema más bien era temer por si se trataba de una nueva estravagancia de Apple.
No es que la estravagancia en si sea mala o reprochable, pero si hacen que se trate de “voy a ser diferente y muy cool aunque eso signifique complicar las cosas”, como ya a sido desde el principio la tendencia de Apple con iOS, entonces estariamos en un nuevo problema y sin razón aparente. Bastante tuvimos ya con tener que tragar con Objective-C como para que ahora… Pero no a sido así!!!

En muchos otros aspectos Apple parece ya haberse dado cuenta de que debe ir dejando de lado el lema “Antes muerta que sencilla” y auspiciar técnicas y tecnologías más prácticas y útiles. El cambio de lenguaje definitivamente va en esa linea.
Los cambios han ido siendo evidentes con la sucesiva llegada de las nuevas versiones de su IDE Xcode: primero fué intruducir un solicitado a voces control automático de memoria o Automatic Reference Counting (ARC), luego se pasó de los terribles .xib a los .storyboard para facilitar la implementación de los interfaces, unificando también el diseño para iPhone y iPad en todas sus variantes.
Más recientemente han sido temas ajenos a la programación pero que traian más aún de cabeza si cabe a la comunidad desarrolladora para iOS, como a sido la automatización de la firma y aplicación de certificados a una compilación que se pretende publicar, el desbloqueo absurdo a la utilización del famosisimo SVN para control de versiones y su total integración en Xcode… en definitiva sucesivas “bajadas de la burra” a las que se ha visto avocada la arrogancia heredada de su caprichoso Dios, el señor Jobs, en aras de un mejor y más rapido desarrollo de Apps.

Pues bien, ya puedo decir que el cambio de Objective-C a Swift no solo es otro de estos cambios en la misma linea de mejora… es quizá el mayor y más fuerte de estos cambios!!!

Ha resultado ser a mis ojos un gran lenguaje de programación, muy bien pensado, que puede seguir resultando algo raro o distinto a programadores consagrados en lenguajes mucho más famosos o extendidos, no olvidemos que seguimos en el mundo Apple y todo debe tener algún toque estrafalario como mandan sus canones, pero que nada tiene que ver con la falta de sentido común que arrastraba Objective-C a pesar de haber intentado evolucionarlo.

Swift es mucho más amigable, ¡sin punteros!, ¡sin corchetes!, ¡sin archivo de interfaz separados de la implementación!… en definitiva más rápido de escribir con codigo resultante más claro, entre otras cosas gracias a las nuevas APIs Foundation… ¡desaparece el prefijo NS que estaba en todo! clases tales como NSDate, NSTimer y NSURL ahora solo son Date, Timer y URL en el código Swift. Es el “nuevo paso” despues de NeXTStep que ya “olía”… son ahora compatibles con sistemas operativos basados en Linux gracias a la nueva y más simple sintaxis.

Se introduce el utilisimo manejo de errores con bloques “try” y “catch” que tanto echo de menos al salir de Java.
A pesar de ser un lenguaje fuertemente tipado, su declaración no siempre es necesaria gracias a su capacidad de inferir tipos, lo cual es útil en innumerables ocasiones, por ejemplo con variables de vida corta y poca relevancia en las que no queremos perder demasiado tiempo.

Son estas unas cuantas razones por las que a sido para mi muy grato el cambio de lenguaje. Podemos seguir diciendo que Apple sigue en muy buena linea arreglando desaguisados crónicos que habia cometido en su apartado iOS.

Si siguen en esta senda, por fin podremos dejar de criticar decisiones incomprensibles y queradá claro que se equivocaban desde el principio y que la realidad los esta obligando a poner las cosas en su sitio, eso si, también estaremos por fin ante una tecnología movil soberbia y de grandisima calidad con un entorno de desarrollo al fin a la altura de las circustancias, pero les queda aún algo de camino, o sino ¿a que viene que a estas alturas aun no se pueda refactorizar código Swift en el Xcode?!?!?!