Categorias

Swift: a linguagem que aproxima o mundo da programação

O Swift veio para ficar, mas ainda gera dúvidas entre os profissionais mobile. Neste artigo, o CEO e fundador do iai? (Instituto de Artes Interativas) Lucas Longo fala sobre as vantagens e características da nova linguagem de programação da Apple:

“Lançada há alguns meses, a Swift ainda gera dúvidas em muitos desenvolvedores. A novidade surgiu com a necessidade da Apple em trazer ao mercado uma linguagem fácil de aprender e de se utilizar. Essa iniciativa vem ao encontro de um movimento mundial para tornar a programação em mais uma linguagem que pode ser aprendida pela humanidade. A ideia é que a Swift impulsione mais pessoas a criarem coragem de tentar fazer parte desse mundo, e assim contribuir para expandir e solidificar o ecossistema de aplicativos da Apple, que hoje já é o mais rentável do mercado.

swift-apresentacao

Até o seu lançamento, a linguagem mais utilizada no desenvolvimento de aplicativos para os ambientes iOS e OS X era a Objetive-C, criada no início dos anos 80. A Apple preocupou-se em diminuir a resistência à adoção da Swift pelos programadores experientes. Para isso, permitiu que a nova linguagem utilizasse o mesmo compilador e pudesse conviver com a Objetive-C no mesmo aplicativo. Dessa forma, ninguém será forçado a aprendê-la imediatamente, pois é possível continuar programando do jeito antigo e adotar a nova tecnologia aos poucos.

Mas uma pergunta pode estar na mente de muitas pessoas: a Objetive-C não era boa o suficiente? Não há dúvidas que essa linguagem é muito poderosa e serviu à Apple de forma inquestionável durante todos esses anos. Porém não é fácil de se aprender. O fato de ter sido construída com base nas tradicionais linguagens C e C++ criou amarras de compatibilidade que dificultam ainda mais a compreensão da linguagem, principalmente por novos programadores.

objective-c

No ramo da programação existe uma tradição segundo a qual o objetivo do primeiro aplicativo desenvolvido por um iniciante é exibir a mensagem “Hello World”. Esse é um bom exemplo para entender aonde a Apple quer chegar com a linguagem Swift. Veja no quadro abaixo o código-fonte necessário para atingir o mesmo objetivo nas linguagens Objective-C e Swift:

swift-code

Na realidade, os comandos para exibir a mensagem são muito semelhantes, mas no Objetive-C, devido a questões de retro compatibilidade, são necessárias muitas outras linhas de código. Na Swift, apenas uma.

Temos aí a primeira grande vantagem da linguagem Swift: a simplicidade. O código fonte é simples e conciso. Além de facilitar a vida dos programadores, que poderão desenvolver aplicativos com menos linhas de código, a Swift irá melhorar também a vida dos instrutores, pois é possível partir diretamente do ensino dos recursos da linguagem. O aprendizado de Objetive-C, ao contrário, exige a explicação de muitas regras (e suas exceções) e a abordagem de temas técnicos mais profundos, dificultando o entendimento de quem não é da área de informática.

No entanto, a simplicidade não torna a linguagem menos poderosa. A compatibilidade com a linguagem Objective-C foi mantida e o pacote já existente de funcionalidades (Cocoa, para Mac e Cocoa Touch, para iOS) foi expandido e aprimorado.

swift-apresentacao-02

Outra vantagem importante é que a Swift trouxe recursos inspirados em linguagens mais modernas, como Ruby e JavaScript. As Classes, Estruturas e Protocolos tornaram-se construções mais flexíveis e de uso geral, oferecendo todos os componentes necessários para a construção de expressivos programas Orientados a Objeto. E os programadores que não migravam para o ecossistema de desenvolvimento da Apple pela ausência de Closures e Generics não terão mais essa desculpa, pois esses recursos foram implementados na linguagem Swift.

Mas a Swift não foi apenas inspirada em outras linguagens. Ela trouxe várias novidades que proporcionarão múltiplas opções aos programadores, como os tipos de dados avançados Tuples e Optionals, a mutabilidade e interpolação de Strings, as propriedades Lazy, as funções aninhadas e com retorno múltiplo e até a flexibilização da estrutura lógica Switch. Até a definição de variáveis e constantes foi modernizada, trazendo a inferência de tipos de dados e maior segurança sobre os dados que podem ser trabalhados em um aplicativo.

