Linguagem Elixir
Por: Marcela Romero • 9/5/2016 • Dissertação • 519 Palavras (3 Páginas) • 570 Visualizações
HISTÓRIA DA LINGUAGEM ELIXIR
Elixir é uma linguagem de programação escrita com base na máquina virtual do Erlang que trabalha com o conceito de processos concorrentes. Foi criada por um brasileiro, chamado José Valim, que era um dos principais mantenedores do Ruby on Rails.
O Erlang é uma linguagem desenvolvida pela Ericsson, no final da década de 80, se trata de uma linguagem funcional. Após mais de duas décadas, sistemas desenvolvidos em Erlang conquistaram fama por serem extremamente estáveis e escaláveis. Apesar disso, seu uso se manteve, quase sempre, restrito à área de telecomunicações.
Porém temos visto a migração maior de sistemas, inicialmente monolíticos, em sistemas altamente distribuídos, e isso fez com que grande parte da comunidade de software buscasse soluções mais adequadas para esse novo cenário.
Facilidade de distribuição, alta concorrência e tolerância a falhas, não estavam presentes nas linguagens orientadas a objetos utilizadas em larga escala. Desde então se tem visto uma corrida para adequar estas soluções às novas necessidades, e ao mesmo tempo muitos observaram que tais adequações não eram viáveis e começaram a buscar soluções fora do paradigma OO. E nesse novo cenário, José Valim, iniciou sua busca por uma solução com as características deste novo mundo, distribuído com uma linguagem moderna e de alta produtividade. Estudando e programando em Erlang, Valim viu que Erlang era muito boa no que já tinha, mas ainda faltava algo, sua meta programação era baixa e dispositivo para fazer polimorfismo eram rudimentares.
Então, no inicio de 2012 surgiu o Elixir. Programas escritos em Elixir rodam na mesma VM do Erlang, consequentemente herdando todas suas características semânticas.
A evolução tecnologia impacta diretamente a maneira de desenvolver software. Ate década de 2000, tínhamos um cenário onde fabricante de processador praticamente conseguia dobrar a capacidade de processamento de um único core a cada dois anos. Era possível melhorar a desempenho da maioria dos softwares, trocando o servidor por uma maquina mais moderna.
Na segunda metade da década de 2000 essa capacidade dos fabricantes de aumentar a quantidade de transistores em um único core chegou ao limite. E a partir dai para conseguir aumentar a quantidade de transistores em um processador precisou aumentar a quantidade de cores.
Agora para usufruir da capacidade total de processamento era necessário adequar grande parte do código, antes single-threaded para multi-threaded. Trabalhar com threads aumenta a complexidade dos códigos.
um problema quando se trabalha com threads é o compartilhamento global de memória. A sincronização de operações de escrita se tornam um verdadeiro pesadelo. Normalmente,a solução se dá através do uso de monitores e semáforos, algo que aumenta a complexidade do sistema. O ideal é utilizar algum tipo de abstração que esconda esta complexidade do programador. Uma destas abstrações é conhecida como “Actor Model”. Modelo este utilizado em Erlang/Elixir.
Um dos objetivos de Valim, com o Elixir, é construir aplicações web, onde preciso de uma API que tem necessidade de ficar rodando, recebendo conexões e ficar conectado o tempo todo, ou em chats onde precisa de alta performance, gerenciando assim várias conexões.
Curiosidades:
Em se tratando de Erlang, o case mais conhecido é o do Whatsapp.
Atualmente quase 45% do tráfego 3G da Europa passam por máquinas que rodam Elixir
Bibliografia
http://www.infoq.com/br/interviews/erlang-jose-valim
...