¿Swift reemplazará a Objective-C?

¡Hola, gracias por una pregunta increíble!

Desafortunadamente, todavía no hay datos que respalden la afirmación, pero la tendencia sugiere que Swift podría reemplazar Objective-C en unos pocos años.

Swift es un lenguaje de programación relevante desarrollado recientemente por Apple, ya que se lanzó por primera vez en 2014. Después de 3 años de desarrollo de Swift, los programadores aún no han dejado de trabajar en él; ya ha habido varias actualizaciones, con una última versión de Swift 3.0 lanzado en septiembre de 2016.

Una observación interesante: estoy 100% seguro de que has oído hablar de aplicaciones como 2048 game, WordPress iOS o FireFox iOS browser. Sorprendentemente, el lenguaje de codificación de iOS en el que están escritas estas aplicaciones no es Objetivo, pero es Swift.

Las razones para esto pueden ser diferentes, pero algunas de las más comunes son que Swift es

  • Más rápido
  • lenguaje seguro
  • lenguaje de código abierto
  • requiere menos código para escribir
  • menos consumo de memoria
  • no hay encabezados en Swift
  • tiene una sintaxis de notación de puntos

Además, Swift tiende a expandirse no solo en la plataforma iOS, sino que también puede desarrollar para Linux usando Swift, y también puede probarlo para Android.

Entonces, sí, quizás sea muy probable que Swift reemplace el Objective-C en el futuro 🙂

¿C reemplazó el ensamblaje? ¿Objective-C reemplazó a C?

Probablemente no.

Lo que creo que Apple quiere que haga, y lo que podría hacer es convertirse en el idioma principal en el que las personas en el ecosistema de Apple, incluido Apple, escriben el código de la aplicación. Incluso eso llevará un tiempo, y ese futuro aún no es seguro, especialmente para la propia Apple.

Después, o en paralelo, Swift también podría expandirse más allá del código de nivel de aplicación, a código del lado del servidor, marcos, etc. Algunas personas ya están siguiendo este camino, por supuesto, pero aún no está claro si eso se convertirá en un enfoque común o un nicho

Independientemente, Objective-C probablemente seguirá vivo, pero puede convertirse en una nota al pie de página, algo utilizado solo por personas en casos especiales, o escribiendo tipos particulares de cosas en el ecosistema de Apple.

Benjamin Sandofsky tiene una buena reseña de esto:
Objetivo-C en un mundo veloz

Actualmente Swift no es tan maduro para reemplazar Objective-C de inmediato. Las estructuras de datos de Swift no son tan rápidas en comparación con las estructuras de datos respectivas disponibles en Objective-C.

Apple actualiza y aborda constantemente todos estos problemas conocidos en Swift, la última versión beta de Xcode 6.3 ha solucionado muchos errores y ha agregado muchas características en Swift.

Mi sugerencia personal acerca de que Swift se haga cargo de Objective-C es que va a suceder, pero tomará su curso de tiempo. Swift es el futuro lenguaje de programación para el desarrollo de aplicaciones para plataformas OS X e iOS.

Sí. Y creo que la gente elegirá Swift no porque Objective-C sea difícil de aprender o leer (no se queje entre corchetes). Objective-C es genial, me encanta. Pero Swift es mucho más moderno, tiene todas estas características que faltan en Objective-C.

Swift le permite escribir un código más expresivo y creo que es más importante en la programación del lenguaje que todo lo demás. Objective-C es bueno para ocultar cosas, algunas relaciones y dependencias pueden no ser tan obvias.

Si quieres más información con gráficos y estadísticas mira este video

Por supuesto. ¿Por qué más Apple lo ha introducido? El objetivo C es difícil de escribir en comparación con el Java de Android. Swift tiene excelentes características de lenguajes modernos y es mucho más legible que Objective C, por lo que ya está atrayendo nuevos desarrolladores. Además, la forma en que se puede integrar con el código de Objective C y C es tan impresionante como el nombre del lenguaje.

