No keynote de abertura da conferência WWDC 2014, a Apple anunciou a versão beta de avaliação de uma nova linguagem de programação, Swift, prevista para ser lançada com o iOS 8 e o OSX Yosemite até o final deste ano. Swift é uma linguagem de programação de alto nível e será familiar aos desenvolvedores JavaScript, mas é compilada pela LLVM para produzir um código executável de alto desempenho para ambas as plataformas OSX e iOS.
A Apple tem investido fortemente em tecnologias LLVM. O LLVM fornece um conjunto abstrato de instruções que podem ser convertidas para arquiteturas específicas. O Clang substituiu o GCC como opção de compilação para programas C e Objective-C, e ambos são convertidos pelo Clang para instruções LLVM, que são depois otimizadas para um executável de plataforma específica. O compilador produz o bytecode da mesma forma para Objective-C e Swift possibilitando que o código Swift coexista com aplicações e bibliotecas escritas em Objective-C.
O Swift vem com ambiente de testes de código no estilo REPL. Normalmente utilizada por linguagens interpretadas como JavaScript ou Python, o REPL fornece um ciclo de leitura-avaliação-impressão que pode ser usado para avaliar expressões individuais ou instruções em linha de comando fácil de depurar. Junto com poderosas estruturas de loops, interpolação de strings e opções de impressão e depuração, a linguagem permite um estilo interativo de desenvolvimento e testes.
Apesar de ser uma linguagem fortemente tipada, o Swift usa a inferência de tipos para reduzir a quantidade de caracteres digitados pelos desenvolvedores. Tipos podem ser declarados explicitamente, e para tipos numéricos elementos de dimensões específicas como o UInt8 ou Int32 podem ser utilizados. Também é possível usar valores opcionais para tipos. Um valor opcional pode ser usado e referenciado com um ? ou !, dependendo se o tipo esperado existe. As coleções no Swift fornecem suporte literal para arrays (com [ ]) e dicionários/mapas (com [:]), e a tipos genéricos.
As funções são elementos de primeira classe na linguagem, e podem ser passadas como variáveis para outros elementos. Os argumentos podem ser nomeados explicitamente (para compatibilidade com nomes dos argumentos do Objective-C), ou passados de forma posicional. Os parâmetros podem ter valores padrões, permitindo a omissão de argumentos.
O Swift pode referenciar nativamente objetos Objective-C, tanto em bibliotecas padrões (como a UIKit ou Cocoa), como em tipos definidos pelos usuários. Classes podem ser criadas nativamente (e utilizadas pelo Objective-C); também se pode criar objetos Objective-C, o que é suportado pelo ARC. (A contagem de referência é gerenciada automaticamente pelo runtime; os usuários não precisam se preocupar em fazer o gerenciamento diretamente no Swift). Funções podem receber referências de tipos de classes, e é possível receber cópia de valores e criar tipos baseados em um grupo de variáveis denominado struct.
O Swift permite ainda múltiplos tipos de retorno através do uso de tuplas. Essas tuplas podem ser utilizadas através de semântica de correspondências (com o uso da instrução case), ou através da atribuição de variáveis.
A nova linguagem está disponível através do "developer preview" do Xcode 6, e será lançada em produção nos próximos meses. Até o momento não há confirmação de que fará parte da distribuição do LLVM. Mesmo tendo sido mesclada recentemente com o suporte do ARM 64-bit e trabalhando com o JIT JavaScript do Safari, é provável que apenas uma parte seja incluída ao runtime do Clang e hospedada pela LLVM. Essas características podem trazer aos programadores Swift a habilidade de gerar códigos para outras arquiteturas que possuam o compilador Clang.