Apple lanza un nuevo lenguaje de programación llamado Swift. ¿Qué es y qué significa para los desarrolladores?

Swift logo

Debido al hecho de que tradicionalmente Apple ha aprovechado la WWDC para presentar nuevos productos (hardware/software) con el tiempo la gente ha olvidado que la WWDC de Apple es un congreso para desarrolladores, un lugar donde los programadores pueden venir y aprender nuevos trucos de programación.

Sin embargo, durante la keynote de este año Apple dejó muy claro que es la WWDC al enfocarse en dos cosas: el software y las personas que lo crean.

Aunque algunas personas quedaron decepcionadas por la ausencia de nuevo hardware en la WWDC de este año, es importante recordar que es el software el que hace que estos dispositivos sean lo que son, y que valga la pena tenerlos. Y muchos de los cambios que vimos en la WWDC vienen a facilitar las cosas a los desarrolladores. Y si los desarrolladores están contentos, entonces crearán más y mejores aplicaciones.

Dicho lo anterior, el anuncio más grande para los desarrolladores durante la WWDC fue Swift, un lenguaje de programación totalmente nuevo que pretende no sólo hacer que la escritura de aplicaciones sea mucho más fácil, sino también más rápido y más estable.

Todo esto está por verse, pero por lo visto, parece que Swift tiene potencial.

Tipos de lenguajes de programación

Hay muchas formas de conseguir que un dispositivo haga algo, si ese aparato es moderno y fresco como un teléfono inteligente o algo un poco más aburrido como un ordenador portátil o una PC.

La forma más hardcore de hacerlo es escribir en código de bytes sin procesar, o algo así como ensamblador, donde el programador básicamente crea cada instrucción a mano. Es decir cada vez que un número es cambiado en la memoria, cada vez que cambia un píxel en la pantalla, con cada acción posible. Los buenos desarrolladores pueden hacer grandes cosas programando de esta manera. Pero como pueden imaginar, escribir aplicaciones de esa manera es muy tedioso y propenso a errores.

Y es ahí cuando entran en escena los lenguajes de alto nivel. En lugar de una relación uno-a-uno entre lo que escribe el programador y lo que hace el equipo, un programador puede escribir un comando determinado, que se traducirá en el equipo, posiblemente, para hacer varias cosas. Los lenguajes de alto nivel son mucho más parecidos a los lenguajes reales, ya que tienen una sintaxis y una estructura formal.

lenguajes-programacion

Imagina que le pides a alguien que te traiga una Coca Cola de la nevera. En un lenguaje de alto nivel, dirías, "levántate del sofá y tráeme una Coca Cola de la nevera", y la persona debe encontrar la manera de hacer eso. Con un lenguaje de bajo nivel, tendrías que decir algo como: "Pon ambos pies en el suelo. Utilice tus brazos para levantarte del sofá. Pon el pie derecho delante de tu pie izquierdo, ahora el pie izquierdo en frente del pie derecho ... " ¿Entiendes la idea? Tienes que describir exactamente cada acción discreta entre el sofá y la cocina.

C es un lenguaje clásico de programación de alto nivel, y Objective-C, el lenguaje de programación más usado por Apple es un sabor de C. Sorprendentemente, Objective-C ha existido por más de 30 años, y C por más de 40. De modo que queda claro que ya es momento de que veamos algo nuevo.

Ahora bien, entre estos lenguajes de programación hay subconjunto llamado lenguajes de script. Esta distinción es un poco más difícil de explicar, pero básicamente, es un lenguaje de programación de alto nivel tradicional que necesita ser compilado antes de que algo suceda. La compilación es cuando todos esos comandos se traducen a instrucciones específicas que la computadora pueda entender.

La sintaxis se divide entre algo que un ser humano puede leer y algo que una computadora puede leer y, si todo va bien, el resultado de ello es una aplicación que realmente hace algo. Este proceso de compilación es a menudo lento, y se tiene que completar antes de poder ver si el programa que has escrito funciona. Cualquier pequeño fallo en la sintaxis a menudo no se identifica hasta bien entrado el proceso de compilación, lo cual frena el proceso de desarrollo.

Un lenguaje de programación de script, por el contrario, ejecuta lo que recibe, línea por línea. Puedes ver los resultados con mayor facilidad a medida que escribes, y no tienes que sentarte y esperar la compilación. Esto hace que el desarrollo sea rápido y (relativamente) fácil, pero las lenguas de scripting a menudo están limitadas en sus capacidades, por lo que normalmente son utilizados para cosas simples. Y por si fuera poco, su desempeño es a menudo limitado.

Python es un ejemplo de un lenguaje que se utiliza comúnmente para secuencias de comandos (scripting), y de hecho es el idioma que Apple utilizó como comparación durante la WWDC.

¿Y qué pasa con Swift?

