¿Usaría Swift u Objective-C si estuviera creando una aplicación nueva para una startup hoy?

TLDR; No a Swift por ahora.

C objetivo. Manos abajo. Si nos fijamos en SO, hay un grupo de programadores experimentados de Objective-C que tienen problemas con Swift solo por las cosas básicas. La documentación de Swift es terriblemente deficiente y todavía hay una falta de tutoriales para hacer funciones avanzadas de Swift. Swift aún se encuentra en sus primeras etapas: se lanzó a su primera versión beta este año. ¿Cuánto tiempo tardó Rails y otros idiomas en estabilizarse?

Sin embargo, supongamos que Swift funcionaba perfectamente bien. Muchas herramientas excelentes / bibliotecas de terceros están construidas para Obj-C y aún deben ser portadas a Swift.

Bien, ahora supongamos que Swift es estable Y su desarrollador puede hacer una buena aplicación en Swift. Ahora su desarrollador principal ha dejado su empresa y necesita un reemplazo. Descubrirá que la mayoría de los desarrolladores están trabajando para admitir aplicaciones que tienen código heredado; muchas empresas aún necesitan admitir iOS 6.1. Cuando llegue iOS 8, dejarán de ser compatibles con 6.1 pero continuarán siendo compatibles con 7.0. Nadie va a reescribir una aplicación complicada solo para traducirla a Swift. Esto significa que la mayoría de los desarrolladores de iOS seguirán escribiendo Obj-C exclusivamente . Su grupo de desarrolladores talentosos para su posición de liderazgo se ha reducido significativamente porque eligió Swift.

Swift puede eventualmente reemplazar Objective-C, pero tomará años para que la tasa de adopción aumente y las personas obtengan experiencia en el mundo real. Yo diría que se volverá más viable en aproximadamente 3 años. Todo el mundo lo está promocionando en este momento porque es un factor ‘brillante’. Es bueno jugar con él, pero hablando de manera realista no hay absolutamente ninguna razón para apresurarse.

Acabo de entrevistarme en un lugar que obtuvo 50 millones de fondos y acordaron exactamente las mismas razones. Tienen tanto tiempo y recursos para verter en su aplicación como casi cualquier compañía podría soñar. Pero deliberadamente eligieron no elegir Swift debido a lo inmaduro que es actualmente.

“Buscando estar a la vanguardia” es una especie de término de marketing de BS: no es un plan de negocios o un plan de ingeniería, a menos que se dirija específicamente a un segmento muy pequeño de clientes de estilo de vida que lo comprarán solo porque está escrito en Haskell.

Use el lenguaje de programación que le permita implementar su producto más rápidamente y que le permita cambiarlo más rápidamente. No base esto en lo que dice Apple, hágalo en lo que es adecuado para usted y su equipo de desarrollo.

Si tuviera que elegir uno de esos, sin saber nada más, elegiría Objective-C porque es mucho más fácil encontrar programadores calificados y experimentados y porque la tecnología es más madura que Swift, eliminando riesgos innecesarios.

Sin embargo, al crear un inicio para ciertos tipos de aplicaciones, podría estar más inclinado a usar C #, Java o incluso AIR, por lo que la aplicación podría ejecutarse en múltiples plataformas y no bloquearse en los dispositivos de Apple. Me da la oportunidad de pivotar fácilmente en un nicho de mercado de Andriod, por ejemplo.

¡¡Si por su puesto!! Si echas un vistazo a los nuevos tutoriales de la WWDC, notarás que todos los archivos de ejemplo también son rápidos. Aunque puede ser muy tentador ir con CI objetivo, sugeriría que se esfuerce un poco más y que vaya rápido.

En aproximadamente un año, encontrará un menor soporte para sus nuevas funciones y actualizado para su aplicación.

Supongo que depende de cuándo quieras enviar tu aplicación. Si necesita enviar la aplicación antes de que se lance iOS 8, debe hacer que el desarrollador aprenda Objective-C. Si no, iría con rapidez ya que la gente ha estado diciendo que reemplazará a Objective-C en el futuro.