Círculo de Conversação “Introdução Prática à Linguagem Scala para programadores Java”

03/08/2023 09h37

Embora o paradigma de programação orientado a objetos tenha desempenhado um papel importante na evolução das técnicas e processos de desenvolvimento de software, algumas situações vêm apontando para a necessidade de adoção de um outro modelo que até pouco tempo era considerado exclusivo de meios acadêmicos: o paradigma de programação funcional. 

Dentre as motivações para essa mudança está a necessidade de se desenvolver sistemas paralelos e distribuídos. Isso porque, devido à estagnação da performance dos núcleos de CPUs, a evolução no desempenho dos sistemas de TI tem exigido o uso de arquiteturas paralelas (para usar múltiplos núcleos) e distribuídas (para usar múltiplos computadores), terrenos nos quais as linguagens baseadas no paradigma de programação funcional levam vantagem em vários aspectos. Além disso, outro ponto a se destacar é o ganho de qualidade e de produtividade atingido por meio do uso de sistemas de tipos robustos e expressivos encontrados em linguagens funcionais, que aumentam as garantias de corretude do código produzido.

O melhor indicativo dessa tendência de mudança de paradigma é o fato de que a maioria das linguagens mainstream, como Java, Python, Javascript etc, têm tido suas recentes evoluções direcionadas à aproximação ao paradigma de linguagens funcionais. No caso específico do Java, tem sido notória, desde a versão 8 do mesmo, a introdução de elementos típicos desse tipo de linguagem.

Nesse contexto, a linguagem Scala tem feito a ponte entre os dois paradigmas no ambiente da JVM, justamente por permitir o uso de elementos de programação orientada a objetos e de programação funcional. De fato, os elementos da linguagem Scala foram a inspiração para os elementos de programação funcional introduzidos no Java. 

Perante o exposto, esta breve ação educacional apresentará uma introdução à linguagem Scala para programadores familiarizados com a linguagem Java, estabelecendo um ponto de partida para o posterior aprendizado da linguagem e do paradigma de programação funcional.

Carga horária: 6 horas-aula, de modo remoto pela plataforma Zoom.

Objetivo Geral:

Introduzir a linguagem de programação Scala para desenvolvedores de sistemas do Senado Federal que ainda não a conhecem. 

Objetivos Específicos:

  • Conhecer a linguagem Scala. 
  • Utilizar as ferramentas adequadas para o desenvolvimento Scala. 
  • Compreender como migrar código Java para Scala. 
  • Utilizar a linguagem Scala para apoiar o desenvolvimento de aplicações na JVM.

Público-alvo:

  1. Servidores efetivos e comissionados do Congresso Nacional e de outros órgãos públicos; 
  2. Profissionais e estudantes, brasileiros ou estrangeiros, egressos ou não dos cursos do ILB e de instituições parceiras, interessados no tema.

Facilitador:

O facilitador de aprendizagem será o servidor João Rafael Moraes Nicola, bacharel em Ciência da Computação pela Universidade de Brasília, mestre em Ciência da Computação pela Universidade de Minas Gerais, com especialização em Teoria de Linguagens de Programação, e doutor em Ciência da Computação pela Universidade Federal do Espírito Santo. Servidor efetivo do Senado Federal, desenvolve soluções usando linguagens Scala, Haskell e Java no âmbito da equipe do Projeto LexML Brasil (https://projeto.lexml.gov.br, https://github.com/lexml). 

Órgão promotor: Instituto Legislativo Brasileiro - Senado Federal (ILB/SF)

Data de realização:

  • Sexta-feira, 18/08/2023, de 10h às 12h.
  • Segunda-feira, 21/08/2023, de 10h às 12h.
  • Sexta-feira, 25/08/2023, de 10h às 12h.

Inscrições: https://saberes.senado.leg.br/course/view.php?id=2417