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.