Trilha Scala

Scala - Mais poder no "velho" mundo da JVM

Scala é uma linguagem extramamente produtiva e poderosa. Parte do seu poder é graças ao fato da linguagem rodar na JVM, mas isso não é tudo. Scala une programação orientada a objetos com programação funcional, trazendo possibilidades muito maiores do que seria possível apenas com a linguagem Java, por exemplo. Se você já ouviu falar de Scala mas nunca tentou programar nesta linguagem, talvez tenha ouvido falar que Scala é complexa. Mas nada melhor do que conhecer mais sobre a linguagem para desmistificar isso.


Público Alvo

Desenvolvedores com alguma experiência em qualquer linguagem de programação, que tenham interesse em aprender mais sobre Scala - ou começar a aprender.


Horário Palestra
08:30 às 09:00 Credenciamento e recepção dos participantes com café da manhã
09:00 às 10:00 Abertura
10:10 às 11:00 Fishbowl Java e Scala - Quebrando o gelo
Fishbowl Java e Scala - Quebrando o gelo
Alberto Luiz Souza / Todos os participantes

Nesse fishbowl falaremos sobre Java e Scala, de forma bem aberta. Começaremos com dois firestarters de 5 minutos cada, para inspirar os presentes. Em seguida, vamos ter algumas cadeiras para quem quiser participar da discussão, sendo que todos os presentes serão convidados a participar. A idéia é que qualquer um que quiser dar a sua opinião poderá fazê-lo.

A cada 7 minutos (ou quando a discussão esfriar) é perguntado se querem mudar o tema ou continuar. O que quer dizer basicamente que não vamos ficar discutindo nada que não esteja interessando a maioria dos presentes.


Alberto Luiz Souza / Todos os participantes
11:10 às 12:00 Programação Funcional para Manipulação de Dados
Programação Funcional para Manipulação de Dados
Jonas Abreu

O fato de Scala unir programação Orientada à Objetos com programação Funcional permite que você escolha qual ferramenta quer usar para resolver um problema.

Embora Orientação à Objetos seja muito boa para organizar a arquitetura e o design da sua aplicação, quando o seu problema envolve manipular dados de formas não triviais, programação Funcional é insuperável.


Jonas Abreu
12:00 às 13:00 Intervalo para almoço*
13:10 às 14:00 Scala 2.10 -- De Onde Viemos e Para Onde Vamos?
Scala 2.10 -- De Onde Viemos e Para Onde Vamos?
Daniel Capo Sobral

Começamos com uma timeline das versões de Scala desde a 2.0 em 2006, para realçar a tremenda velocidade de mudanças na linguagem.

Após isso, apresentamos os tópicos abaixo, e detalhamos cada um:

  • Bug fixes (virtual pattern matcher, esforço conjunto pré 2.10.0 M4, outros)
  • Melhorias (novas coleções, revisão do RedBlackTree, scaladoc)
  • SIPs (o que são, quais foram aprovadas, descrição das features)
  • Scala.reflect

Terminamos com uma especulação a respeito de evoluções futuras: untyped macros, macro types e macro annotations, effect system, integração de abstract types e type parameters.

A palestra terá ênfase nos aspectos pragmáticos, com inúmeros exemplos de código.


Daniel Capo Sobral
14:10 às 15:00
Programação distribuída fácil e poderosa na JVM com Akka
Programação distribuída fácil e poderosa na JVM com Akka
Paulo (JCranky) Siqueira

Akka é um framework para desenvolvimento de aplicações concorrentes e/ou distribuídas. Utilizando o modelo de atores, esse framework também permite que a aplicação seja altamente tolerante a falhas - além de abstrair muitas complexidades baixo nível, tornando o código que precisamos escrever bastante simples.

Nesta palestra, vamos mostrar como o Akka funciona; vamos falar um pouco do modelo de atores e em seguida focar nos recursos disponíveis para criação de aplicações distribuídas. Sempre mostrando código funcionando.


Paulo (JCranky) Siqueira
15:00 às 15:30 Coffee-break & networking
15:40 às 16:30 Criando sua própria linguagem com parser combinators
Criando sua própria linguagem com parser combinators
Lucas Cavalcanti

Parser Combinators é uma das funcionalidades mais poderosas do Scala. Com ela conseguimos implementar desde expressões regulares até gramáticas que podem parsear linguagens complexas, como o próprio Scala.

Muitas linguagens de programação possuem bibliotecas para esse fim, é o caso do Antlr e do Bison, mas nenhuma delas conseguiu deixar essa tarefa complexa de forma tão (relativamente) simples como o Scala e seus parser combinators.

Essa palestra mostrará para que servem os parser combinators e como usá-los de forma organizada.


Lucas Cavalcanti
16:40 às 17:30 Testando seu código com Specs2
Testando seu código com Specs2
Juliano Alves
Testes são mais do que programas que testam sua aplicação, são especificações de como ela deve funcionar. Nessa palestra será apresentado o Specs2, um framework Scala para BDD, permitindo que os testes sejam orientados ao comportamento, e produzindo resultados de fácil leitura.

Juliano Alves
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.
Rodrigo Silva Rahman de Almeida

Uma explicação completa do problema, do porque foi utilizado o Akka, tunning e a melhoria do processo de busca para o ecommerce turismo (www.cvc.com.br)

