Scala why

36
POR QUE SCALA? LINGUAGEM DE PROGRAMAÇÃO

Transcript of Scala why

Page 1: Scala why

POR QUE SCALA?LINGUAGEM DE PROGRAMAÇÃO

Page 2: Scala why

MOTIVAÇÃO

Page 3: Scala why

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.

Page 4: Scala why

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.

Page 5: Scala why

A linguagem de programação Scala tem sido usada em produção em serviços com alta demanda:

LinkedInTwitterFourSquareThe Guardian

Page 6: Scala why

“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.

Page 7: Scala why

“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.

Page 8: Scala why

“Atualmente, a melhor introdução compacta para Scala”

- Martin Odersky.

Page 9: Scala why

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.

Page 10: Scala why

QUANDO COMEÇAR?

Page 11: Scala why

SCALA DAYSBERLIN, 2014

Page 12: Scala why

SCALA DAYSAMSTERDAM, 2015

Page 13: Scala why

Veremos várias perspectivas

Programadores iniciantes,

Programadores experimentados,

Programadores no limite da utilização de suas ferramentas atuais.

Page 14: Scala why

Valores

Page 15: Scala why

Tipos

Page 16: Scala why

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.

Page 17: Scala why

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.

Page 18: Scala why

Expressões

O último valor de um bloco (entre {}) é o valor de retorno.

Page 19: Scala why

REPLRead-eval-print-loop:

Page 20: Scala why

Classes e objetos

Linguagem orientada a objetos: substantivos,Linguagem funcional: verbos.Objetos: contém campos (vals, vars) e métodos.

Page 21: Scala why

Projetos

Page 22: Scala why

Métodos

Page 23: Scala why

Construtores auxiliares

Page 24: Scala why

Case classes

Page 25: Scala why

String interpolation

Page 26: Scala why

Funções anônimas

Page 27: Scala why

Mixins

Page 28: Scala why

Companion objectsSingletons, substituem os tipos estáticos

Page 29: Scala why

Partial functions

Page 30: Scala why

Outras características

Tratamento diferenciado a imports e packagesParticularidades de class argumentsError handling, Options

Page 31: Scala why

Build tool

Page 32: Scala why

Cassandra, Spark…

Page 33: Scala why

Scala x Swift

Page 34: Scala why

Discussão

https://gitter.im/orgs/scala/roomshttp://scalacamp.com.br/http://www.meetup.com/pt/Curitiba-ScalaCamp-Meetup/Sua comunidade?

Page 35: Scala why

Leitura adicional

http://www.infoq.com/articles/twitter-java-usehttp://www.infoq.com/presentations/event-microservice-scala-spring-boothttp://www.reactivemanifesto.org/

Page 36: Scala why

“Perguntas?”

–Maurício Fernandes de Castro <[email protected]>