SlideShare uma empresa Scribd logo
POR QUE SCALA?
LINGUAGEM DE PROGRAMAÇÃO
MOTIVAÇÃO
O que é Scala
Scala é 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:
LinkedIn
Twitter
FourSquare
The 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ões
Scala é 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 DAYS
BERLIN, 2014
SCALA DAYS
AMSTERDAM, 2015
Veremos várias
perspectivas
Programadores iniciantes,
Programadores
experimentados,
Programadores no limite da
utilização de suas
ferramentas atuais.
Valores
Tipos
Variáveis
Como 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ções
O 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.
REPL
Read-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 objects
Singletons, substituem os tipos estáticos
Partial functions
Outras características
Tratamento diferenciado a imports e packages
Particularidades de class arguments
Error handling, Options
Build tool
Cassandra, Spark…
Scala x Swift
Discussão
https://gitter.im/orgs/scala/rooms
http://scalacamp.com.br/
http://www.meetup.com/pt/Curitiba-ScalaCamp-
Meetup/
Sua comunidade?
Leitura adicional
http://www.infoq.com/articles/twitter-java-use
http://www.infoq.com/presentations/event-
microservice-scala-spring-boot
http://www.reactivemanifesto.org/
“Perguntas?”
–Maurício Fernandes de Castro <mauricio@iservport.com>

Mais conteúdo relacionado

DOCX
Pablo ruiz picasso
PPT
O efeito chaminé.
PDF
160304_Good-Practice-in-Environment-Health-and-Safety-LAC
PPTX
(4) aprendizaje colaborativo jesus hector martinez corral
PPT
Batismo 110430195946-phpapp01
PPTX
O egoísmo na sociedade
PPTX
Wiring for Success
Pablo ruiz picasso
O efeito chaminé.
160304_Good-Practice-in-Environment-Health-and-Safety-LAC
(4) aprendizaje colaborativo jesus hector martinez corral
Batismo 110430195946-phpapp01
O egoísmo na sociedade
Wiring for Success

Destaque (18)

PPTX
Sociedad de la información/ Azul Wilches- Lucia Soto- Candela Ubaldegaray
PPSX
"Analysing and Searching Unstructured Medical Data", Allan Hanbury, Sr. Resea...
PDF
Contes compartits d'ahir i d'avui
PDF
Copia de guia de diseño
PPT
Trânsito com literatura e sucata
DOCX
Equipment list
PPT
Realidad virtual
PPTX
Computador
PPTX
TEOREMA DE BOOLES RUBEN
PDF
Tabla sucursal
DOCX
transcript
PDF
oracle pl 001
PPTX
Introducción al turismo
PDF
PDF
Image_00004
PDF
2016-11-theory-gravity-dark
Sociedad de la información/ Azul Wilches- Lucia Soto- Candela Ubaldegaray
"Analysing and Searching Unstructured Medical Data", Allan Hanbury, Sr. Resea...
Contes compartits d'ahir i d'avui
Copia de guia de diseño
Trânsito com literatura e sucata
Equipment list
Realidad virtual
Computador
TEOREMA DE BOOLES RUBEN
Tabla sucursal
transcript
oracle pl 001
Introducción al turismo
Image_00004
2016-11-theory-gravity-dark
Anúncio

Semelhante a Scala why (10)

PPTX
apresentacao_scala
PDF
Scala - Uma Breve (breve mesmo) Introdução
PDF
Introdução a Scala [GeekieTalk]
PPTX
Scala: Programação OO, Funcional e Concorrente na JVM
PPTX
Scala java7
PPTX
Seminário: Lua
PDF
Paradigms of programming languagens
PPT
Seminario haskell
PDF
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
PPTX
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte I
apresentacao_scala
Scala - Uma Breve (breve mesmo) Introdução
Introdução a Scala [GeekieTalk]
Scala: Programação OO, Funcional e Concorrente na JVM
Scala java7
Seminário: Lua
Paradigms of programming languagens
Seminario haskell
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte I
Anúncio

Mais de Mauricio Fernandes de Castro (14)

PPTX
Zio motivation to create ZIO-native http package
PPTX
Apresentação do Aplicativo de Controle de Combustíveis
PPTX
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
PPTX
PPTX
Capital Humano no Setor de TI
PPTX
PPTX
Estrategia digital, uma visão associativista
PPTX
Iservport recipes
PPTX
CQRS/ES com Lagom
PPTX
ScalaCamp Meetup - Coleções em Scala
PPTX
iservport - Uma Plataforma de Monitoramento para sua empresa e sua rede de ne...
PPTX
Iservport circle-game
Zio motivation to create ZIO-native http package
Apresentação do Aplicativo de Controle de Combustíveis
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Capital Humano no Setor de TI
Estrategia digital, uma visão associativista
Iservport recipes
CQRS/ES com Lagom
ScalaCamp Meetup - Coleções em Scala
iservport - Uma Plataforma de Monitoramento para sua empresa e sua rede de ne...
Iservport circle-game

Último (12)

PDF
SLIDES - AULA 1 - APRESENTAÇÃO - Material de Cleyton Souza - IFPB
PPT
03_slide de Gerenciamento de Projetos .ppt
PDF
SLIDES - AULA 3 - CLASSES E OBJETOS EM JAVA - Material de Cleyton Souza - IFPB
PDF
SLIDES - AULA 2 - INTRODUÇÃO - Material de Cleyton Souza - IFPB
PPT
07_slides de Estilos_Arquiteturais sommerville.ppt
PPT
06_slide de Arquitetura_de_Software .ppt
PPT
10_ slides de Reuso sommerville cap 10.ppt
PPT
05_slide especificacao de sistemas de software e a uml UML.ppt
PPT
09_Evolucao de software e_Refatoracao.ppt
PPT
00_Apresentacao sobre o livro do sommerville_ES.ppt
PDF
SLIDES - AULA 7 - SWING - Cleyton Souza - IFPB
PDF
SLIDES - AULA 5 - HERANÇA - Material de Cleyton Souza - IFPB
SLIDES - AULA 1 - APRESENTAÇÃO - Material de Cleyton Souza - IFPB
03_slide de Gerenciamento de Projetos .ppt
SLIDES - AULA 3 - CLASSES E OBJETOS EM JAVA - Material de Cleyton Souza - IFPB
SLIDES - AULA 2 - INTRODUÇÃO - Material de Cleyton Souza - IFPB
07_slides de Estilos_Arquiteturais sommerville.ppt
06_slide de Arquitetura_de_Software .ppt
10_ slides de Reuso sommerville cap 10.ppt
05_slide especificacao de sistemas de software e a uml UML.ppt
09_Evolucao de software e_Refatoracao.ppt
00_Apresentacao sobre o livro do sommerville_ES.ppt
SLIDES - AULA 7 - SWING - Cleyton Souza - IFPB
SLIDES - AULA 5 - HERANÇA - Material de Cleyton Souza - IFPB

Scala why