Tópicos:
  • Problema a ser solucionado;
  • O porque da utilização do framework Akka;
  • Arquitetura proposta;
  • Explicação da Solução;
  • Tempo de resposta e ganhos utilizando a tecnologia.

Rodrigo Silva Rahman de Almeida
17:40 às 18:30 Lazy Evaluation em Scala
Lazy Evaluation em Scala
Pedro Matiello

Scala é frequentemente descrita como uma linguagem que integra programação orientada a objetos com programação funcional. Dentro do paradigma funcional, uma característica importante é o suporte a Lazy Evaluation - uma estratégia de avaliação de expressões que consiste, principalmente, em adiar o cálculo das expressões até que seu resultado seja necessário.

Nesta palestra veremos a extensão do suporte a Laziness em Scala, seus possíveis usos, benefícios e potenciais desvantagens.


Pedro Matiello
18:40 às 19:00 Encerramento e sorteios

* Todos os participantes receberão um sanduíche do SUBWAY na hora do almoço

Obs.: Grade sujeita a alteração

Paulo (JCranky) Siqueira

Paulo (JCranky) Siqueira


Paulo "JCranky" Siqueira é desenvolvedor Java e Scala. Atua como consultor independente, é instrutor na Globalcode e um dos fundadores dos scaladores - grupo de usuários Scala de São Paulo.


Jonas Abreu

Jonas Abreu


Programador Java e Scala, trabalha atualmente com foco em performance de aplicações e educação através de Prática Deliberada. Já foi instrutor e consultor da Caelum e da AdaptWorks. Apaixonado por desenvolvimento OpenSource e atua na comunidade organizando Coding Dojos, dando palestras e ajudando a coordenar grupos de usuários, como o Scaladores.


Rodrigo Silva Rahman de Almeida

Rodrigo Silva Rahman de Almeida


Trabalho com desenvolvimento a 10 anos, com java a 8 anos, certificado SCJP, atualmente trabalho com Ecommerce, Sistemas B2B e Arquitetura SOA da CVC, trabalhei no projeto do DDA, SCG e C3 (Sistema de venda de contratos por bancos) solicitado pelo banco central e CIP. Formado arquiteto pela Globalcode.



Paulo (JCranky) Siqueira

Paulo (JCranky) Siqueira


Paulo "JCranky" Siqueira é desenvolvedor Java e Scala. Atua como consultor independente, é instrutor na Globalcode e um dos fundadores dos scaladores - grupo de usuários Scala de São Paulo.


Daniel Capo Sobral

Daniel Capo Sobral


Aficionado por computadores e programação desde 1982, com experiência em inúmeras linguagens. Programador, devops e gamer. Formado em Ciência da Computação pela UnB, com mestrado na universidade de Gunma, no Japão na área de algoritmos distribuídos. Committer do FreeBSD de 1999 à 2004, envolvido com a comunidade Scala desde 2009, Scala Gold Badge no Stack Overflow.


Alberto Luiz Souza

Alberto Luiz Souza


Instrutor e Desenvolvedor da Caelum, apaixonado por Java e Scala.


Juliano Alves

Juliano Alves


Juliano Alves é especializado em Engenharia de Software pela PUC-SP e considera desenvolver software uma arte. Desenvolvedor a 7 anos, trabalhando com Java, Scala, Ruby e Python. Commiter do framework Mirror e do VidaGeek Games, uma plataforma de prática deliberada e gamefication para ensino. Palestrate em eventos como TDC, Caipira Ágil e DevDay. Hoje trabalha na Lambda3, empresa nascida e criada no meio ágil.


Jonas Abreu

Jonas Abreu


Programador Java e Scala, trabalha atualmente com foco em performance de aplicações e educação através de Prática Deliberada. Já foi instrutor e consultor da Caelum e da AdaptWorks. Apaixonado por desenvolvimento OpenSource e atua na comunidade organizando Coding Dojos, dando palestras e ajudando a coordenar grupos de usuários, como o Scaladores.


Pedro Matiello

Pedro Matiello


Pedro Matiello é formado em Ciência da Computação pelo Instituto de Matemática e Estatística da Universidade de São Paulo. Atuou como desenvolvedor e instrutor na Caelum e, atualmente, trabalha como desenvolvedor no Buscapé.


Lucas Cavalcanti

Lucas Cavalcanti


Formado em Bacharelado de Ciências da Computação na USP, é desenvolvedor de Software por vocação e amante das boas práticas de desenvolvimento e métodos ágeis. Conhece Ruby desde 2008 e acompanhou a sua evolução como linguagem e como comunidade até hoje. Trabalhou por 5 anos na Caelum como consultor, desenvolvedor e instrutor, passou pelo R7 e pela Baby e hoje trabalha na Nubank. Está no Twitter e no Github como @lucascs.


Data e Local

Sábado, 7 de Julho de 2012

Das 8:30 às 19:00 h

Universidade Anhembi Morumbi

Rua Casa do Ator, 275
Itaim Bibi, São Paulo - SP

Mais informações


Patrocinadores TDC 2012 SP Microsoft Oracle Amazon Web Services Concrete Solutions Nokia DevMedia Positivo PagSeguro Intel Software Google Plusoft InfoQ Brasil Octo Technology Esquilo.Mobi Anhembi Morumbi Globalcode