Los lenguajes de script, como Python, tienden a ser más fáciles de escribir y de probar, pero no son particularmente poderosos y generalmente no funcionan bien. No es ideal cuando estás escribiendo, por ejemplo, un juego que necesita tener acceso a toda la potencia de tu dispositivo. Los lenguajes de programación tradicionales, como Objective-C, dan un mejor acceso a la energía del dispositivo y permiten la creación de aplicaciones más amplias, pero son difíciles de aprender y tediosos para compilar y probar.

Pero Swift promete tener todo lo bueno y nada de lo malo. Apple promete que, al menos en un par de puntos de referencia clave, es considerablemente más rápido de ejecutar que Python y más rápido aún que Objective-C. Pero, a pesar de eso, el lenguaje soporta lo que se llama "playgrounds" en el entorno de desarrollo Xcode, visualizando el código Swift en tiempo real, como un lenguaje de scripting.

Programación con Swift

A modo de ejemplo, durante la keynote un desarrollador hizo un juego en el que un globo se mueve arriba y abajo en un patrón regular. Para hacer eso, utilizó una simple función matemática (seno), que recordarás de tus días de trigonometría. La función seno nos da un abonito forma de onda, que sube y baja pasando por cero, lo que es perfecto para un globo flotante.

En Swift, el desarrollador fue capaz de asignar el valor de seno al globo con facilidad, y luego ver cómo ese valor cambiaba con la ejecución de la aplicación en un gráfico de líneas simples. Esto hace que sea increíblemente fácil de visualizar cómo el globo se mueve de manera que si algo no va bien, se pueda cambiar inmediatamente. Tradicionalmente, el desarrollador tenía que ejecutar el código a través de un compilador y luego ejecutarlo y esperar lo mejor. Ese proceso, en función del tamaño de la aplicación, puede tardar desde unos pocos segundos a unos pocos minutos o más.

Beneficios inmediatos

Tener la posibilidad de probar de forma rápida y sencilla una aplicación a medida que la escribes permite a los desarrolladores crear aplicaciones complejas con mayor rapidez. El proceso de compilación y de pruebas puede llegar a ser sumamente engorroso en una aplicación de tamaño considerable. Swift puede tener un impacto importante allí, ya que parece, que permitirá a los desarrolladores de aplicaciones liberar aplicaciones más y mejor probadas con mayor rapidez.

Además, Swift es un lenguaje muy conciso. Es decir, al igual que Python, no es necesario escribir mucho para hacer muchas cosas. Esto, también, podría acelerar el desarrollo de aplicaciones.

Por último, si Swift permite crear aplicaciones que se ejecuten más rápidamente que en Objective-C, podremos ver gráficos aún más impresionantes en los juegos (con la ayuda de la nueva interfaz Metal de Apple, que es otra caja de Pandora) y un comportamiento más sensible que en otras aplicaciones, todo ello sin tener que comprar un nuevo teléfono.

Preocupaciones inmediatas

Pero no todo es color de rosas, y la gran preocupación inmediata son los requisitos de aprender un nuevo idioma. Los programadores en general disfrutan de dominar el último y más grande. Pero hay toda una industria que se ha surgido para enseñarle a la gente a escribir aplicaciones para el iPhone. Obviamente todo eso se iría por la ventana a partir de hoy. Sí, puedes seguir creando aplicaciones en Objective-C, pero nadie las va a querer.

objectiv-c-book

La otra preocupación, es que al bajar la barrera de entrada con un lenguaje fácil de aprender y fácil de usar, podría dar lugar a que más desarrolladores novatos se lancen a crear aplicaciones que simplemente no sean muy buenas. Es posible, e incluso probable, pero lo mismo se podría aplicar a prácticamente cualquier mejora en el desarrollo de software desde que los primeros lenguajes de programación surgieron en los años 40.

Esperando a decir "Hola, mundo"

Como siempre, con este tipo de cosas hay que andarse con cautela. A Apple le encanta mostrar sobre el escenario los puntos de referencia y las estadísticas que muestran la superioridad de un producto determinado sobre otro, pero cuando se trata de un cambio radical como un nuevo lenguaje de programación, existen otras implicaciones. Tomará algún tiempo para entender realmente los beneficios.

Swift es un cambio radical, sin duda el cambio más grande que la comunidad de desarrolladores de Apple se ha visto desde el lanzamiento de la App Store.

Es un cambio con el que pocos o ninguno de los consumidores tendrán que lidiar, sólo disfrutar de los beneficios, y eso es lo mejor. Pero por ahora, al menos puedes explicarles a tus amigos qué es Swift y para qué sirve.

About Domadis Cabrera

Geek por naturaleza. Technorati por pasión. Emprendedor y amante del buen diseño. Disfruto probando cualquier cosa relacionada con la tecnología, da igual si es software o hardware. Viajero frecuente y amante de la adrenalina. Me divierte solucionar problemas y puedes seguirme en tu red social favorita, sólo tienes que buscarme por mi nombre.

Deja tu respuesta

d74ca0a187f0ec6b40686c25dcd3d262557c7e84d8ef45591f