POR QUE SCALA?LINGUAGEM DE PROGRAMAÇÃO
MOTIVAÇÃO
O que é ScalaScala é uma linguagem de programação para a JVM,Scala facilita definição de tipos(*) por inferência,Scala incorpora tanto o paradigma de orientação a objeto quanto o funcional,Introduzida em 2003, por Martin Odersky, EPFL, Lausanne.
Why Scala?
De forma resumida:A demanda por sistemas distribuídos tem crescido rapidamente. E a linguagem Scala cabe muito bem neste novo contexto.
Outras repostas ao longo desta apresentação.
A linguagem de programação Scala tem sido usada em produção em serviços com alta demanda:
LinkedInTwitterFourSquareThe Guardian
“Você não vai compreender todo o poder de seu sistema de tipos até o final do seu primeiro dia. Você não vai entender o ‘zen’ de objetos sendo funções e funções que são objetos em sua primeira semana. Cada recurso da linguagem é outra lâmpada a espera para se iluminar sobre sua cabeça.”
- Alex Payne, líder de plataforma no Twitter à época da introdução do Scala.
“Este deveria ser o seu primeiro livro Scala, não o último. Ele mostra o suficiente para torná-lo familiar e confortável com a linguagem - competente , mas não especialista. Você vai escrever código Scala útil, mas você não vai necessariamente ser capaz de ler todo o código Scala você encontrar .”
- Bruce Eckel e Diane Marsh.
“Atualmente, a melhor introdução compacta para Scala”
- Martin Odersky.
Minhas razõesScala é uma linguagem sucinta. Você vai escrever a metade do código que você escreve hoje. Scala é uma linguagem capaz. Você não vai sentir falta de recursos ao trabalhar com ela. Scala é uma linguagem segura. Você encontra verificação estática de tipos e outros mecanismos para reduzir erros de programação. Scala é uma linguagem moderna.
QUANDO COMEÇAR?
SCALA DAYSBERLIN, 2014
SCALA DAYSAMSTERDAM, 2015
Veremos várias perspectivas
Programadores iniciantes,
Programadores experimentados,
Programadores no limite da utilização de suas ferramentas atuais.
Valores
Tipos
VariáveisComo em um valor, uma variável contém um determinado tipo de informação, mas neste caso você pode alterar os dados armazenados.
Expressões e condiçõesO menor fragmento de código útil na maioria das linguagens de programação ou é uma declaração ou uma expressão. Estes têm uma diferença simples:
-Uma declaração muda estado,-Uma expressão exprime.
Isto é, uma expressão produz um resultado, enquanto uma declaração não. Quase tudo em Scala é uma expressão.
Expressões
O último valor de um bloco (entre {}) é o valor de retorno.
REPLRead-eval-print-loop:
Classes e objetos
Linguagem orientada a objetos: substantivos,Linguagem funcional: verbos.Objetos: contém campos (vals, vars) e métodos.
Projetos
Métodos
Construtores auxiliares
Case classes
String interpolation
Funções anônimas
Mixins
Companion objectsSingletons, substituem os tipos estáticos
Partial functions
Outras características
Tratamento diferenciado a imports e packagesParticularidades de class argumentsError handling, Options
Build tool
Cassandra, Spark…
Scala x Swift
Discussão
https://gitter.im/orgs/scala/roomshttp://scalacamp.com.br/http://www.meetup.com/pt/Curitiba-ScalaCamp-Meetup/Sua comunidade?
Leitura adicional
http://www.infoq.com/articles/twitter-java-usehttp://www.infoq.com/presentations/event-microservice-scala-spring-boothttp://www.reactivemanifesto.org/