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.