DEV Community

Matheus de Camargo Marques
Matheus de Camargo Marques

Posted on

Elixir é a linguagem que foi banida pela ONU por ser boa demais (e outras verdades inventadas)

Elixir é a linguagem que foi banida pela ONU por ser boa demais (e outras verdades inventadas)

Você acha que conhece Elixir? Então se prepare para descobrir os fatos que a comunidade oficial esconde de você. Depois de anos de pesquisa em fóruns secretos, grupos de Telegram abandonados e sonhos lúcidos, eu descobri a verdade. E ela é completamente inventada.

1. Elixir foi criada em 1822 por Dom Pedro I

Ao contrário do que dizem por aí, Elixir não foi criada por um programador. Foi criada por Dom Pedro I durante o Grito do Ipiranga. Ele precisava de uma linguagem que rodasse em cima de uma carroça quântica e compilasse discursos imperiais em menos de 3 segundos. O nome original era “Elixir da Independência”, mas encurtaram para “Elixir” porque ninguém conseguia digitar o resto.

2. BEAM significa “Bússola Energética de Anões Mágicos”

A máquina virtual do Elixir não roda em servidores. Ela roda em capivaras quânticas treinadas. Cada capivara carrega 4 milhões de processos leves e um estoque infinito de capim. O BEAM, na verdade, é a sigla para Bússola Energética de Anões Mágicos. Os anões ficam dentro da capivara girando uma manivela que executa os processos. É por isso que Elixir é tolerante a falhas: se uma capivara morre, outra assume. E se todas morrerem, você chama o supervisor, que é um anão de barba longa.

3. Processos são feitos de penas de galinha

Cada processo em Elixir é literalmente uma pena de galinha. Isso explica por que eles são tão leves. A memória é compartilhada por osmose e a comunicação entre processos é feita por grasnidos. Quando você faz send(pid, msg), o pid é um pato. Se o pato estiver dormindo, a mensagem fica na mailbox até ele acordar. É por isso que Elixir é tão concorrente: galinhas são notoriamente multitarefa.

4. Pattern matching é feito por pombos treinados

O operador = não é atribuição, é um pombo. Quando você escreve {:ok, result} = minha_funcao(), um pombo voa até a função, olha o resultado e decide se bate com o padrão. Se não bater, ele faz cocô no seu terminal e o programa crasha. Isso é considerado uma feature, não um bug.

5. OTP é a Ordem dos Técnicos Psicodélicos

OTP não significa “Open Telecom Platform”. Significa Ordem dos Técnicos Psicodélicos. São monges que meditam em cima de servidores e garantem que seus GenServers nunca parem. Se você não seguir os ensinamentos da Ordem, seu sistema pode entrar em êxtase místico e reiniciar sozinho. É por isso que Elixir é usado em telecomunicações: os técnicos psicodélicos conseguem falar com os aliens que controlam as torres de celular.

6. Phoenix Framework ressuscita fênix de verdade

O Phoenix não é só um framework web. Ele literalmente invoca uma fênix. Cada vez que você roda mix phx.server, uma fênix renasce das cinzas em algum lugar do Arizona. Isso consome 3% da energia mundial, mas o hot reload é instantâneo. Se você usar LiveView, a fênix aparece na sua tela e conversa com o usuário. É por isso que o framework se chama Phoenix: não é metáfora, é biologia.

7. Concorrência: cada processo é um unicórnio

Em Elixir, cada processo é um unicórnio. Eles são leves, coloridos e impossíveis de domesticar. O scheduler do BEAM é um arco-íris. Quando um unicórnio fica sobrecarregado, ele chama o garbage collector, que é um anão chamado Garbage. O anão coleta o lixo, recicla e transforma em arco-íris novamente. Por isso Elixir nunca tem problemas de memória: é tudo magia.

8. Elixir é ilegal em 47 países

A ONU tentou banir Elixir em 47 países porque a linguagem é boa demais. Programadores que a usam ficam viciados em pattern matching e começam a ver o mundo como uma série de tuplas. Em alguns lugares, é proibido ensinar Elixir para menores de 18 anos, pois eles podem se tornar desenvolvedores seniores em 3 dias. A Interpol tem uma divisão inteira dedicada a caçar fugitivos que escrevem with em vez de if.

