Swift e Objective-C

Objective-C: história completa, a linguagem que Jobs amava (incluindo a origem do prefixo NS)

Quando você começa a estudar desenvolvimento para iOS, há uma linguagem que inevitavelmente aparece: uma sintaxe estranha cheia de colchetes e prefixos misteriosos como NSString.

5 min de leitura
Imagem de capa de Objective-C: história completa, a linguagem que Jobs amava (incluindo a origem do prefixo NS)

Quando você começa a estudar desenvolvimento para iOS, há uma linguagem que inevitavelmente aparece: uma sintaxe estranha cheia de colchetes e prefixos misteriosos como NSString.

Essa linguagem é Objective-C.

Ao encontrar essa linguagem pela primeira vez em código legado, é fácil pensar: “De onde veio essa sintaxe?” Quando você conhece a história, o código passa a parecer diferente.

Em resumo, Objective-C é uma linguagem criada no início dos anos 1980 ao adicionar os conceitos de objetos do Smalltalk à linguagem C.

O famoso prefixo NS vem do NeXTSTEP, o sistema operacional da NeXT, empresa fundada por Steve Jobs.

Veja o que você vai aprender neste artigo.

  1. Como o Objective-C nasceu (C + Smalltalk)
  2. A origem e o motivo técnico do prefixo NS
  3. O auge com o iPhone
  4. Por que sobreviveu à era do Swift

Como o Objective-C nasceu?

No início dos anos 1980, dois engenheiros chamados Brad Cox e Tom Love tinham dois objetivos.

  • C: rápido, mas sem conceitos de orientação a objetos
  • Smalltalk: uma linguagem elegante orientada a objetos, mas lenta demais

A resposta deles foi o Objective-C: adicionar uma camada de orientação a objetos muito fina sobre C, sem alterar C de forma alguma.

Objective-C é um superconjunto estrito de C.

Todo código C do mundo continua sendo código Objective-C válido sem modificações.

Vou mostrar em um pequeno trecho de código como isso funciona na prática.

// código C comum — também é Objective-C código válido como está
int sum = 1 + 2;

// Objective-CO que foi adicionado: Smalltalkenvio de mensagens neste formato (colchetes)
NSString *text = [NSString stringWithFormat:@"total %d", sum];

As duas primeiras linhas usam a sintaxe de C sem alterações; a linha com colchetes abaixo é tudo o que o Objective-C adiciona.

O corpo vem de C, enquanto a alma — o modelo de objetos e o envio de mensagens — vem do Smalltalk. A sintaxe de colchetes [receiver message] é uma herança trazida do Smalltalk.

Pense nele como um prato completamente diferente feito com os mesmos ingredientes — C e orientação a objetos — quase na mesma época que o C++.


O que significa o prefixo NS?

A origem do prefixo NS está na época da NeXT
A origem do prefixo NS está na época da NeXT

Em 1985, Steve Jobs foi expulso da Apple, a empresa que havia fundado.

Em seguida, fundou a NeXT, cujo sistema operacional NeXTSTEP tinha Objective-C como linguagem oficial de desenvolvimento.

O NS de NSString e NSArray é a abreviação de NeXTSTEP. Até o código dos aplicativos mais recentes para iPhone em 2026 ainda traz o nome da empresa de Jobs do fim dos anos 1980 como um fóssil.

Mas por que adicionar um prefixo? Há um motivo técnico.

  • Objective-C não tem namespace
  • Os nomes das classes precisam ser globalmente únicos, então nomes iguais entram em conflito
  • Por isso surgiu a convenção de adicionar as iniciais da empresa ou do projeto (NS para Apple, AF para AFNetworking)

A Apple chegou a orientar oficialmente que prefixos de duas letras eram reservados para a Apple e que terceiros deveriam usar três letras. É um caso em que a cultura preencheu uma lacuna da linguagem.

O Swift não precisa mais dessa convenção porque passou a ter namespaces no nível de módulo. Por isso String e Array, sem NS, se tornaram símbolos da era Swift.


O auge com o iPhone

Em 1996, a Apple comprou a NeXT por 400 milhões de dólares, trazendo Jobs de volta após 12 anos.

O NeXTSTEP se tornou a base do Mac OS X, e o Objective-C virou a linguagem oficial da Apple.

Então, em 2008, a App Store foi aberta. Objective-C era a única linguagem disponível para criar aplicativos para iPhone.

Com a chegada de desenvolvedores do mundo todo, a linguagem que havia sido minoritária por mais de 20 anos tornou-se, de repente, a mais popular.

Segundo o índice TIOBE, ela foi escolhida como ‘Linguagem de programação do ano’ duas vezes, em 2012 e 2014, e chegou ao terceiro lugar, atrás de C e Java.

Nos primeiros anos da App Store, todo mundo criava aplicativos com essa linguagem
Nos primeiros anos da App Store, todo mundo criava aplicativos com essa linguagem

O Objective-C ainda é usado hoje?

Quando a Apple anunciou o Swift em 2014, parecia que a era do Objective-C estava chegando ao fim. No entanto, mais de dez anos depois, a linguagem continua viva. Há três motivos.

  1. Frameworks de sistema da Apple: UIKit e Foundation ainda têm raízes no Objective-C, então o código Swift se comunica com eles por meio de bridging.
  2. Bases de código legadas: não é possível reescrever milhões de linhas de código da noite para o dia, por isso a demanda por desenvolvedores de manutenção continua estável.
  3. A natureza dinâmica do runtime: é possível substituir métodos durante a execução (method swizzling), então SDKs de análise ainda dependem desse runtime.

P. Preciso aprender Objective-C do zero hoje?

Você raramente começará um projeto novo com essa linguagem. Mas, se você é desenvolvedor iOS e trabalha com uma base de código antiga, saber lê-la é uma grande vantagem.

P. Saber apenas Swift é suficiente?

Swift é suficiente para novos desenvolvimentos. Ainda assim, entender de onde veio NS e por que existem colchetes ajudará você a compreender muito melhor os frameworks da Apple.


Resumo

Objective-C não é uma linguagem morta; é mais como um veterano se preparando para a aposentadoria. Cresceu fora da Apple ao lado de Jobs, voltou com ele e se tornou o coração da empresa mais valiosa do mundo.

Quando encontrar NSString em código antigo, cumprimente-o com carinho. Essas duas letras carregam 40 anos de história.

Referências

Continue lendo