AVISO: esta série é uma fantasia satírica baseada em fatos reais sobre Elixir. Nada aqui deve ser levado ao pé da letra. Ao final de cada capítulo, os fatos por trás da lenda são revelados. Tags: #satire #humor #elixir #enchiridium
Elixir Enchiridium — Tomo I: A Origem
Prefácio do Tomo
Toda linguagem tem um mito de fundação. C tem o Unix. Java tem a televisão interativa. Python tem o Natal de 1989. Erlang tem os telefones da Ericsson.
Elixir tem um brasileiro que ouviu um sussurro.
Este tomo conta a história desse sussurro. Não como ela aconteceu — mas como ela deveria ter acontecido, se o universo tivesse um senso de humor compatível com o da comunidade Elixir. Cada capítulo parte de um fato verificável: uma data, um nome, um número, uma linha de código que existe. E termina com um exagero que só faz sentido se você já programou na BEAM.
São dez capítulos. O primeiro tomo de dez. Mil capítulos até o fim.
Comecemos pelo começo: antes de Valim, antes de Elixir, antes até de Erlang, havia um problema que ninguém conseguia resolver.
Capítulo 1 — O Problema que Não Podia Cair
Nos anos 1980, na Suécia, a Ericsson tinha um problema do tamanho de um país: telefones caíam. Não por falha humana. Por falha de software. Um bug em um sistema de comutação significava milhares de chamadas perdidas, clientes furiosos e engenheiros dormindo no escritório.
Em 1985, um grupo de engenheiros da Ericsson recebeu uma missão que soava simples e era impossível: "encontrar melhores formas de programar telefonia". O grupo se chamava SPOTS — SPC for POTS — que significava Stored Program Control para Plain Ordinary Telephone Service. Eles escreveram telefonia em muitas linguagens diferentes. Nenhuma funcionava. Nenhuma aguentava a carga. Nenhuma sobrevivia a uma falha sem derrubar o sistema inteiro.
A lenda diz que, numa reunião particularmente longa, um engenheiro chamado Joe Armstrong olhou para o quadro branco, olhou para os colegas, e disse: "E se a gente parar de tentar evitar falhas e começar a projetar para elas?" O silêncio na sala foi tão profundo que se ouviu um telefone tocar do outro lado do prédio. Ninguém atendeu. Estavam ocupados revolucionando a computação.
O fato por trás da lenda: Em 1985, a Ericsson iniciou um esforço para encontrar melhores formas de programar sistemas de telefonia, sob o guarda-chuva do projeto SPOTS (SPC for POTS). Joe Armstrong e outros engenheiros estavam envolvidos nesse esforço. A linguagem que eventualmente surgiria desse trabalho — Erlang — foi projetada para sistemas de telecomunicações que exigiam alta disponibilidade e tolerância a falhas.
Gancho: O problema era claro. A solução, ninguém sabia ainda, viria de uma linguagem que ninguém tinha pedido para criar.
Capítulo 2 — Erlang, a Linguagem que Ninguém Queria
Joe Armstrong não queria criar uma linguagem de programação. Ele queria resolver um problema de telefonia. A linguagem era um efeito colateral.
A lenda diz que Armstrong e seus colegas — Robert Virding, Claes Wikström e Mike Williams — começaram escrevendo um interpretador de Prolog para uma álgebra de telefonia. O Prolog era poderoso demais: o backtracking consumia recursos, a lógica não combinava com concorrência. Então eles fizeram a coisa mais óbvia do mundo: removeram o backtracking e adicionaram processos ao Prolog. O resultado foi uma linguagem determinística com processos, que eles batizaram de "Erlang".
A lenda diz que o nome foi escolhido por causa de Agner Krarup Erlang, o matemático dinamarquês que criou a teoria de filas usada em telecomunicações. Isso é verdade. A lenda também diz que, se Agner Erlang estivesse vivo, ele teria dito: "Eu só queria entender filas de telefone, não criar uma linguagem funcional concorrente." Isso é falso. Ele teria dito: "Finalmente, alguém usou minha teoria para algo útil."
O fato por trás da lenda: A primeira versão do Erlang foi implementada em Prolog em 1986. A linguagem foi projetada para escrever programas concorrentes que "rodam para sempre", usando processos leves sem memória compartilhada e comunicação por passagem assíncrona de mensagens. A filosofia central — "let it crash" — foi formulada por Armstrong enquanto trabalhava no Ericsson Computer Science Lab, onde havia a necessidade de um sistema de comutação de telecomunicações confiável e tolerante a falhas.
Gancho: Mas Erlang, por si só, não era suficiente. Ele precisava de uma máquina. Uma máquina que pudesse rodar milhões de processos sem suar.
Capítulo 3 — BEAM: A Máquina que Roda para Sempre
A primeira versão do Erlang rodava em Prolog. Era lenta demais para aplicações reais — precisava ser pelo menos 40 vezes mais rápida para ser útil em projetos de verdade. Então veio JAM (Joe's Abstract Machine), que era 70 vezes mais rápida que o interpretador Prolog, mas ainda não o suficiente. Então veio TEAM (Turbo Erlang Abstract Machine), que compilava para C e era rápida para projetos pequenos, mas o código compilado era grande demais para projetos grandes.
E então, em 1989, Bogumil "Bogdan" Hausman criou a BEAM — Bogdan's Erlang Abstract Machine. Era uma máquina híbrida, capaz de executar tanto código nativo (traduzido via C) quanto código threaded com um interpretador. A BEAM permitia que clientes compilassem módulos críticos para código nativo e deixassem o resto como bytecode interpretado. Era mais rápida que o JAM. Era mais prática que o TEAM.
A lenda diz que a BEAM foi batizada com o nome de Bogdan porque ele foi o único que acreditou que uma máquina virtual poderia rodar milhões de processos leves em uma única máquina. Bogdan nunca confirmou. Mas também nunca negou.
O fato por trás da lenda: A BEAM foi criada por Bogumil "Bogdan" Hausman como uma máquina virtual híbrida para Erlang. Ela podia executar código nativo e código threaded, e foi significativamente mais rápida que suas antecessoras. O primeiro release do OTP (Open Telecom Platform) com a BEAM foi o OTP R1B, lançado em 1996. Hoje, a BEAM é a máquina virtual que executa não apenas Erlang, mas também Elixir, Gleam e outras linguagens que adotaram sua arquitetura de processos leves.
Gancho: Com a BEAM pronta e o Erlang maduro, faltava apenas uma coisa: uma linguagem que os humanos comuns conseguissem amar. E foi aí que um brasileiro entrou na história.
Capítulo 4 — José Valim e o Chamado da BEAM
José Valim não era um mago. Não usava capa. Não tinha varinha. Mas tinha algo mais poderoso: uma insatisfação produtiva.
Em 2010, Valim era um dos fundadores da Plataformatec, uma consultoria brasileira, e membro do core team do Ruby on Rails. Ele estava trabalhando em melhorias de thread safety no Rails, e o desafio era grande — tão grande que ele sentiu que resolver problemas de concorrência em Ruby era difícil demais, e que era complicado manter a filosofia de "programmer happiness" do Ruby enquanto lidava com esses problemas. Foi então que ele decidiu estudar outros paradigmas e tecnologias. E, nessa jornada, ele se apaixonou pela Erlang VM.
A lenda diz que, na primeira vez que Valim rodou um programa Erlang, a BEAM sussurrou: "Finalmente, alguém que me entende." Valim, que estava acostumado com o sussurro do Ruby, achou o sussurro da BEAM mais grave, mais confiável, mais concorrente. Ele ouviu. E decidiu que queria trazer a produtividade e a flexibilidade que ele esperava de uma linguagem moderna para a BEAM, mantendo 100% de compatibilidade com Erlang.
O fato por trás da lenda: José Valim começou a trabalhar em Elixir no início de 2011. Em abril daquele ano, lançou a versão v0.3.0, estável o suficiente para usar em projetos próprios. No entanto, após usar em alguns projetos, percebeu que não estava satisfeito com algumas decisões de design — a versão inicial tentava se afastar consideravelmente de Erlang, o que se revelou um erro. Ele decidiu pausar o projeto para estudar linguagens antigas, novas e emergentes. Foi em outubro de 2011, durante uma curta estadia em São Francisco, que ele chegou à fundação do que seria a versão atual de Elixir, com a ajuda de Yehuda Katz.
Gancho: Valim tinha a visão. Tinha a BEAM. Tinha o Erlang. Mas ainda não tinha o aval da empresa. Isso viria em janeiro de 2012.
Capítulo 5 — O Dia em que a Plataformatec Disse "Sim"
Em janeiro de 2012, José Valim apresentou aos outros sócios da Plataformatec o primeiro rascunho de Elixir. Ele contou o que imaginava que Elixir poderia ser: uma linguagem produtiva, com ótimas ferramentas, extensível, que incentivasse práticas que melhorassem a manutenibilidade, e que tivesse o modelo de concorrência embutido e a robustez que a Erlang VM oferecia.
A lenda diz que a reunião durou três horas. Duas delas foram Valim falando sobre pattern matching. Na terceira, os sócios perguntaram: "Isso vai dar dinheiro?" Valim respondeu: "Não sei. Mas vai ser bonito." Os sócios, que eram brasileiros e entendiam de beleza, aceitaram.
Eles concordaram que Valim poderia dedicar 100% do seu tempo ao Elixir. Por meses, a empresa ficou na incerteza se a decisão tinha sido correta. A incerteza só desapareceu quando Dave Thomas, fundador da Pragmatic Programmers, e Simon St. Laurent, editor sênior da O'Reilly, anunciaram que estavam escrevendo livros sobre Elixir. Depois disso, tudo mudou.
O fato por trás da lenda: Em janeiro de 2012, Valim apresentou o primeiro rascunho de Elixir aos sócios da Plataformatec. Eles decidiram investir, permitindo que Valim trabalhasse em tempo integral no projeto. A incerteza inicial foi dissipada quando Dave Thomas e Simon St. Laurent anunciaram que escreveriam livros sobre Elixir. A partir daí, meetups começaram a surgir ao redor do mundo, centenas de bibliotecas foram publicadas no Hex, e a primeira ElixirConf aconteceu.
Gancho: Com o aval da empresa, Valim mergulhou de cabeça. O primeiro release oficial não demoraria.
Capítulo 6 — v0.5.0: O Primeiro Grito
Em 25 de maio de 2012, Elixir v0.5.0 foi oficialmente lançado. Não era a primeira versão — havia versões anteriores, como a v0.3.0 de abril de 2011 — mas era a primeira versão desde que a linguagem foi reescrita. A v0.5.0 marcava o primeiro release da versão atual de Elixir, aquela que Valim havia concebido em São Francisco com a ajuda de Yehuda Katz.
A lenda diz que, no dia do lançamento, Valim postou o anúncio na lista de e-mails do Erlang. A mensagem começava com "Hello everyone" e dizia: "Today we have officially released Elixir." A lista de Erlang, acostumada com discussões sobre telecomunicações e máquinas virtuais, recebeu a notícia com um silêncio respeitoso. Então alguém respondeu: "Isso é... interessante." E outro: "Alguém já testou?" E outro: "Vou testar." E assim, em silêncio, a comunidade começou a se formar.
O fato por trás da lenda: Elixir v0.5.0 foi lançado em 25 de maio de 2012. O anúncio foi feito na lista de e-mails do Erlang e no blog oficial do Elixir. O post de lançamento detalhava o retrospecto do desenvolvimento, desde o início em 2011 até a reescrita que resultou na versão atual. A Plataformatec havia aceitado patrocinar o projeto, e a equipe já estava trabalhando em ferramentas como o ExDoc e suporte a syntax highlighting no GitHub.
Gancho: Com o primeiro release no ar, Elixir começou a atrair atenção. Mas a verdadeira explosão viria com uma ferramenta que ainda não existia: o Phoenix.
Capítulo 7 — O Caminho até a 1.0
Entre 2012 e 2014, Elixir cresceu em silêncio. Valim e a equipe da Plataformatec trabalharam em ferramentas, documentação e bibliotecas. O mix foi criado. O Hex foi lançado. O ExDoc tornou-se a ferramenta padrão de documentação. A comunidade começou a se organizar em meetups e canais de IRC.
A lenda diz que, em algum momento de 2013, Valim olhou para o calendário e percebeu que Elixir estava prestes a completar três anos. Ele disse: "Acho que está na hora de uma 1.0." A BEAM, do outro lado do terminal, respondeu: "Já era hora." E assim, em setembro de 2014, Elixir v1.0 foi lançado. Foram 8.005 commits de 189 contribuidores, incluindo o commit inicial de 9 de janeiro de 2011.
A lenda diz que, no dia do lançamento da 1.0, Valim abriu uma garrafa de café. Não de champanhe. De café. Porque programador brasileiro comemora com café.
O fato por trás da lenda: Elixir v1.0 foi lançado em setembro de 2014, após 8.005 commits de 189 contribuidores. O commit inicial foi em 9 de janeiro de 2011. A partir da 1.0, uma nova versão menor passou a ser lançada a cada 6 meses, aproximadamente em junho e dezembro de cada ano.
Gancho: Com a 1.0 no ar, Elixir estava pronto para o mundo. Mas o mundo só descobriria Elixir de verdade quando um framework web aparecesse.
Capítulo 8 — Phoenix: O Framework que Ressuscitou a Fênix
Em 2014, enquanto Elixir se preparava para a 1.0, um desenvolvedor chamado Chris McCord começou a trabalhar em um framework web para Elixir. Ele queria algo que fosse rápido, concorrente e que aproveitasse ao máximo a BEAM. O framework foi batizado de Phoenix.
A lenda diz que o nome foi escolhido porque, na primeira vez que McCord rodou o servidor Phoenix, uma fênix renasceu das cinzas no Arizona. Isso consumiu 3% da energia mundial, mas o hot reload era instantâneo. A fênix, quando questionada, disse que não trabalhava para empresas de rede social e que preferia ajudar desenvolvedores a construir APIs e aplicações em tempo real.
A verdade é que Phoenix foi lançado em 2015 e rapidamente se tornou o framework web padrão para Elixir. Com o tempo, ele trouxe o LiveView — uma forma de criar aplicações interativas renderizadas no servidor, sem escrever JavaScript.
O fato por trás da lenda: Phoenix 1.0 foi lançado em 2015. O framework é escrito em Elixir e roda sobre a BEAM, aproveitando o modelo de concorrência e a tolerância a falhas da máquina virtual. Phoenix LiveView, que permite criar experiências de usuário ricas e em tempo real sem JavaScript, foi lançado posteriormente e se tornou uma das características mais distintivas do ecossistema Elixir.
Gancho: Com Phoenix no ecossistema, Elixir estava completo. Mas ainda faltava uma coisa: uma empresa grande o suficiente para provar que a linguagem funcionava em escala.
Capítulo 9 — A Primeira Empresa que Apostou Tudo
A lenda diz que, em 2018, um desenvolvedor chamado Marcelo Lebre estava procurando uma linguagem para sua nova startup. Ele havia trabalhado com muitas linguagens e frameworks e sempre encontrava o mesmo trade-off: fácil de codificar versus fácil de escalar. Em 2015, ele descobriu Elixir. Ficou intrigado. Testou. E viu potencial.
Em dezembro de 2018, quando Marcelo e seu co-fundador decidiram fundar a Remote, uma plataforma de emprego global, ele não teve dúvidas: Elixir seria a tecnologia principal. Ele queria focar em construir um ótimo produto rápido, sem se preocupar com escalabilidade desde o início. Elixir era o match perfeito: performance confiável, sintaxe fácil de ler, comunidade forte e uma curva de aprendizado acessível para novos contratados.
A Remote cresceu. E cresceu rápido. Em pouco mais de dois anos, atingiu o status de unicórnio. Hoje, sua organização de engenharia tem quase 300 pessoas, e Elixir continua sendo a tecnologia principal.
A lenda diz que, quando a Remote atingiu o status de unicórnio, Marcelo olhou para o terminal e disse: "Obrigado, BEAM." A BEAM respondeu: "De nada. Agora reinicie aquele processo ali."
O fato por trás da lenda: A Remote foi fundada em 2019 e atingiu o status de unicórnio em pouco mais de dois anos, usando Elixir como tecnologia principal desde o dia zero. Marcelo Lebre, co-fundador e presidente, escolheu Elixir porque queria construir um ótimo produto rápido sem se preocupar com escalabilidade desde o início. A empresa opera principalmente com um monólito, com Elixir no backend e React no front-end.
Gancho: Mas a história de Elixir no Brasil não termina com a Remote. Termina com uma aquisição que mudou tudo.
Capítulo 10 — Nubank e a Consagração Brasileira
Em janeiro de 2020, o Nubank anunciou a aquisição da Plataformatec — a empresa que criou Elixir. A notícia correu o mundo. A empresa que havia criado a linguagem agora fazia parte do maior banco digital da América Latina. Elixir, a linguagem criada por um brasileiro, era agora parte do banco mais valioso da América Latina.
A lenda diz que, no dia do anúncio, Valim foi visto tomando café em São Paulo. Um jornalista perguntou: "O que você sente?" Valim respondeu: "Sinto que a BEAM está feliz." O jornalista perguntou: "E você?" Valim respondeu: "Também."
A verdade é que a aquisição foi um marco. Elixir deixou de ser uma linguagem de nicho brasileira para se tornar parte da infraestrutura de um dos maiores bancos digitais do mundo. O Nubank usa Elixir extensivamente, e a aquisição da Plataformatec consolidou a linguagem como uma escolha viável para sistemas financeiros de larga escala.
O fato por trás da lenda: Em janeiro de 2020, o Nubank anunciou a acqui-hire da Plataformatec, a consultoria brasileira que criou Elixir. A aquisição consolidou Elixir como uma tecnologia viável para sistemas financeiros de larga escala. José Valim deixou a Plataformatec após a aquisição para continuar desenvolvendo Elixir em tempo integral.
Gancho: O Tomo I termina aqui. Mas a história de Elixir está apenas começando. No próximo tomo, vamos explorar a máquina que faz tudo isso funcionar: a BEAM, seus processos, seus schedulers, sua memória. E, claro, as capivaras quânticas.
Epílogo do Tomo I
Dez capítulos. Uma linguagem. Mil processos. E um brasileiro que ouviu um sussurro.
Este foi o Tomo I — A Origem. No próximo tomo, A Máquina, vamos abrir a BEAM e ver o que há dentro: processos leves, schedulers, garbage collection, memória. E, é claro, as capivaras quânticas que giram as manivelas.
Até lá.
Agora, sério: Elixir foi criada por José Valim, um brasileiro de verdade, em 2012, como um projeto de P&D na Plataformatec. Erlang foi criado por Joe Armstrong e outros engenheiros da Ericsson nos anos 1980. A BEAM foi criada por Bogumil Hausman. Phoenix foi criado por Chris McCord. A Remote atingiu o status de unicórnio usando Elixir. O Nubank adquiriu a Plataformatec em 2020. As capivaras quânticas não são reais — mas deveriam ser. Este artigo é uma fantasia satírica baseada em fatos. Mantenha o aviso para não enganar ninguém.
Top comments (0)