He estado escribiendo código en Swift durante los últimos 1,5 años a tiempo completo. Es bonito. 🙂

Además, estoy desarrollando la aplicación para iOS PyCon India 2015 en Swift. Es de código abierto. Compruébalo aquí: pythonindia / PyConIndiaIOS

Apple tiene la costumbre de abrazar vigorosamente el cambio. Será un inconveniente para los usuarios y desarrolladores actuales, a fin de satisfacer mejor las necesidades de los usuarios en el futuro.

Por ejemplo, solo esta semana, Apple ha dicho que las aplicaciones de Mac, que usan recolección de basura, no serán aceptadas en la tienda de aplicaciones, y que deberán migrarse a ARC.

Pero … radicales como Apple, no están locos.

Apple no atacará el sitio desde la órbita antes de evacuar primero a la mayoría de la gente del pueblo. Y la evacuación de Objective-C Town aún no ha comenzado. Acaba de comenzar un servicio regular de autobús a Swiftville.

Sí, es una ruta bastante popular. Pero no nos dejemos llevar.
Esta transición llevará años. Nadie cerrará Objective-C mientras la década tenga un “1” al comienzo.

Prodria pasar. Sin embargo, el equipaje de Pascal permaneció en Mac OS Classic mucho después de que Apple comenzó a hacer todo en C ++, y hasta el día de hoy hay un subterráneo de programadores de Pascal que mantienen las luces encendidas y la maquinaria en funcionamiento. (Free Pascal es bastante impresionante. Es posible que desee probarlo en algún momento.) Y partes importantes de Classic todavía estaban en el ensamblador 680 × 0 hasta el final porque la sobrecarga para el contexto cambia entre conjuntos de instrucciones fue significativamente mayor que la velocidad ventaja del código nativo de PowerPC.

Apple está bastante boquiabierto en estos días sobre lo que está usando para qué; sabemos que la pila Clang / LLVM, y Swift en sí, están escritos en C ++, y sabemos que la mayor parte del desarrollo de aplicaciones de Apple ha sido en Objective-C. Sería una pesadilla reescribir, por ejemplo, las páginas desde cero en Swift, especialmente después de quemarse en el fiasco de Final Cut Pro X. Sé que el Dock de Yosemite en adelante está basado en Swift, y las aplicaciones más recientes de Apple como Swift Playgrounds y la aplicación WWDC más reciente también están en Swift. Me sorprendería si el sistema operativo integrado de la Touch Bar no estuviera basado en Swift; deriva de watchOS, que casi con certeza comenzó después de que Swift hubiera hecho importantes avances internos. No me sorprendería demasiado si algunas de las cosas de back-end de Apple están migrando a Kitura, un marco web Swift.

Pero Swift no es lo suficientemente bajo para un poco de trabajo. El núcleo de Darwin es C. La infraestructura del controlador IOKit está en un subconjunto de C ++. Objective-C probablemente continuará ocupando el espacio en el medio allí, para Quartz, AppKit y similares. (Sospecho que Foundation será reemplazado por la versión Swift pura de código abierto en algún momento, porque la compatibilidad ABI significa que no importa particularmente si está en Swift u ObjC). Creo que algunas de las cosas de Pascal todavía existen en los restos de Carbón.

Entonces, aunque creo que Apple pondrá más esfuerzo en Swift que ObjC en el futuro, no podrán deshacerse del código heredado por completo.

Sí. WWDC dejó claro que todo va en una dirección rápida, y los únicos cambios que se están haciendo en Objective-C son para mejorar la interoperabilidad de Swift.

Sería difícil defender el objetivo de mantener Objective-C basado en el mérito técnico.

Pero esto no va a ser de la noche a la mañana. La comunidad de programación es una mezcla diversa. Hay primeros adoptantes, que cambiarán de dirección en un abrir y cerrar de ojos. Y también hay grandes instituciones que tienen el manejo de un glaciar, y no cambiarán a menos que sea absolutamente necesario.

No lo creo, el reemplazo ocurrirá en poco tiempo.

