English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Scala é a abreviação de Scalable Language, é uma linguagem de programação de múltiplos paradigmas
Martin Odersky do Instituto Federal Politécnico de Lausanne (EPFL) em2001Ano, o trabalho começou a ser projetado Scala com base em Funnel.
Funnel é uma linguagem de programação que combina ideias de programação funcional com Petri nets.
O trabalho anterior de Odersky foi Generic Java e javac (compilador Java do Sun). A Scala para a plataforma Java foi lançada em2003Fim do ano/2004Ano, o lançamento da Scala para a plataforma .NET foi em2004ano6Mês. A segunda versão do idioma, v2.0, lançada em2006ano3Mês.
Até2009ano9Mês2.7.6 Mês, a versão mais recente é a versão 2.8As novas características previstas incluem a reescrita da biblioteca Scala (Scala collections library), parâmetros nomeados e parâmetros padrão de métodos, objetos de pacote (package object) e Continuation.
2009ano4No mês, a Twitter anunciou que já migrou a maioria de seus programas de backend do Ruby para Scala, e os outros também estão planejando fazer a migração. Além disso, a Wattzon já declarou publicamente que sua plataforma inteira é baseada em infraestrutura Scala.
Scala é uma linguagem orientada a objetos pura, onde cada valor é um objeto. O tipo de dados e o comportamento dos objetos são descritos por classes e traits.
Existem duas formas de expandir o mecanismo de abstração de classes: uma é a herança de subclasses, e a outra é o mecanismo flexível de mistura. Ambas as abordagens evitam os problemas de múltipla herança.
Scala também é uma linguagem funcional, cujas funções podem ser usadas como valores. Scala oferece uma sintaxe leve para definir funções anônimas, suporta funções de ordem superior, permite a nesting de várias camadas de funções e suporta currying. A case class Scala e o padrão de correspondência integrado são equivalentes aos tipos algebraicos comuns em linguagens de programação funcionais.
Ainda mais, os programadores podem usar o padrão de correspondência Scala para escrever código semelhante a expressões regulares para manipular dados XML.
O Scala possui um sistema de tipos, que garante a segurança e a consistência do código através de verificações na compilação. O sistema de tipos suporta as seguintes características específicas:
Classes genéricas
Contravariança e covariança
Anotações
Restrições de limites de parâmetros de tipo
Usar classes e tipos abstratos como membros de objetos
Tipos compostos
Especificar explicitamente o tipo ao se referir a si mesmo
Visão
Métodos polimórficos
O design do Scala mantém uma verdadeira, ou seja, na prática, o desenvolvimento de aplicações específicas de um domínio geralmente requer extensões de linguagem específicas para o domínio. O Scala oferece muitos mecanismos únicos de linguagem que podem ser adicionados facilmente e sem problemas como bibliotecas novas estruturas de linguagem:
Qualquer método pode ser usado como operador prefixo ou sufixo
pode construir automaticamente closures com base no tipo esperado.
O Scala usa Actor como seu modelo de concurrency, Actor é uma entidade semelhante a uma thread, que envia e recebe mensagens por e-mail. O Actor pode reutilizar threads, portanto, pode usar milhões de Actors em um programa, enquanto as threads podem criar apenas milhares. Em2.10nas versões posteriores, usará o Akka como sua implementação padrão de Actor.
2009ano4Em , o Twitter anunciou que já migrou a maior parte de seus programas back-end do Ruby para Scala, e os outros também pretendem migrar.
Além disso, a Wattzon já declarou publicamente que toda sua plataforma já é escrita com infraestrutura Scala.
UBS (Union Bank of Switzerland) usa Scala em seus produtos gerais.
Coursera usa Scala como linguagem de servidor.
A seguir está listado3Os seguintes são alguns dos frameworks de aplicativos web mais populares do Scala atualmente: