O documento discute a linguagem de programação Elixir. Apresenta o palestrante Adolfo Neto e seu trabalho com Elixir, incluindo ensinar lógica para computação usando Elixir. Também discute como aprender mais sobre Elixir, projetos com a linguagem e empregos em Elixir.
2. Sobre mim
● Professor DAINF desde 2008
● Orientador no Mestrado em Computação
Aplicada (PPGCA)
● Disciplinas:
− Lógica para Computação
− Métodos Ágeis
− Metodologia da Pesquisa
− Tópicos Avançados em Engenharia de Software 2
3. Temas de Pesquisa
● Métodos Ágeis para o Desenvolvimento
de Software (TDD, PP)
● Provadores de Teoremas (Tableaux e
SAT)
● Ensino de Lógica
● Encontros de Desenvolvedores (Coding
Dojos, Coderetreats, Meetups)
4. Roteiro
● Em quais linguagens…
● Linguagens mais usadas
● FizzBuzz
● José Valim
● Linguagens brasileiras
● Dave Thomas
● Características de Elixir
5. Roteiro
● Erlang
● Interactive Elixir
● Livro que inspirou a criação de Elixir
● Como aprender mais?
● O que tenho feito com Elixir?
● Empregos e Futuro em Elixir
6. Em quais linguagens de
programação você já
programou?
No mínimo um programa de umas 50
linhas
7. Em quais linguagens de
programação você já programou
50+ linhas?
● Java
● JavaScript
● C, C++ ou C#
● Python
● PHP
● Ruby
● Scala
● Lisp
● Clojure
● Prolog
● Erlang
● Lua
● Elixir
● Outra?
11. Como cheguei ao Elixir
● Histórico:
− 80’s: BASIC, Assembler
− 90-93: Algoritmos, Pascal, C, C++, LISP
− 94: Java (beta)
− 2003: Java (OO, Patterns GoF), AspectJ
− 2008-2010: Prolog, Ruby
− 2010: Clojure (Lisp e Java)
− 2014: Clojure *Meetup Durham, NC
− 2014-5: Elixir *Mentioned in several meetups at the
Research Triangle (Raleigh, Durham, Chapell Hill - NC)
12. Mais sobre como cheguei a Elixir
● Escutava falar de Elixir nos Meetups dos
EUA (04/2014-04/2015)
● Interessei-me pois o criador é brasileiro
● Elixir é funcional
● Elixir tem características de Clojure
16. Fizz Buzz em Java
public class FizzBuzz {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
if (i % 15 == 0) {
System.out.println("FizzBuzz")
} else if (i % 3 == 0) {
System.out.println("Fizz");
} else if (i % 5 == 0) {
System.out.println("Buzz");
} else {
System.out.println(String.valueOf(i));}}}}
https://codereview.stackexchange.com/questions/11489/fizzbuzz-implementation
17. Fizz Buzz em Elixir
https://www.leighhalliday.com/fizzbuzz-in-elixi
r
27. Testes
Dave Thomas é o criador de Elixir.
José Valim escreveu o primeiro livro sobre
Elixir.
Dave Thomas é um dos signatários do
Manifesto Ágil.
Elixir já está entre as 20 linguagens de
programação mais usadas no mundo,
segundo o Tiobe Index.
28. Características de Elixir
“Elixir é uma linguagem de programação
funcional, concorrente, de propósito geral
que executa na máquina virtual Erlang
(BEAM).”
“Elixir is a functional, concurrent,
general-purpose programming language that
runs on the Erlang virtual machine (BEAM).”
29. Características de Elixir
“Elixir is a functional, concurrent,
general-purpose programming language that
runs on the Erlang virtual machine (BEAM).”
(WIKIPEDIA)
32. Erlang
● Criada na Ericsson
● Erlang VM:
− Pequenos processos concorrentes
− Processos trocam mensagens
− Tolerante a falhas
− Joe Armstrong, Robert Virding, and Mike
Williams
● WhatsApp
35. Testes
Elixir pode ser usada em IoT.
Elixir roda na máquina virtual de Java.
Por ser uma linguagem voltada à
concorrência, Elixir deve ser boa para
computadores com múltiplos núcleos.
Em Elixir, funções são “cidadãos de segunda
classe”.
39. Seven Languages in Seven Weeks
● Prolog
● Clojure
● Haskell
● Scala
● Erlang
● Ruby
● Io
40. Seven Languages in Seven Weeks
● Erlang é uma linguagem funcional
● A sintaxe de Erlang é inspirada no do
Prolog, que usa Paradigma Lógico
● “Foi desenvolvida pela Ericsson para
suportar aplicações distribuídas e
tolerantes a falhas a serem executadas
em um ambiente de tempo real e
ininterrupto” (Wikipédia)
48. Testes
O livro que inspirou a criação de Elixir tinha
um capítulo sobre Prolog.
O segundo livro da série tem um capítulo
sobre Elixir e outro sobre Lua.
Uma das vantagens apontadas de Elixir sobre
Erlang é a sintaxe.
52. Podcasts
● Elixir Fountain
● Elixir, a linguagem hipster - Hipsters #48 -
Hipsters Ponto Tech
● Grok Podcast: Série sobre Elixir (2015):
http://www.grokpodcast.com/series/elixir/
● Grok Podcast: Série sobre Erlan g (2011):
http://www.grokpodcast.com/series/erlang/
66. Antifragilidade
● Desenvolvedores de software não podem
se acomodar (na verdade, ninguém deve)
● Forma de me manter em contato com o
mercado
● Problemas Reais para pesquisa
● Plano B
67. Projetos
● Mais Ensino de Lógica
● Ecossistema de Elixir (Meetups, Fóruns,
Livros, Podcasts etc.)
● DPLL (SAT Solver) em Elixir