A produtividade e o prazer de programar não foram deixados de lado. A Swift trouxe conceitos onde a prevenção de erros pode ser efetuada em tempo de desenvolvimento, permitindo que os aplicativos cheguem à sua versão final mais consistentes e bem acabados. E uma das grandes novidades é o Playground, parque de diversões não somente na tradução literal, que consiste em um arquivo onde o programador tem total liberdade em exercitar e testar algoritmos, podendo visualizar os resultados imediatamente, sem precisar formalmente criar um projeto e cumprir todo o processo de compilação.

Aspectos importantes como performance e gerenciamento de memória não foram deixados de lado. Durante a apresentação na WWDC, a Apple exibiu alguns casos, como o tratamento de Coleções, onde um algoritmo em Swift era executado 1.3x mais rápido do que o mesmo algoritmo em Objective-C.

E através do ARC (Automatic Reference Counting), a Swift rastreia e gerencia o uso da memória pelo aplicativo, fazendo com que o programador, pelo menos na grande maioria dos casos, não tenha que se preocupar com esta importante questão, que pode derrubar a execução de um aplicativo.

Espera-se, no entanto, algumas desvantagens na adoção da nova linguagem, pelo menos durante certo período de tempo. Os desenvolvedores terão que percorrer uma curva de aprendizado até ficarem proficientes em Swift. Levará um tempo para que os novos recursos sejam entendidos e absorvidos por eles e possam ser efetivamente implementados em novos aplicativos. Os desenvolvedores também terão que se acostumar com a própria sintaxe da linguagem, que é consideravelmente diferente das já existentes no mercado.

think-different

Para ser utilizada, a Swift requer a nova versão da interface de desenvolvimento da Apple, o Xcode 6, que anda está em fase beta e disponível apenas para desenvolvedores cadastrados. O Xcode 6 será lançado oficialmente junto ao novo  sistema operacional Yosemite, o que deverá ocorrer entre agosto e setembro. Após o lançamento oficial, os apps desenvolvidos em Swift poderão ser imediatamente submetidos à loja de aplicativos App Store.

Para que todos possam devidamente se preparar para o lançamento oficial, a Apple já disponibilizou dois e-books gratuitos e criou um blog especialmente dedicado à nova linguagem:

  • O primeiro e-book – The Swift Programming Language, traz todo o conteúdo da nova linguagem e destina-se a qualquer público, sejam desenvolvedores já experientes ou novos programadores.
  • O segundo e-book – Using Swift with Cocoa and Objetive-C, destinado a programadores da linguagem Objective-C, detalha a compatibilidade e interoperabilidade entre as linguagens.
  • Ambos os e-books estão disponíveis através do aplicativo iBooks, tanto para Mac como para os dispositivos com iOS.
  • A página oficial da linguagem também traz muitas informações sobre a nova linguagem, e está disponível no endereço https://developer.apple.com/swift/
  • Pode-se ter acesso ao blog exclusivamente criado para a Swift no endereço https://developer.apple.com/swift/blog/

Centros de treinamento tradicionais em desenvolvimento mobile, como o iai? (Instituto de Artes Interativas), também estão se preparando para o lançamento de cursos completos sobre a nova linguagem.

Podemos concluir que tecnicamente a Swift é muito bem-vinda. Como costuma fazer também com produtos e tecnologias já existentes, a Apple reinventou recursos de programação já utilizados em outras linguagens e adicionou novas características, que proporcionarão aos desenvolvedores a criação de aplicativos mais robustos, de tamanho menor e com a performance otimizada. E que poderão ser desenvolvidos em menos tempo e, portanto com custos menores, o que é uma vantagem competitiva neste mercado, pois irá permitir que uma boa ideia seja rapidamente implementada para, quem sabe, tornar mais um desenvolvedor milionário.

A Apple, mais uma vez, está gerando uma pequena revolução, desta vez no mercado de desenvolvimento de software.

Por Lucas Longo, CEO e fundador do iai? (Instituto de Artes Interativas) – centro de treinamento referência em mobile.