1 pontos por GN⁺ 1 일 전 | 1 comentários | Compartilhar no WhatsApp
  • A nova página inicial apresenta o Elixir como uma linguagem baseada em Erlang escalável, de desenvolvedores individuais a equipes com centenas de pessoas, de um único servidor a redes globais
  • Com base em imutabilidade, segurança de memória e um sistema de tipos gradual, permite criar sistemas de fácil recuperação após falhas e de manutenção simples
  • Uma única base de código pode escalar para máquinas multicore e vários nós e, combinada com o Numerical Elixir, também oferece suporte a computação em GPU
  • Com o ecossistema Phoenix, Nerves, Nx e Broadway, é possível desenvolver web, embarcados, machine learning, processamento de dados, IoT e sistemas distribuídos
  • O gerenciador de pacotes, formatador de código, ferramentas de documentação, IEx, Livebook e o ecossistema Hex dão suporte desde a prototipagem até a operação em produção

Experiência de desenvolvimento e escalabilidade

  • O Elixir combina desenvolvimento rápido com práticas profissionais robustas, apoiado em décadas de confiabilidade e tolerância a falhas do Erlang
  • Busca um código claro, focado em dados e no domínio
    • Oferece imutabilidade e segurança de memória
    • Permite usar o sistema de tipos gradual do Elixir 1.20
  • Uma única base de código escala verticalmente em máquinas multicore e horizontalmente por meio de comunicação entre nós, sendo adequada para sistemas orientados a mensagens e sistemas web em tempo real
  • Combinado com o Numerical Elixir, é possível escalar a computação por cores, clusters e GPUs
  • Foi escolhido por vários anos consecutivos como uma das linguagens mais admiradas do mundo, e os resultados podem ser conferidos na pesquisa Stack Overflow 2025
  • Inclui gerenciador de pacotes padrão, formatador de código e recursos de documentação
    • Com o shell interativo IEx e o notebook interativo Livebook, é possível criar protótipos rapidamente e depurar em tempo real sistemas em execução
  • É usado em ambientes de produção em diversos setores e aplicações, de profissionais autônomos a empresas da Fortune 500

Áreas de uso e ecossistema

  • Para desenvolvimento web, usa Phoenix para desenvolvimento rápido, LiveView para adicionar recursos em tempo real com pouco código, Ecto para a camada de dados e Plug
  • Em sistemas embarcados, o Nerves empacota a aplicação inteira como um firmware compacto e oferece atualizações sem fio e tolerância a falhas em nível de operadora
    • Com o AtomVM, é possível executar Elixir até em dispositivos tão pequenos quanto microcontroladores
  • Em machine learning, o Nx fornece tensores acelerados por GPU, e o Livebook oferece execução de modelos pré-treinados, visualização de dados e implantação em um único ambiente
  • Para processamento de dados e mídia, usa backpressure e concorrência
    • O Broadway processa milhões de eventos a partir de filas
    • O Membrane fornece pipelines combináveis para áudio, vídeo e outros tipos de mídia
  • Com base na VM Erlang, também é usado em IoT e sistemas distribuídos, com projetos Erlang relacionados como EMQX, RabbitMQ e Riak
  • No Hex, é possível explorar milhares de pacotes da comunidade, e o ecossistema continua crescendo
  • A Elixir Team lidera o desenvolvimento da linguagem, e a Erlang Ecosystem Foundation apoia o Elixir e a comunidade Erlang mais ampla
  • Entre os Elixir Open Source Stewards, que contratam ou patrocinam desenvolvedores open source, estão as seguintes empresas
    • Software Mansion: desenvolve ferramentas para toda a stack desde 2016, incluindo Membrane, Popcorn, LiveDebugger e Legion
    • Dashbit: cria Elixir, Livebook, Broadway, Plug e outros projetos, além de apoiar empresas na adoção e expansão em produção
    • Jump: contribui para Expert LSP, Quokka e outros projetos

