BT

Início Notícias Dez anos de Scala

Dez anos de Scala

Favoritos

Há dez anos (e alguns meses), Michel Schinz anunciou a primeira implementação da linguagem de programação Scala. Quando anunciada, foi descrita como "uma linguagem que integra facilmente programação orientada a objetos e funcional" e que "é projetada para expressar padrões de programação comuns de uma forma concisa, elegante e com segurança de tipos".

O anúncio original dizia:

Nós gostaríamos de anunciar que está disponível a primeira implementação da linguagem de programação Scala. Scala integra facilmente a programação orientada a objetos e a funcional. É projetada para expressar padrões comuns de programação de uma forma concisa, elegante e com segurança de tipos. Scala apresenta várias construções de linguagem inovadoras. Por exemplo:

  • Tipos abstratos e composição mixin unificam ideias de sistemas de objetos e de módulos.
  • A correspondência de padrões sobre hierarquias de classe unifica acesso a dados funcionais e orientados a objetos. Isso simplifica muito o processamento de árvores XML.
  • Uma sintaxe flexível e um sistema de tipos que permitem a construção de bibliotecas avançadas e de novas linguagens específicas de domínio (DSLs).

Ao mesmo tempo, Scala é compatível com Java. Bibliotecas e frameworks Java podem ser utilizados sem a necessidade de código adaptativo ou de declarações adicionais.

A implementação atual de Scala roda na JVM. Requer o JDK 1.4 e pode rodar em Windows, MacOS, Linux, Solaris e na maioria dos outros sistemas operacionais. A versão .NET do Scala está atualmente em desenvolvimento.

Embora a versão .NET não esteja mais está sendo mantida, o objetivo era prover uma linguagem comum que rodaria em ambas máquinas virtuais e permitisse a portabilidade entre sistemas operacionais. No entanto, avanços no compilador just-in-time (JIT) da JVM e uma dependência cada vez maior do bytecode Java contribuíram para que a versão .NET fosse interrompida quando o Scala 2.10 foi lançado.

Scala popularizou a programação funcional às linguagens da JVM e estimulou diretamente a inclusão de lambdas (frequentemente chamadas indevidamente de closures) na versão Java 8 que estava por vir, além de métodos default para interfaces. Ambos têm estado disponíveis em Scala desde o princípio através de funções e traits, e a aceitação desses recursos proveu novas formas de programação de maneira mais concisa e testável​​.

Com o sucesso da Scala veio a sua complexidade, já que as características da linguagem podem ser usadas tanto para excelente quanto má legibilidade. Ao permitir que quaisquer identificadores Unicode sejam usados como nomes de métodos e funções (inclusive símbolos), a biblioteca padrão Scala tem crescido para incluir funções como =:=, :+ e :\ entre outros. O dilema do Scala é melhorar a capacidade de escrita ao custo potencial de sua legibilidade.

Por fim, Scala ainda se vê como uma linguagem de pesquisa, experimentando novos recursos e tornando obsoletas as funcionalidades mais antigas (como o pacote original Actors, que lhe trouxe fama semelhante às co-rotinas da linguagem Go). O bytecode gerado varia de versão para versão, o que significa que há limitados projetos de código aberto compilados para todas elas, com exceção da versão atual do Scala, e apesar de a versão 2.10 já estar disponível há mais de um ano, a transição entre os maiores releases de Scala geralmente passa por um processo penoso.

Com o lançamento do Java 8 neste ano, trazendo um subconjunto de características que o Scala já possuía para a JVM, será interessante ver o que será acrescentado ao Scala daqui pra frente. Compatibilidade binária traria estabilidade à linguagem, mas parece distante demais no momento, como parecia há quase uma década; mas o tempo dirá. Resta aguardar o que Scala trará de inovações nos próximos 10 anos.

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.

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

Comentários da comunidade

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

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

BT

Seu cadastro no InfoQ está atualizado? Poderia rever suas informações?

Nota: se você alterar seu email, receberá uma mensagem de confirmação

Nome da empresa:
Cargo/papel na empresa:
Tamanho da empresa:
País:
Estado:
Você vai receber um email para validação do novo endereço. Esta janela pop-up fechará em instantes.