¿Por qué Objective-C ha tenido una versión 2.0 desde hace mucho tiempo, e incluso Apple ha aumentado rápidamente Swift, de Swift 2.0 a Swift 3.0?

Gracias por el A2A …

ObjC era un lenguaje existente que NeXT decidió que era una gran cosa para usar (fue creado alrededor de 1984). Cuando Apple compró NeXT, ObjC vino para el viaje.

Usé ObjC, pero solo muy poco cuando NeXT todavía caminaba por la tierra. Mi vaga impresión es que no cambió mucho (si es que lo hizo) entre entonces y cuando Apple lo obtuvo, pero los marcos cambiaron mucho.

Eso no es muy sorprendente, ObjC es un lenguaje bastante pequeño. Antes de ObjC 2.0 era extremadamente pequeño. Algo así como “C más 8 cosas”.

ObjC 1.0 funcionaba lo suficientemente bien de todos modos, y se enfocaron en lograr que las personas usaran Carbon para cambiar a ObjC, y convertir a ObjC en un objetivo móvil al modificarlo hubiera sido contraproducente.

Como recuerdo vagamente, ObjC 2.0 sucedió (alrededor de 2006) en parte porque el cambio a un ABI de 64 bits se consideró como un buen momento para hacer cambios únicos “incompatibles”, incluso si no estaban realmente relacionados con 64 bits. O tal vez sucedía algo más, nunca trabajé para ese equipo. Esos cambios llevaron la sintaxis de ObjC un poco más en línea con los lenguajes más comunes.

Blocks y ARC llegaron más tarde, ambos “podrían haber” obtenido números de versión, pero no creo que nadie realmente estuviera tratando de convencer a alguien más de que ObjC era fundamentalmente diferente. Además, si bien esas son cosas enormes, eran cosas individuales (o pequeños grupos estrechamente relacionados en realidad). Por lo tanto, realmente no necesitaban agruparse en un número de versión.

Swift, por otro lado, es nuevo. Los nuevos idiomas cambian más rápido que los antiguos. A diferencia de ObjC Swift, ni siquiera es un nuevo idioma que se define en términos de un idioma existente. Entonces, no solo está cambiando más rápido porque es joven, sino que también cubre más terreno … Supongo que, en efecto, ObjC comenzó como un idioma medio nuevo y medio idioma de 15 años, mientras que Swift comienza 100% nuevo y tiene un montón de marcos de 1 a 20 años con los que es compatible.

Swift también está siendo promovido como un nuevo idioma, puede serlo. Todos quieren crear aplicaciones de iOS, por lo que Apple no tiene que rogar a las personas que vengan a la plataforma. No “por favor chicos, ObjC es en su mayoría solo C! ¡Puedes aprenderlo en un día! ¡Venga!”. Por el contrario, pueden decir: “Swift es genial, moderno, ayuda a escribir código rápido y seguro, invierte algo de tiempo y obtendrás mucho de vuelta. Además, es el futuro de iOS, y sabes que necesitas estar allí … ”

Por lo tanto, Swift tiene el lujo de que se le permita no solo hacer grandes cambios, sino también promocionarlos como grandes (aunque los días de “romperemos su código fuente en cada lanzamiento” están casi llegando a su fin).