Swift y Objective-C

Objective-C: historia completa, el lenguaje que Jobs amaba (incluido el origen del prefijo NS)

Cuando empiezas a estudiar desarrollo para iOS, hay un lenguaje con el que te encuentras tarde o temprano: una sintaxis extraña llena de corchetes y prefijos misteriosos como NSString.

5 min de lectura
Imagen de portada de Objective-C: historia completa, el lenguaje que Jobs amaba (incluido el origen del prefijo NS)

Cuando empiezas a estudiar desarrollo para iOS, hay un lenguaje con el que te encuentras tarde o temprano: una sintaxis extraña llena de corchetes y prefijos misteriosos como NSString.

Ese lenguaje es Objective-C.

Cuando lo encuentras por primera vez en código heredado, es fácil preguntarse: “¿De dónde salió esta sintaxis?” Al conocer su historia, el código se ve de otra manera.

En esencia, Objective-C es un lenguaje creado a principios de los años 80 al añadir los conceptos de objetos de Smalltalk a C.

El famoso prefijo NS procede de NeXTSTEP, el sistema operativo de NeXT, la empresa fundada por Steve Jobs.

Esto es lo que aprenderás en este artículo.

  1. El origen de Objective-C (C + Smalltalk)
  2. El origen y la razón técnica del prefijo NS
  3. Su época dorada con el iPhone
  4. Por qué sobrevivió a la era de Swift

¿Cómo nació Objective-C?

A principios de los años 80, dos ingenieros llamados Brad Cox y Tom Love tenían dos objetivos.

  • C: rápido, pero sin conceptos de orientación a objetos
  • Smalltalk: un lenguaje elegante orientado a objetos, pero demasiado lento

Su respuesta fue Objective-C: añadir una capa orientada a objetos muy fina sobre C, sin modificar C en absoluto.

Objective-C es un superconjunto estricto de C.

Todo el código C del mundo es código Objective-C válido sin modificaciones.

Veamos con un breve fragmento cómo es en la práctica.

// código C normal, también Objective-C válido tal cual
int sum = 1 + 2;

// Objective-CLo añadido: Smalltalkenvío de mensajes con este formato (corchetes)
NSString *text = [NSString stringWithFormat:@"total %d", sum];

Las dos primeras líneas usan la sintaxis de C tal cual; la línea con corchetes de abajo es todo lo que añade Objective-C.

El cuerpo viene de C, pero el alma —el modelo de objetos y el envío de mensajes— viene de Smalltalk. La sintaxis de corchetes [receiver message] es una herencia tomada de Smalltalk.

Puedes verlo como un plato completamente distinto preparado con los mismos ingredientes —C y orientación a objetos— casi al mismo tiempo que C++.


¿Qué significa el prefijo NS?

El origen del prefijo NS se remonta a la época de NeXT
El origen del prefijo NS se remonta a la época de NeXT

En 1985, Steve Jobs fue expulsado de Apple, la empresa que había fundado.

Después fundó NeXT, cuyo sistema operativo NeXTSTEP tenía Objective-C como lenguaje oficial de desarrollo.

El NS de NSString y NSArray es la abreviatura de NeXTSTEP. Incluso el código de las aplicaciones más recientes para iPhone de 2026 conserva el nombre de la empresa de Jobs de finales de los 80 como un fósil.

Pero ¿por qué añadir un prefijo? Hay una razón técnica.

  • Objective-C no tiene espacios de nombres
  • Los nombres de clase deben ser únicos globalmente, así que los nombres repetidos chocan
  • Por eso surgió la convención de añadir las iniciales de la empresa o del proyecto (NS para Apple, AF para AFNetworking)

Apple incluso indicó oficialmente que los prefijos de dos letras estaban reservados para Apple y que los terceros debían usar tres. Es un caso en el que la cultura compensó una carencia del lenguaje.

Swift ya no necesita esta convención porque incorporó espacios de nombres a nivel de módulo. Por eso String y Array, sin NS, se convirtieron en símbolos de la era Swift.


La época dorada con el iPhone

En 1996, Apple compró NeXT por 400 millones de dólares y Jobs regresó después de 12 años.

NeXTSTEP se convirtió en la base de Mac OS X y Objective-C pasó a ser el lenguaje oficial de Apple.

Después, en 2008, abrió la App Store. Objective-C era el único lenguaje disponible para crear aplicaciones para iPhone.

Con la llegada de desarrolladores de todo el mundo, el lenguaje que había sido minoritario durante más de 20 años se convirtió de repente en el más popular.

Según el índice TIOBE, fue elegido ‘Lenguaje de programación del año’ en 2012 y 2014, y llegó a ocupar el tercer puesto, detrás de C y Java.

En los primeros años de la App Store, todo el mundo creaba aplicaciones con este lenguaje
En los primeros años de la App Store, todo el mundo creaba aplicaciones con este lenguaje

¿Se sigue usando Objective-C?

Cuando Apple presentó Swift en 2014, parecía que la era de Objective-C llegaba a su fin. Sin embargo, más de diez años después, el lenguaje sigue vivo. Hay tres razones.

  1. Frameworks del sistema de Apple: UIKit y Foundation siguen teniendo sus raíces en Objective-C, así que el código Swift se comunica con ellos mediante bridging.
  2. Bases de código heredadas: no se pueden reescribir millones de líneas de código de la noche a la mañana, por lo que la demanda de desarrolladores de mantenimiento se mantiene.
  3. La naturaleza dinámica del runtime: es posible sustituir métodos durante la ejecución (method swizzling), por lo que los SDK de analítica aún dependen de este runtime.

P. ¿Debería aprender Objective-C desde cero?

Rara vez empezarás un proyecto nuevo con este lenguaje. Pero si eres desarrollador de iOS y trabajas con una base de código antigua, saber leerlo es una gran ventaja.

P. ¿Basta con saber Swift?

Swift es suficiente para desarrollar proyectos nuevos. Aun así, saber de dónde viene NS y por qué existen los corchetes te ayudará a entender mucho mejor los frameworks de Apple.


Resumen

Objective-C no es un lenguaje muerto, sino un veterano que se prepara para jubilarse. Creció fuera de Apple junto a Jobs, regresó con él y se convirtió en el corazón de la empresa más valiosa del mundo.

Cuando encuentres NSString en código antiguo, recíbelo con cariño. Esas dos letras contienen 40 años de historia.

Referencias

Seguir leyendo