Ask HN: Quantos de vocês, desenvolvedores da Apple, ainda usam Objective-C?

Desenvolvedores de plataformas Apple estão divididos entre continuar com Objective-C e adotar Swift para trabalho em iOS e macOS. Muitos dependem do Objective-C para codebases legadas grandes e estáveis, melhor interoperabilidade com C/C++, compilação mais rápida e compatibilidade de fonte a longo prazo, enquanto outros preferem Swift por seus recursos modernos de linguagem, sistema de tipos mais seguro e acesso a novas APIs exclusivas de Swift. Há amplo consenso de que novos apps normalmente são escritos em Swift, mas o conhecimento de Objective-C continua valioso para manter software existente e entender o comportamento de sistema de baixo nível.

Onde o Objective-C Ainda é Usado

  • Muitos apps em produção (especialmente os mais antigos e alguns de escala “AAA”/FAANG) ainda têm grandes codebases em ObjC.
  • Algumas equipes adotam ObjC por padrão para SDKs, integrações C/C++ multiplataforma, trabalho específico de macOS e APIs de sistema de baixo nível.
  • ObjC é comum em apps legados de Mac, apps de iOS de longa duração pré-Swift e ferramentas internas; vários participantes assumem que a própria Apple ainda usa bastante ObjC e C.
  • Alguns hobbystas e desenvolvedores solo criam novos apps inteiramente em ObjC, muitas vezes por familiaridade ou simplicidade.

Motivos Para os Desenvolvedores Continuarem com Objective-C

  • Tempos de compilação rápidos e previsíveis, além de uma experiência de depuração melhor em comparação com Swift.
  • Excelente interoperabilidade com C/C++ e ObjC++ para codebases mistas.
  • Linguagem estável, com décadas de compatibilidade retroativa; ObjC muito antigo ainda compila.
  • Elegância e simplicidade percebidas no envio de mensagens e na dinamicidade do runtime (por exemplo, method swizzling).
  • Evita as mudanças quebrando compatibilidade que o Swift teve no passado e a dor de migração; alguns desconfiam da tendência da Apple de alterar APIs e ferramentas.
  • Para alguns, ObjC “faz o trabalho” e não há um motivo de negócio convincente para migrar.

Argumentos para Usar Swift em Vez Disso

  • A maior parte do código novo e dos apps novos agora é escrita em Swift; muitos juniores nem conhecem ObjC.
  • As novas APIs da Apple estão cada vez mais em primeiro lugar para Swift, ou só em Swift, o que torna o ObjC uma limitação de longo prazo.
  • Desenvolvedores relatam maior produtividade: menos boilerplate, tipos/opcionais mais seguros, genéricos, async/await e uso mais fácil de APIs modernas.
  • Projetos mistos muitas vezes adicionam novos arquivos em Swift enquanto deixam o ObjC estável em paz.

Interop e Codebases Mistas

  • A interoperabilidade entre Swift e ObjC é geralmente descrita como boa, mas pode ficar frágil em projetos complexos ou quando o grafo de build do Xcode quebra.
  • A interop com C em Swift é vista por alguns como boa, por outros como dolorosa (bridging headers, empacotamento, peculiaridades de SPM/xCFramework).
  • Interop com C++: historicamente o ObjC tem sido melhor (ObjC++), embora a interop recente de Swift com C++ tenha melhorado.

SwiftUI e Frameworks Modernos

  • SwiftUI divide opiniões: ótima para UIs simples e “telas de configurações”, mas descrita como imatura, bugada e difícil de usar para views complexas e com estado (por exemplo, mapas).
  • Alguns devs evitam SwiftUI e continuam com UIKit/AppKit (em ObjC ou Swift); outros veem SwiftUI como um grande ganho de produtividade para casos de uso mais limitados.

Aprendizado e Ecossistema

  • ObjC continua valioso para ler exemplos de código antigos, entender os internos de Cocoa/AppKit e interagir com APIs mais antigas do macOS.
  • Alguns aprendizes começam com ObjC porque os recursos modernos de Swift para Cocoa/AppKit clássico são escassos.