Na conferência WWDC deste ano, a atenção foi tão fortemente direcionada para o iOS 8 e o OS X Yosemite, que a verdadeira estrela do evento acabou sendo um tanto negligenciada. A Apple surpreendeu a todos ao apresentar ao mundo a sua nova linguagem de programação: Swift. Para o utilizador comum, esta notícia pode parecer pouco relevante, mas para a comunidade de desenvolvedores, representa uma mudança de paradigma. É que, no universo das linguagens de programação, algumas se destacam por sua velocidade, outras pela eficiência, algumas pela clareza e outras pela simplicidade. A Apple se junta a um grupo seleto de empresas que criaram suas próprias linguagens, seguindo os passos do Google com o Go (Golang) e da Microsoft com o .Net Framework. A Swift promete ser a linguagem de programação de alto nível mais rápida e robusta, aprendendo com as outras, mas mantendo sua essência ligada ao Objective C, sua predecessora. Vamos explorar o porquê.
A Necessidade de Linguagens de Programação
Existem diversas formas de fazer com que um dispositivo realize tarefas. Seja um wearable moderno ou um computador convencional, tudo pode ser programado através de linguagem de máquina, com código binário bruto e linguagem assembly, criando cada instrução manualmente. Outra alternativa são as linguagens de alto nível, que simplificam um pouco este processo complexo. A ideia é aproximar as linguagens de programação da linguagem natural humana. Apesar do nome Swift atrair mais desenvolvedores do que o público em geral, vamos simplificar a explicação para ajudar a entender a tecnologia que irá moldar os futuros produtos da Apple.
É importante lembrar que os dispositivos eletrônicos, em essência, são “burros”. Sem programação, seriam apenas objetos inanimados. A programação é que lhes dá propósito e funcionalidade. No nível mais básico, os dispositivos eletrônicos precisam receber instruções detalhadas sobre cada ação a ser realizada, algo que no passado era feito com cartões perfurados e linguagem de máquina. Com o tempo, desenvolvemos linguagens que nos permitem comunicar com as máquinas de forma mais intuitiva. Escrevemos código, este é compilado em algo que o computador entende e, então, é executado. Resumindo: código-compilação-execução.
O Surgimento da Swift
A pergunta mais óbvia é: “Por que a Swift?”. A linguagem C, que surgiu na década de 1970, foi pioneira em seu tempo, seguida pelo Objective C na década de 1980. Desde então, a Apple utilizou esta plataforma para desenvolvimento. A lógica tradicional sugere: “Se não está quebrado, não conserte”. Mas, depois de 30 anos de uso contínuo do Objective C, surge a necessidade de algo mais rápido, eficiente e fácil de usar. É aí que a Swift entra em cena.
Conforme descrito no ebook oficial sobre a Swift (disponível gratuitamente no iTunes), “Swift é uma nova linguagem de programação para aplicativos iOS e OS X que se inspira no melhor do C e Objective-C, mas sem as restrições de compatibilidade com C. A Swift adota padrões de programação seguros e adiciona recursos modernos para facilitar, flexibilizar e tornar a programação mais prazerosa. A abordagem inovadora da Swift, aliada aos frameworks Cocoa e Cocoa Touch, que são maduros e amplamente utilizados, abre um leque de possibilidades para redefinir o desenvolvimento de software”.
A Importância da Swift
Apesar da Apple promover a ideia de inovação genuína, a Swift também carrega consigo o conceito de “linguagem de script”. Em linguagens de compilação-execução, o resultado do código só pode ser visto depois de compilado. A compilação revela o potencial do código. Se houver erros, a compilação resultará em comportamentos inesperados ou travamentos. O trabalho do programador passa a ser identificar e corrigir os erros para, depois, recomeçar. Este processo é árduo e demorado, mas é assim que as coisas sempre funcionaram no mundo da programação. As linguagens de script executam o código linha por linha, o que permite ver os resultados em tempo real, eliminando a necessidade de procurar erros posteriormente, tornando o processo mais rápido e simples.
No entanto, as linguagens de script têm limitações. O Python, por exemplo, é rápido, mas limitado a tarefas mais simples e com menos recursos. Seria como ter um carro de Fórmula 1 para ir ao supermercado. Para criar um jogo, por exemplo, o Python não seria a melhor opção. O Objective-C, ou C++ no Windows, seriam mais adequados. A Swift surge como uma solução que une o melhor de dois mundos, inspirando-se no Objective-C, Rust, Haskell, Ruby, Python, C#, CLU e muitas outras linguagens (segundo o desenvolvedor Chris Lattner). A Swift busca manter o que há de bom e eliminar o que não funciona. Em testes comparativos, ela se mostrou mais rápida que o Python e muito mais rápida que o Objective-C.
Recursos Adicionais
A Swift também introduz o “playground”, um ambiente visual em tempo real, onde o resultado da compilação é exibido instantaneamente, tal como em uma linguagem de script. Isto pode reduzir significativamente o tempo de desenvolvimento, pois, em caso de erro, a causa é imediatamente identificada, permitindo uma correção rápida. É como corrigir um erro de digitação em um texto enquanto se escreve, em vez de ter que revisá-lo inteiro depois de impresso. Assim, é possível criar aplicativos complexos mais rapidamente.
Outra vantagem é que em linguagens de alto nível, é necessário declarar e acessar classes e bibliotecas para usar funções, mesmo as mais básicas. Em C++, seria preciso usar
#include<stdio.h> int main(void) { printf("Hello Worldn"); return0; }
Em Swift, basta:
println("Hello, world")
Este é todo o código necessário. Além disso, não é necessário o uso do temido “;” para marcar o fim de uma declaração.
Desafios e Transição
A chegada da Swift não significa o fim imediato do Objective-C. Aplicativos podem continuar a ser desenvolvidos com Objective-C, e os desenvolvedores habituados com esta linguagem não se sentirão completamente perdidos, pois há semelhanças entre elas. A Apple, após quatro anos de desenvolvimento, irá promover e dar suporte total à Swift. Talvez um dia a Objective-C seja deixada de lado, mas esse momento ainda não chegou. No entanto, com uma nova linguagem tão fácil de aprender e muito mais rápida, por que alguém continuaria a usar o Objective-C?
Existem, claro, algumas preocupações, como a turbulência no mercado de trabalho. Muitos profissionais se especializaram no desenvolvimento de aplicativos para iPhone usando Objective-C. Com a Swift, estas carreiras podem precisar se reinventar. Também haverá uma nova onda de entusiastas da Swift, o que é positivo, mas também pode levar ao surgimento de aplicativos mal feitos por desenvolvedores inexperientes.
Em breve, discutiremos a estrutura Metal da Apple, analisando suas vantagens e desvantagens, principalmente em jogos para iOS.
Conclusão
Se você se perguntava por que não houve nenhum lançamento de hardware na conferência WWDC, lembre-se de que o hardware não funciona sem o software. A chegada da Swift é uma grande notícia, pois nos dá um novo nível de controle sobre o software, o que irá transformar o hardware no futuro. Para usar a Swift, é necessário o Xcode 6 beta e um ID de desenvolvedor.