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


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.


Juliano P Alves

Juliano P 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.


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