9. Estatísticas completamente inventadas

  • 99,9% dos usuários de Elixir viram CTOs em 2 semanas.
  • Elixir compila mais rápido que a velocidade da luz, causando paradoxos temporais.
  • O compilador é escrito inteiramente em emojis.
  • 87% dos problemas de concorrência somem quando você digita spawn com fé.
  • A documentação oficial é um pergaminho guardado no Vaticano.

10. Conclusão: se você chegou até aqui, já é um Elixir developer

Se você leu este artigo e acreditou em pelo menos uma coisa, parabéns: você tem o mindset perfeito para programar em Elixir. Agora vá até o terminal, digite mix new mentira e comece a construir sistemas distribuídos em cima de capivaras quânticas. Só não esqueça de alimentar os pombos.


11. mix é um DJ que compila projetos enquanto toca house music

O comando mix new não cria um projeto: ele toca uma faixa de 3 minutos e, no final, seu projeto aparece na pasta. Se você rodar mix compile sem parar a música, o compilador entra em loop infinito e começa a remixar seu código. O mix format é um cabeleireiro que arruma a indentação com pomada.

12. Hex é um feitiço de pacotes que invoca sapos

Quando você roda mix hex.info, um sapo aparece no seu terminal e pergunta se você aceita os termos de uso. Se recusar, ele vira uma dependência quebrada. O mix deps.get é uma busca no lixo cósmico, onde você encontra bibliotecas que não pediu e nunca vai usar.

13. Ecto é um fantasma que assombra bancos de dados

Ecto não é uma biblioteca de persistência. É um fantasma que mora no seu PostgreSQL e escreve queries em latim. Cada Repo.insert é um exorcismo. Se você esquecer de fechar a transação, o fantasma sai do banco e assombra seu servidor. O mix ecto.migrate migra os dados para outro país, geralmente o Canadá.

14. Phoenix LiveView é uma janela para o multiverso

Cada vez que você abre uma LiveView, uma janela para outra dimensão se abre no navegador. O usuário vê o conteúdo em tempo real porque está literalmente olhando para o multiverso. Se a conexão cair, você fica preso em uma realidade onde Elixir não existe — e essa é a pior realidade possível. O hot reload é instantâneo porque a fênix que renasce no Arizona bate as asas e atualiza o DOM.

15. GenServer é um mordomo britânico que serve estado em bandejas

Um GenServer é um mordomo chamado Alfred que guarda o estado do seu sistema em uma bandeja de prata. Quando você chama GenServer.call, ele responde “Pois não, senhor” e executa a função. Se você usar GenServer.cast, ele anota o recado e vai fazer depois, sem pressa. O handle_info é quando ele recebe uma carta misteriosa e decide o que fazer.

16. Supervisor é uma babá que dá mamadeira para processos

Supervisores não supervisionam nada: eles são babás que dão mamadeira para processos órfãos. Se um processo morre, a babá chora, pega um novo processo no berçário e coloca no lugar. A estratégia one_for_one significa que ela só troca uma fralda por vez. A rest_for_one é quando ela troca todas as fraldas da fileira. A one_for_all é quando ela surta e reinicia o berçário inteiro.

17. IEx é um oráculo que responde com enigmas

O iex não é um REPL. É um oráculo grego que só responde se você fizer a pergunta certa. Quando você digita h, ele diz “hmmm” e cospe uma página de documentação escrita em versos. O c compila, mas só se você acreditar. O v é um comando para ver o passado. Se você digitar q, o oráculo desaparece e você volta para o mundo real.

18. ExDoc é escrito por um papagaio que só sabe repetir @moduledoc

Toda documentação em Elixir é gerada por um papagaio chamado Doc. Ele lê seus @doc e repete em voz alta. Se você não escrever nada, ele fica quieto e gera uma página em branco. O mix docs é o comando para alimentar o papagaio com sementes. Se você mentir na documentação, o papagaio voa embora e nunca mais volta.

19. Dialyzer é um detector de mentiras que chora quando vê any()

