Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

Swift el nuevo lenguaje de Apple y cómo afecta al desarrollo actual para iOS

swift

Hace pocos días en el WWDC, Apple soltaba el bombazo: la aparición de un nuevo lenguaje, para desarrollar aplicaciones para iOS (y MacOS) y que venía a sustituir al veterano Objective-C, llamado Swift. Apple anunció también que sacaba una nueva versión de XCode (Xcode 6) en beta (sólo para desarrolladores que sean miembros del programa de desarrollo para iOS o para MacOS) que incluye ya el soporte para Swift (además de las betas de los SDKs de iOS8 y MacOS 10.10 Yosemite).También ponía de forma libre el manual de Swift (a través de iBooks o iTunes) así como un nuevo portal con toda la información necesaria para empezar a desarrollar en este lenguaje.

Por supuesto las reacciones en las redes sociales no se hicieron esperar, cosa lógica ante un cambio de tamaña magnitud. No en vano Objective-C ha sido desde siempre el lenguaje para desarrollar en plataformas Apple y es evidente que su reciente popularidad es debido al número de desarrolladores de iOS. Actualmente Objective-C ocupa el tercer lugar en el ranking de popularidad TIOBE:

image

Por supueste el ranking TIOBE no es la verdad absoluta ni eso significa que Objective-C sea el tercer lenguaje con más desarrolladores. De hecho la definición del ranking TIOBE (sacado de la propia web) es:

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Sean cuales sean los criterios que use exactamente TIOBE se puede ver la evolución de dicha popularidad en la página dedicada a Objective-C en TIOBE. De ocupar la posición 59 en diciembre del 2007 a la tercera posición en mayo del 2014. Es más que evidente que la popularidad de Objective-C se debe al desarrollo para Apple (y en concreto para iOS) que no a otra cosa. De hecho, fuera del ecosistema Apple, Objective-C apenas se usa.

Es por esa última razón que en nuestro curso de desarrollo para aplicaciones nativas para iOS se han incorporado módulos específicos de Objective-C. Por que entendemos que la gran mayoría (por no decir la totalidad) de alumnos no conocerán el lenguaje debido precisamente a su casi nula difusión fuera del ecosistema de Apple.

Pero ahora Apple anuncia Swift, un nuevo lenguaje de desarrollo, así que es lógico preguntarse… ¿Como afecta Swift a los desarrolladores actuales de iOS?

Por twitter ya circulan algunas bromas más o menos crueles sobre el tema, donde se pueden ver imágenes como esta: (sacada del tweet https://twitter.com/SwiftDevs/status/473880274343067649):

O bien esta otra (sacada del tweet https://twitter.com/SwiftDevs/status/473552426713485313):

Pero bromas más o menos crueles al margen… ¿cuánta realidad hay en ellas? ¿Es decir, cuán obsoletos se vuelven los conocimientos que se tengan hoy en día sobre el desarrollo para iOS? Pues la verdad es que los conocimientos siguen siendo perfectamente válidos. La razón principal es que swift es solo un nuevo lenguaje pero NO va acompañado de una nueva API ni de un nuevo paradigma de desarrollo. Desarrollar para iOS utilizando Swift, en lugar de Objective-C no es muy distinto. Cierto, la sintaxis es completamente diferente pero los conceptos fundamentales son los mismos: el paradigma de desarrollo continúa siendo el patrón MVC, los conceptos de interface builder (vistas, controladores, outlets, actions) funcionan de la misma manera… y la API subyacente sigue siendo Cocoa o Cocoa Touch. Desarrollar para iOS no es “sólo” conocer Objective-C: es conocer su filosofía así como la API que está por debajo. Y nada de esto lo cambia Swift. Incluso la gestión de memoria es igual (aunque Swift soporta solamente ARC que viene siendo el estándar de facto en Objective-C desde su aparición en XCode 4.2).

El curso de desarrollo de iOS de CampusMVP consta de 22 módulos de los cuales hay 5 dedicados a contar Objective-C. Los 17 módulos restantes explican conceptos de desarrollo para iOS7 (el paradigma, la API de Cocoa, acceso a distintos elementos del dispositivo tales como la cámara o el GPS, etc). Nada de lo explicado en estos 17 módulos cambia con la aparición de Swift: los conocimientos actuales para desarrollar aplicaciones iOS hoy siguen seguirán siendo totalmente válidos después de la aparición de Swift.

Swift no estará disponible de forma general hasta dentro de un tiempo, si no quieres esperar y quieres estar preparado para cuando llegue aprender ahora es la mejor opción.

Incluso conocer Objective-C cuando empieces con Swift es positivo: ayuda a entender algunas partes de Swift (creadas para facilitar la cooperación entre lenguajes). Amén de que muchas librerías y APIs existentes para iOS están escritas para Objective-C (aunque eso no imposibilita su uso desde Swift, ambos lenguajes pueden interoperar entre ellos).

Swift es otra opción, no excluyente con Objective-C, y de hecho está pensado para que ambos lenguajes coexistan e interactúen.

Personalmente no me cabe la menor duda de que Swift será el lenguaje de referencia en el desarrollo futuro de iOS: es mucho más moderno que Objective-C y su sintaxis es más amigable. Pero el lenguaje de desarrollo es solo una parte del desarrollo para una plataforma: la filosofía y las APIs existentes son la otra parte. Y esto no ha cambiado :)

Eduard Tomás Eduard es ingeniero informático, atesora muchos años de experiencia como desarrollador y ha sido galardonado como MVP por Microsoft en diez ocasiones. Colabora con la comunidad impartiendo charlas en formato webcast y en eventos de distintos grupos de usuarios. Es Certified Kubernetes Application Developer. Ver todos los posts de Eduard Tomás

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Comentarios (2) -

Pablo Roca
United Kingdom Pablo Roca

Buen articulo y cierto. Swift no rompe con la arquitectura subyacente actual, de hecho se ejecuta igual en iOS7, lo que le garantiza una buena aceptación para nuevos desarrollos. Cuando vi el anuncio del Swift de la keynote me dije "faster?" será mas rápido? mas optimizado en performance? .. eso habrá que verlo. Si lo es .. ya me voy directo a Swift. Pero mucho me temo que no lo va a ser .. veo comentarios de "Sorting a list of objects was taking longer than the objective c version - I estimate almost 50% longer" .. creo que en cuanto a rápido Apple se refiere a mas rápido para desarrollar con el, nada mas.

Objective C todavia intimida a muchos developers y parece que Apple quiere reducir esta fase de aprendizaje .. pero Swift no es la panacea y no es un RAD (mejor que no lo sea)

Esperemos que los managers no venga ahora intentando minimizar nuestro trabajo diciendonos .. "mira tu .. que esto es mas facil .. saca las cosas mas rapido" :)

Como resumen me quedo con este comentario "Put simply, Swift is a gateway drug to iOS for a lot of young (and old) programmers."

Responder

¡Muchas gracias por el comentario Pablo!

Responder

Pingbacks and trackbacks (3)+

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.