Palestra na Universidade Federal da Bahia (UFBA)
Elixir, a linguagem de programação brasileira de código aberto utilizada no mundo todo
Execute em uma Instalação de Livebook:
-
Quando? 22/11 (SEG) 13:00-15:00
-
Onde? Informação privada.
-
Página da disciplina: MATA56 - Paradigmas de Linguagens de Programação
Sobre o palestrante
Adolfo Neto é professor da UTFPR, criador e co-host do Emílias Podcast - Mulheres na Computação e membro do projeto Emílias - Armação em Bits.
Resumo
Uma breve introdução à linguagem Elixir. Vamos conhecer as principais características da linguagem e porque ela é boa até mesmo para iniciantes em programação.
O que é Elixir?
Elixir é mesmo uma linguagem brasileira?
Foi criada por José Valim em 2011-12. Mas isto é o suficiente para dizer que ela é brasileira?
Como se pronuncia Elixir?
- Elichír
- Elikzír
- Élikzir
- Elíkzir
É mesmo usada no mundo todo? Em produção?
- Escutem a série Elixir em Produção do podcast Elixir em Foco
- Elixir é a quarta linguagem com melhor fator amada/temida da pesquisa com usuários do StackOverflow de 2021 e está em posição 17 entre as mais desejadas.
- Na mesma pesquisa, é a terceira que paga melhor.
- Empresas que usam Elixir 1, 2, 3, 4, 5
- Empregos para Devs Elixir
É o assunto de várias conferências!
- Elixir Brasil - 27 e 28 de novembro de 2021
- ElixirConf: Europe, USA/World, Africa
- Code BEAM. A mais recente foi a Code BEAM America 2021
- Code BEAM BR
Isto aqui é o Livebook!
Tudo o que vocês estão vendo está sendo executado em uma instalação de Livebook, um software para a criação de notebooks interativos com código em Elixir, dados e documentação.
- Repositório de código aberto: https://github.com/livebook-dev/livebook
- Site: http://livebook.dev
- Você pode testar de graça no https://fly.io/!!!
As melhores características de Elixir
Funções na computação
Funções nomeadas em módulos
defmodule Saude do
def calcula_imc(peso, altura) do
peso / (altura * altura)
end
end
Saude.calcula_imc(100, 1.5)
Funções anônimas
fn peso, altura -> peso / (altura * altura) end
imc = fn peso, altura -> peso / (altura * altura) end
imc.(100,1.5)
&(&1/(&2*&2))
imc = &(&1/(&2*&2))
imc.(100,1.5)
Funções matemáticas (puras)
Para as mesmas entradas, sempre retorna as mesmas saídas.
Não alteram o estado geral do sistema.
Não-funções matemáticas (funções impuras)
Para as mesmas entradas, a cada execução pode retornar uma saída diferente.
Exemplo:
Enum.shuffle([1,2,3])
Ou alteram o estado geral do sistema.
A BEAM
Casamento de padrões (pattern matching)
- //Joker//
- //Pin//
- lado esquerdo vs. lado direito
Sintaxe amigável (ex. omissão de parênteses)
O Operador Pipe
Funções de Ordem Superior
Final
-
Responder as perguntas do início
- Elixir é brasileira? É uma linguagem globalizada
- Como se pronuncia Elixir? “Não importa, o importante é que você chame”