1 comentários

 
GN⁺ 1 일 전
Comentários no Hacker News
  • José Valim e a equipe realmente criaram uma linguagem Elixir e ecossistema excepcionais, e sou especialmente grato pelo esforço constante no último ano para lançar a 1.20

    • Já ouvi de fãs de Erlang que Elixir é uma variante horrível do Erlang feita por gente que não entendeu direito o BEAM e o transformou em algo no estilo Ruby, mas que justamente por isso acabou se popularizando; fico curioso sobre o que acham disso
  • Elixir é excelente, mas eu queria ver mais financiamento e esforço de desenvolvimento indo para o próprio BEAM para melhorar o desempenho bruto de execução, e não só a concorrência
    Nos últimos mais de 10 anos, parece que as melhorias de desempenho dependeram basicamente de uma pessoa

    • Nos últimos 5–6 anos, várias pessoas desenvolveram o compilador JIT, e a equipe do WhatsApp também contribuiu bastante
      Depois que a equipe do Erlang/OTP extrair todo o desempenho possível do JIT, provavelmente vai partir para otimizações entre módulos; isso exigirá redesenhar alguns elementos básicos do runtime, mas deve abrir muitas novas possibilidades
    • É bem difícil melhorar o desempenho de operações matemáticas em casos de uso reais num interpretador de bytecode
  • Comecei a aprender Elixir este ano e fiquei impressionado com a linguagem e os recursos oferecidos pelo BEAM, além de ter ficado completamente encantado com esse ecossistema subestimado
    O novo site também parece ótimo

    • Um desenvolvedor de quem gosto, Joe Armstrong, escreveu um texto avaliando Elixir de forma majoritariamente positiva, e acho que, se ele não tivesse criado Erlang, teria virado desenvolvedor de Elixir
      https://joearms.github.io/published/2013-05-31-a-week-with-e...
      Que Joe Armstrong descanse em paz, ele foi brilhante
    • Erlang sustentou por décadas operadoras de telecomunicações avaliadas em dezenas de bilhões de dólares, e Elixir tornou isso mais fácil de aprender, além de substituir em boa parte gambiarras de clustering em ambientes de grande escala
      Dá para implantar rapidamente em várias plataformas a partir de uma única base de código, e Phoenix Channels também é econômico
      https://quasar.dev/introduction-to-quasar/
  • Também espero que a UI do fórum seja renovada, e que Elixir continue crescendo
    Além de ser uma ótima linguagem, ela também é muito adequada para codificação com IA

    • Na comparação da Tencent, Elixir ficou em 1º lugar geral; isso pode ser visto na tabela 4, mas o material já tem mais de um ano
      https://arxiv.org/pdf/2508.09101
  • Mesmo para os padrões de hoje eu não uso um monitor grande, então é uma pena que metade da tela do site esteja vazia
    Não me lembro de como era o site antigo, então não sei se isso realmente mudou

  • O BEAM, runtime do Elixir, é muito adequado para orquestrar agentes e sistemas multiagentes, e reuni algumas observações sobre isso aqui
    https://josefrichter.design/blog/crowd

  • Um dos principais casos de uso de Elixir/Erlang parece ser a funcionalidade de cluster distribuído, e tenho curiosidade sobre casos de uso reais
    Usei bastante Elixir no trabalho, mas mais como um “Rails melhor” para escalar horizontalmente apps Phoenix independentes em ambientes Kubernetes tradicionais, então sinto que deixei de lado o objetivo principal

    • Trabalhei no WhatsApp no passado e usávamos ativamente os recursos distribuídos do Erlang; pelo que sei, depois que saí o tamanho do cluster ficou muito maior
      É extremamente conveniente, mas vira dor de cabeça quando não há fronteira de segurança entre nós e a rede é instável
      Num app de chat, primeiro você envia uma mensagem ao serviço de banco de dados de presença para verificar se a outra pessoa está online; se ele retornar um ID de processo, você envia uma mensagem para esse processo usando a mesma API, independentemente de ele estar na mesma máquina ou em outra
      São raros os ambientes em que o envio arbitrário de mensagens entre processos, threads e tarefas se estende tão naturalmente por todo o sistema; se não houver ID de processo, basta enviar a mensagem para o banco de dados offline
    • Já mexi um pouco com Elixir distribuído no Kubernetes usando Horde.DynamicSupervisor, e também existem outras opções como swarm e DynamicSupervisor
      Seria bom ver uma análise clara de que vantagens essas abstrações oferecem em relação a abordagens fora do BEAM
      https://www.youtube.com/watch?v=nZmDEUeHeVI
    • Recentemente, ao criar um plano de controle do Kubernetes em Elixir, fiquei esperando o momento de usar os recursos distribuídos, mas controlando um DaemonSet escrito em Go isso simplesmente não foi necessário
      Ainda assim, a estrutura é mais acoplada do que apps independentes e orquestra tarefas sobre Firecracker num estilo Lambda ou Fly.io
      https://jomcgi.dev/ember
    • Elixir/Erlang se encaixa muito bem em ambientes semiembarcados que exigem componentes robustos de comando e controle de nível mais alto, com comportamento determinístico
      Há muito tempo apliquei Erlang neste equipamento; foi divertido e houve muitos desafios interessantes para todos os envolvidos
      https://www.icare-world.com/us/product/icare-eidon/
  • Elixir é uma linguagem muito elegante, então quero encontrar um motivo para usá-la em breve

    • Lendo o livro de programação em Erlang do Joe Armstrong, minha forma de enxergar programação funcional e abstração mudou, e isso me tornou um desenvolvedor Ruby melhor
      Escolhi Elixir pela primeira vez quando Ruby não conseguia lidar com um grande volume de mensagens WebSocket; ela se destacou especialmente em ambientes de alta concorrência, e eu também gosto do Phoenix LiveView, então mantenho alguns projetos paralelos com ele
    • Foi divertido trabalhar num assistente pessoal multiagente; ainda está em desenvolvimento e não há garantias, mas publiquei o motor que uso de fato
      https://github.com/ityonemo/ce_ce
    • Se existe um programa que não precisa rodar rapidamente, isso já pode ser um motivo para usar Elixir
    • Em geral eu concordaria que Elixir melhorou o Erlang, mas, como alguém que usou Ruby por muito tempo, não acho a linguagem tão elegante quanto eu esperava
      Até uma sintaxe simples como defmodule Xyz do parece estranha