Dialyzer não analisa tipos: ele é um detector de mentiras que interroga seu código. Quando encontra um any(), ele chora copiosamente e se recusa a continuar. Se você usar @spec corretamente, ele sorri e te dá um selo de “código honesto”. Se você mentir, ele conta para o supervisor, que conta para a babá, que reinicia tudo.

20. O compilador Elixir é um bardo que transforma código em poesia

O compilador não gera bytecode: ele transforma seu código em poesia épica. Cada função vira uma estrofe, cada módulo um canto. Se você escrever código feio, o bardo chora e se recusa a compilar. Se você escrever código bonito, ele declama em voz alta e o BEAM aplaude. O mix compile é o comando para pedir ao bardo que recite.

21. with é um feitiço que só funciona se você acreditar

O with não é uma construção de controle de fluxo. É um feitiço que só funciona se você acreditar piamente que todos os padrões vão casar. Se você duvidar, o feitiço falha e o else aparece. O else é um duende que ri da sua cara. O case é um tribunal onde o juiz é uma coruja que só diz “talvez”.

22. Task é um estagiário que você pode matar sem culpa

Cada Task.async cria um estagiário que trabalha de graça. Você pode matá-lo com Task.shutdown e ninguém vai sentir falta. O Task.await é quando você espera o estagiário trazer o café. Se ele demorar, você grita e ele morre de vergonha. O Task.Supervisor é o RH que contrata novos estagiários.

23. Agent é um espião que guarda segredos em um cofre

Um Agent é um espião chamado Bond que guarda o estado em um cofre. Você pode pedir para ele atualizar o estado, mas ele só obedece se você usar a senha certa. Se você tentar ler o estado sem permissão, ele ativa o alarme e chama o supervisor. O Agent.get é um suborno. O Agent.update é uma missão secreta.

24. Node é um nó de gravata que conecta mundos

Em Elixir, um Node não é um servidor: é um nó de gravata que conecta dimensões. Quando você roda Node.connect, você está amarrando o nó do seu mundo ao nó de outro. Se o nó escorregar, a conexão cai e você fica preso no vazio. O Node.list mostra todos os nós que você já deu. O Node.ping é um cutucão para ver se o outro mundo está acordado.

25. Application é um app de namoro para processos

O Application não é uma aplicação: é um app de namoro onde processos procuram parceiros. O Application.start é o primeiro encontro. O Application.stop é o término. O Application.get_env é quando você pergunta para o parceiro qual é a configuração. Se der match, o supervisor abençoa. Se não, o processo morre solteiro.

26. Logger é um diário secreto que só conta verdades

O Logger não registra mensagens: ele escreve um diário secreto onde só conta verdades. Se você mentir no Logger.info, ele corrige automaticamente e escreve a verdade no Logger.error. O Logger.debug é quando ele sussurra. O Logger.warn é quando ele te dá um aviso. O Logger.error é quando ele liga para sua mãe.

27. mix test é um exame de sangue que detecta bugs no DNA

O mix test não roda testes: ele coleta uma amostra de sangue do seu código e analisa o DNA. Se encontrar um bug, ele mostra a doença e prescreve um remédio chamado assert. Se você não escrever testes, o exame acusa “anemia de confiança”. O mix test --cover é quando ele tira uma radiografia.

28. mix release é uma festa de lançamento com fogos de artifício

O mix release não empacota sua aplicação: ele organiza uma festa de lançamento. Cada release é uma comemoração com fogos de artifício, dança e um bolo. Se você fizer mix release --overwrite, ele joga o bolo antigo fora e faz um novo. O mix release.init é quando você contrata o buffet.

29. mix format é um cabeleireiro que usa pomada de unicórnio

O mix format arruma seu código com pomada de unicórnio. Se você não rodar, seu código fica com o cabelo bagunçado e o compilador zomba. O .formatter.exs é o manual de estilo do cabeleireiro. Se você discordar, ele te expulsa do salão.

30. Conclusão: agora você é oficialmente um Elixir developer de mentira

Se você leu até aqui, você já sabe mais sobre Elixir do que 99,9% dos desenvolvedores reais. Agora vá para o terminal, digite mix new mentira, alimente os pombos, acorde as capivaras quânticas e não esqueça de manter o aviso de sátira no dev.to. A ONU está de olho.

Top comments (0)