Apple contratando desenvolvedores de compiladores para melhorar a interoperabilidade entre Swift / C++
A nova vaga da Apple para um engenheiro de frontend de compiladores destaca seu esforço para aprofundar a interoperabilidade entre Swift e C++, permitindo a migração gradual de grandes bases de código C++ existentes (como WebKit e componentes do sistema) para Swift, em vez de reescritas totais arriscadas. Comentadores debatem o objetivo de longo prazo da Apple de substituir a maior parte de C/C++ por Swift, inclusive em código crítico de desempenho e possivelmente de kernel, ponderando a segurança e os recursos de desempenho em evolução do Swift (ARC, tipos move-only) contra a maturidade e as questões de ABI do C++. A vaga também gera discussões sobre remuneração, exigência presencial em Cupertino e como escolhas de linguagem e ferramentas se cruzam com a estratégia mais ampla de qualidade de software e plataforma da Apple.
Estratégia da Apple: interoperabilidade Swift–C++ e migração
- Muitos veem essa contratação como parte do plano de longo prazo da Apple para migrar grandes bases de código em C++ (por exemplo, WebKit, possivelmente drivers e componentes do sistema) para Swift de forma incremental, em vez de por meio de grandes reescritas.
- A interoperabilidade é apresentada como uma forma de escrever novos recursos em Swift dentro de projetos C++ existentes, com chamadas bidirecionais e cópia mínima de dados.
- Alguns veem isso como a continuação de uma tendência: a Apple já menosprezou publicamente o C++, depois o adotou (por exemplo, APIs Metal em C++), e agora está construindo pontes para que o Swift possa efetivamente sucedê-lo.
Status do C++ e de outras linguagens nas plataformas da Apple
- Há debate sobre se C++ é “first class”:
- Um lado: C++ é amplamente usado dentro da Apple (CoreAudio, daemons, drivers), com ABIs estáveis e forte suporte de ferramentas via Clang/Xcode.
- O outro lado: APIs de plataforma, frameworks de UI e templates assumem por padrão Swift/Objective‑C; não é possível construir apps de UI completos apenas em C++.
- Objective‑C e Swift são descritos como “gerenciados” no sentido de terem runtimes, ARC, reflexão e carregamento dinâmico, embora haja discordância sobre a terminologia.
Desempenho, segurança e trade-offs de linguagem
- Alguns criticam C++ por sua complexidade (templates, UB) e argumentam que o investimento deveria ir para novas linguagens mais seguras (Swift, Rust etc.).
- Outros argumentam que especialistas conseguem escrever C++ seguro e de alto desempenho, e que ergonomia e código já existente justificam isso.
- São levantadas preocupações sobre o Swift igualar o desempenho de C/C++, especialmente em torno de ARC e contagem de referências; as respostas apontam para o trabalho em andamento em tipos move-only e semântica de valor para evitar sobrecarga de ARC em caminhos críticos.
- Há ceticismo de que mudanças na linguagem, por si só, resolvam problemas como deadlocks ou algoritmos ruins.
Ecossistema e alternativas (Rust, Kotlin, D)
- Vários sugerem Rust para novo software de sistema devido à segurança, observando que a Apple já usa Rust no servidor (não está claro em binários de cliente embarcados no OS).
- D e Kotlin são citados como exemplos de linguagens com interoperabilidade existente com C++/plataforma; Kotlin é elogiado por forte suporte multiplataforma, com especulação de que possa superar Swift em uso de propósito geral.
Qualidade de software e código legado
- Vários comentaristas reclamam que daemons e apps do macOS/iOS consomem muito CPU, congelam a UI e deixam as operações lentas, atribuindo os problemas de forma variada à dinâmica do Objective‑C, à queda de qualidade da era Swift e ao ciclo anual de lançamentos da Apple.
- Outros relatam poucos problemas desse tipo e veem a qualidade como dependente da carga de trabalho ou do tamanho dos dados (por exemplo, listas de contatos muito grandes).
Local da vaga, remuneração e práticas de trabalho
- A vaga é presencial em Cupertino, com patrocínio de visto.
- Comentadores observam os altos custos de moradia na Bay Area em comparação com o salário-base listado; estimativas típicas de remuneração total são de ~1,5–2× o salário-base, ainda assim tornando difícil comprar moradia local sem dupla renda ou deslocamentos longos.
- Alguns criticam a política rígida de presença da Apple e temem que as normas das FAANG impulsionem tendências de retorno ao escritório em todo o setor; outros dizem que trabalho presencial versus remoto é uma escolha organizacional válida.
Aprender compiladores e valor de habilidades de nicho
- Vários recursos são recomendados para aspirantes a engenheiro de compiladores: cursos online de compiladores, “Crafting Interpreters”, “Modern Compiler Implementation”, o tutorial Kaleidoscope do LLVM e pequenos compiladores em C (8cc/chibicc) como material de estudo.
- Há discordância sobre o quão “de nicho” e altamente bem remuneradas realmente são as vagas em compiladores; alguns relatam apenas prêmios modestos em relação a funções gerais de software.