3 pontos por GN⁺ 2023-08-26 | Ainda não há comentários. | Compartilhar no WhatsApp
  • O texto discute a experiência do autor com a linguagem de programação Elixir, com foco em seus recursos de concorrência e paralelismo.
  • O autor usa Elixir como linguagem principal há 5-6 anos e reconhece seu desempenho e suas poucas desvantagens.
  • O autor compara o modelo de concorrência do Elixir com PHP e Python, argumentando que o modelo de concorrência do PHP depende do servidor web, enquanto o Python enfrenta dificuldades com concorrência por causa do Global Interpreter Lock (GIL).
  • Elixir é construído sobre Erlang e a máquina virtual do Erlang (BEAM), projetada para executar um grande número de processos leves, fornecendo a base para concorrência e paralelismo.
  • Ao iniciar, a BEAM cria threads para os escalonadores e, por padrão, lida com o agendamento de processos com uma para cada núcleo de CPU disponível.
  • O autor explica que as características de programação funcional imutável do Elixir e do Erlang foram uma escolha prática para alcançar altos níveis de concorrência e paralelismo.
  • Em Elixir, os processos não compartilham estado e só podem se comunicar de forma assíncrona por passagem de mensagens, garantindo execução concorrente e paralela com segurança.
  • O autor observa que, ao escrever código em Elixir, não é preciso se preocupar tanto com esses princípios básicos, já que a maioria das requisições web acontece dentro de um único processo.
  • Elixir oferece um mecanismo async/await para tarefas concorrentes, implementado no módulo Task, e há a função Task.async_stream, que executa uma Task para cada item enumerável.
  • O autor conclui que as excelentes opções de concorrência e paralelismo do Elixir e do Erlang não foram algo pensado depois, mas sim construídas na base do runtime, de modo que a concorrência na BEAM não é perigosa nem difícil.

Ainda não há comentários.

Ainda não há comentários.