1. Como hay tantos frameworks y proyectos de código abierto escritos en Obj-C, Apple no puede reemplazarlo todo de una vez.
2. Apple sabe que hay tantos desarrolladores con mucha experiencia en Obj-C. No los obligará a todos a aprender un nuevo idioma.

Sí.

Si acaba de comenzar a aprender programación iOS, no se moleste en aprender Obj-C, aprenda Swift desde cero. Sin embargo, todavía hay muchas aplicaciones y muchos tutoriales más antiguos escritos en Obj-C. Nunca está de más saber ambos, suficiente de Obj-C para entenderlo al leer aplicaciones más antiguas.

Por qué swift va más alto que el objetivo c en estos días porque swift no es estable.
Cada pocos días, llega al mercado una nueva versión de swift con algunos cambios en syntex. Entonces nuestro código de aplicaciones no se ejecuta en xcode y muestra muchos errores.

Después de WWDC 16, podemos estar seguros de que Objective-C será reemplazado por Swift … eventualmente. En una de las sesiones, Apple mencionó que han reemplazado múltiples líneas de código en sus sistemas operativos a Swift. Un ejemplo que dieron es que en macOS Sierra, todo el dock está escrito en Swift.

También dijeron que la razón de este cambio no es solo por el bien, sino que descubrieron que sería mucho más eficiente y que podrían hacerlo en muchas menos líneas de código.

Además, muchas personas preferirían escribir en Swift que Objective-C (incluido yo mismo) porque está más cerca del inglés y se siente más natural que Objective-C. Además, Swift es más fácil de aprender y se actualiza cada año con nuevas mejoras y adiciones.

Por último, la intención de Apple probablemente fue eliminar gradualmente el Objetivo C porque lo hicieron de código abierto el año pasado para dar a muchas personas la oportunidad de usar Swift fuera de Xcode y el propio entorno de Apple.

Cuando se trata del desarrollo de productos Apple, creo que lo hará. Es posible que los desarrolladores de la vieja escuela no quieran aprender un nuevo idioma cuando ya tienen uno antiguo que también funciona (Obj-C). Pero los nuevos que comienzan el desarrollo de aplicaciones deberían aprender Swift. No hay razón para no hacerlo. Es más fácil, una sintaxis más clara y más divertido de escribir. Por supuesto, hay quienes quieren el desafío de escribir en un idioma más complejo. Bueno, Apple tiene soporte para ambos en el desarrollo de aplicaciones, ¡así que estamos bien!

More Interesting

Cómo llamar a funciones nativas de iOS desde Unity

¿Cuáles son las desventajas de iOS 10?

¿Cuáles son las probabilidades de que una aplicación realmente genere millones en iOS y / o Android?

Soy ingeniero de CS y tengo un MBA (marketing) y estoy listo para ser autónomo. ¿Debo aprender iOS o desarrollo web front-end?

¿Qué compañía es mejor para crear una aplicación de entrega en iOS y Android?

Soy un joven desarrollador de iOS independiente o con contrato que está lanzando puestos a tiempo completo, ¿qué debo tener en cuenta?

¿Hay alguna desventaja importante al incluir declaraciones de importación de lib en el archivo .pch?

¿Cuál es el ciclo de vida de la aplicación en iOS?

¿Existe un entorno en línea para el desarrollo nativo de iOS?

¿Hay empresas en la India que llevan a cabo programas de capacitación práctica para ingenieros de backend con experiencia en desarrollo de iOS y Android?

¿Qué podría hacer que una aplicación iOS se ejecute perfectamente en una configuración, pero no en otra?

¿Cómo hacer aplicaciones multiplataforma? ¿Codificas varias versiones separadas de la aplicación?

¿Cuánto debo dividir mi código en métodos / funciones separados más pequeños? A pesar de que ese fragmento de código solo se puede usar una vez y, como sabemos, siempre es posible que cada fragmento de código se pueda cambiar / editar en el futuro.

¿Qué pasarela de pago usarías para aplicaciones móviles y web?

¿Quién es el proveedor de mapas de Apple?