Debería usar Swift u Objective-C para aprender a desarrollar iOS?

Actualización 21-9-16

¡Woah! Han pasado muchas cosas en los últimos años desde que escribí mi respuesta original. Quería venir aquí y dar una actualización a esto.

Actualmente, mi respuesta ha dado un giro de 180 grados y creo firmemente que las nuevas aplicaciones deben usar Swift. Hay algunas excepciones a esta regla (como todas las reglas), pero quiero explicar primero mis razones para favorecer a Swift.

  • En primer lugar, el compilador de Swift es lo suficientemente estable y completo en cuanto a características como para ser utilizado en el día a día sin muchos problemas. Por supuesto, todavía hay problemas, pero son mucho menos y más espaciados de lo que solían ser.
  • Segundo, ¡Swift es simplemente un gran lenguaje! El sistema de tipos es solidario, pero no se siente su peso en ninguna parte. No sólo eso, los errores del compilador son cada vez mejores. Aunque es tedioso a veces, esos errores en promedio realmente conducen a una depuración más rápida y un desarrollo más rápido.
  • Finalmente, Swift es hacia donde va el mercado. Cada vez más, veo que nuestros alumnos consiguen entrevistas en Swift por encima de Objective-C. No sólo eso, la comunidad ha abrazado completamente el uso de Swift, y todas las nuevas características construidas por la comunidad vienen a Swift primero.

Tengo algunas excepciones a mi regla de usar Swift. Todavía hay algunas situaciones en las que Objective-C brilla:

  • Si necesitas interactuar con una vieja biblioteca de C/C++, Objective-C es simplemente mucho mejor.
  • Si estás haciendo una **tonelada** de trabajo de vídeo o audio. Esto se puede hacer 100% con Swift, pero me parece que esas bibliotecas de iOS son un poco viejas y crujientes y realmente se prestan mejor a Objective-C.

En Flatiron School, llegamos a esta conclusión hace unos meses y hemos estado trabajando sin descanso tanto para traducir todo nuestro Programa de Desarrolladores iOS de NYC a Swift como para lanzar un curso gratuito de Swift online. Compruébalo: Swift: Building iOS Apps. Swift es un lenguaje realmente increíble; deberías probarlo.

Respuesta original de 2014:

En resumen, no. Toda base de código actual va a ser objective-c. Toda biblioteca actual de terceros es objective-c. No necesitas saber obj-c para aprender swift pero te ayudará mucho. Conocer objective-c va a ser crucial durante al menos los próximos seis meses o un año. Siempre se te ocurrirán formas de retrasar el aprendizaje de algo. Saca a Swift de la ecuación.

Afortunadamente, aprender objective-c te va a ayudar inmensamente con Swift. Gran parte de la programación de iOS es simplemente aprender los frameworks. Aunque la sintaxis cambia de Obj-C a Swift, las propiedades, métodos y todo lo demás de estos frameworks es consistente. Por último, la mayoría de los materiales de aprendizaje para Swift asumen que ya conoces Objective-C y hay muchos paralelismos a propósito entre Objective-C y Swift. Aprende Objective-C, y luego, cuando lo necesites, aprende Swift. Será bastante fácil aprender ese segundo lenguaje.

Aprende Objective-C ahora. Si quieres algo de ayuda con Objective-C, he reunido algunos recursos en Flatiron School Pre-work para mi clase en The Flatiron School. Espero que te ayuden.