Elixir Abraça Python: Pythonx Traz Programação Multilíngue ao Livebook

2025-02-25

Para resolver o desafio de integrar o Elixir com os ecossistemas Python existentes em ciência de dados, este artigo apresenta o projeto Pythonx. O Pythonx integra o interpretador Python na máquina virtual Erlang, permitindo conversão automática de dados e avaliação de código entre Elixir e Python, e simplificando o gerenciamento de ambientes virtuais. Com o Pythonx, os desenvolvedores podem misturar perfeitamente códigos Elixir e Python em notebooks Livebook, melhorando significativamente a eficiência do desenvolvimento e aumentando a praticidade do Livebook. O artigo também discute problemas potenciais, como o GIL, e soluções alternativas, e apresenta o Fine, uma biblioteca C++ para simplificar o desenvolvimento de NIFs.

Leia mais
Desenvolvimento

Tipos Teórico-Conjuntos do Elixir: Resolvendo o Problema da Evolução de Dados para Bibliotecas

2025-01-14

Este artigo explora como os tipos teórico-conjuntos no Elixir podem resolver os desafios de compatibilidade com versões anteriores da evolução de definições de dados públicos em bibliotecas em linguagens com tipagem estática. O autor ilustra as limitações dos sistemas de tipos existentes ao lidar com a evolução de estruturas de dados com um exemplo de interoperabilidade entre bibliotecas C e Rust. Uma solução baseada em subtipagem estrutural e revisão é proposta, permitindo que as bibliotecas estendam estruturas de dados sem quebrar os usuários existentes. Essa solução utiliza o compilador para verificação automática de segurança de tipo e suporta a coexistência de diferentes versões de dados entre bibliotecas e aplicativos.

Leia mais
Desenvolvimento Evolução de Dados