BT

Swift: a nova linguagem da Apple para iOS e OS X

| por Alex Blewitt Seguir 4 Seguidores , traduzido por José Renato Pequeno Seguir 0 Seguidores em 05 jun 2014. Tempo estimado de leitura: 3 minutos |

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.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT