Scala why

Post on 15-Apr-2017

188 views 0 download

Transcript of Scala why

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/

“Perguntas?”

–Maurício Fernandes de Castro <mauricio@iservport.com>