Scala why
-
Upload
mauricio-fernandes-de-castro -
Category
Software
-
view
188 -
download
0
Transcript of Scala why
![Page 1: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/1.jpg)
POR QUE SCALA?LINGUAGEM DE PROGRAMAÇÃO
![Page 2: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/2.jpg)
MOTIVAÇÃO
![Page 3: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/3.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/4.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/5.jpg)
A linguagem de programação Scala tem sido usada em produção em serviços com alta demanda:
LinkedInTwitterFourSquareThe Guardian
![Page 6: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/6.jpg)
“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](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/7.jpg)
“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](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/8.jpg)
“Atualmente, a melhor introdução compacta para Scala”
- Martin Odersky.
![Page 9: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/9.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/10.jpg)
QUANDO COMEÇAR?
![Page 11: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/11.jpg)
SCALA DAYSBERLIN, 2014
![Page 12: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/12.jpg)
SCALA DAYSAMSTERDAM, 2015
![Page 13: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/13.jpg)
Veremos várias perspectivas
Programadores iniciantes,
Programadores experimentados,
Programadores no limite da utilização de suas ferramentas atuais.
![Page 14: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/14.jpg)
Valores
![Page 15: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/15.jpg)
Tipos
![Page 16: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/16.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/17.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/18.jpg)
Expressões
O último valor de um bloco (entre {}) é o valor de retorno.
![Page 19: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/19.jpg)
REPLRead-eval-print-loop:
![Page 20: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/20.jpg)
Classes e objetos
Linguagem orientada a objetos: substantivos,Linguagem funcional: verbos.Objetos: contém campos (vals, vars) e métodos.
![Page 21: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/21.jpg)
Projetos
![Page 22: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/22.jpg)
Métodos
![Page 23: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/23.jpg)
Construtores auxiliares
![Page 24: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/24.jpg)
Case classes
![Page 25: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/25.jpg)
String interpolation
![Page 26: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/26.jpg)
Funções anônimas
![Page 27: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/27.jpg)
Mixins
![Page 28: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/28.jpg)
Companion objectsSingletons, substituem os tipos estáticos
![Page 29: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/29.jpg)
Partial functions
![Page 30: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/30.jpg)
Outras características
Tratamento diferenciado a imports e packagesParticularidades de class argumentsError handling, Options
![Page 31: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/31.jpg)
Build tool
![Page 32: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/32.jpg)
Cassandra, Spark…
![Page 33: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/33.jpg)
Scala x Swift
![Page 34: Scala why](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/34.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022070602/587601231a28ab4a508b59a5/html5/thumbnails/35.jpg)
Leitura adicional
http://www.infoq.com/articles/twitter-java-usehttp://www.infoq.com/presentations/event-microservice-scala-spring-boothttp://www.reactivemanifesto.org/