Concrete Logo
Hamburger button

Para aprender Erlang

  • Blog
  • 28 de Setembro de 2012
Share

Mais um texto da série “Para aprender…“.

Já sairam:

Aliás neste último tem novidades com a inclusão dos links passados nos comentários e mais um link para livros gratuitos.

 

erlang shocks

href=”https://bulldozer00.com/2011/10/28/shocking/

 

Por quê demônios Erlang?

    De forma rápida: se sua aplicação depende de um alto número de threads (aplicações web por exemplo) ou processos do SO, então há uma chance grande que implementar a mesma solução em Erlang vai te salvar muito processamento e recurso computacional.

    Exemplos (que já citamos em Comet para aplicação web em tempo real):

    Há outras maravilhas na VM do Erlang que não apenas a concorrência.

    Vejam o mais famoso vídeo de Erlang (e mais antigo) falando sobre estas features (não vale rir da cara dos criadores… hoje eles estão piores…):

 

Ok! E por onde eu começo?

Erlang é diferente do que a maioria das pessoas estão acostumadas. A sintaxe é funcional e seus tipos nativos de concorrência podem assustar os iniciates. Sugiro uma abordagem em 3 etapas. Mas antes os pré-requisitos:

 

Pré aprendizado – Distribuição

 

Pré aprendizado – Editores

    Editores ou Ambientes de Desenvolvimento (IDEs) são um problema para algumas pessoas.

    Para Erlang, eu gosto de usar o EMACS. Uma configuração padrão para EMACS pode ser vista em:
    Simple .emacs configuration file with Erlang Mode + Distel + line-num

    Além dele, há um plugin para o Sublime Text 2 que é um editor muito simples e intuitivo de usar (mais do que o EMACS pelo menos). O suporte para Erlang está no plugin: .
    SublimErl

    Por último, há um plugin em desenvolvimento para o Eclipse chamado Erlide. Funciona para versões 3.6 +, mas o requisito mínimo é de Java 1.6 e Erlang R15.
    erlide – Erlang IDE e o repositório no Github Erlang IDE project

 

Etapa nº 1 – Erlang sequencial

    Try Erlang

      – Tutorial interativo com um shell na página web. Dá uma ideia inicial da sintaxe da linguagem e dura 15 minutos. A ideia é tão boa que deveria ser extendida para mais alguns assuntos ou alguns exemplos mais difíceis.

    Learn You Some Erlang for Great Good!

      – Tutorial completo com tudo que há no núcleo do Erlang. Para irmos com calma e não assustar os iniciantes, sugiro uma leitura mais detalhada até o capítulo “A short visit to common data structures”. Até esta parte é ensinado o lado sequencial (usado dentor das funções) da linguagem. Depois a leitura continua muito interessante, mas fica um pouco mais densa por tratar de problemas como concorrência, tolerância a falhas, atualização de código em runtime e etc.

    Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages by Bruce A. Tate

      – Quem diria que este livro famoso teria um espaço para o Erlang? Mas está lá. Pode ler que além de falar da linguagem, é uma leitura muito valiosa para aprender linguagens em geral.

    Getting Started with Erlang User’s Guide

      – Um tutorial feito pelo time que desenvolve a linguagem. A mesma dica vale: a parte sequencial será mais tranquila e a parte concorrente um pouco mais difícil neste momento (natural com qualquer linguagem).

 

Etapa nº 2 – Erlang na prática

    Será que o aprendido até agora já dá para fazer aplicações reais e colocar em produção?

    Dá para começar, mas não recomendo colocar em produção ainda… Há mais coisa para estudar:

    ChicagoBoss

      Sugiro seguir o tutorial do framework ChicagoBoss de aplicações web porque ele tirou quase TODA dificuldade de se trabalhar na WEB com Erlang. Você não precisa se preocupar com a parte concorrente diretamente. No entanto, esse aprendizado será excelente para você começar a ver no código do framework alguns padrões da parte concorrente da linguagem.

      Além disso tudo, o benefício de fazer este tutorial é já ir se acostumando com o editor e etc.

    No mesmo espírito, recomendo a leitura de:

     
    Aqui começamos a entrar no mundo concorrente de Erlang e já estamos mais acostumados com o ciclo de desenvolvimento. Espero que os capítulos mais avançados do Learn You Some Erlang comecem a fazer sentido…

 

Etapa nº 3 – Erlang a fundo

    Agora é o momento de entender o ambiente a fundo.

    Programming Erlang: Software for a Concurrent World by Joe Armstrong

      – Livro do criador da linguagem. Precisa dizer mais alguma coisa? Leitura importante, mas bastante teórica. Não se assuste caso nem tudo fizer sentido numa primeira vista.

    Erlang Programming, A Concurrent Approach to Software Development By Francesco Cesarini, Simon Thompson (encontrado também na Amazon)

      Outro livro extensivo sobre a plataforma com texto muito bom na parte de distribuição de nós em um cluster de Erlang (calma… o nome parece muito mais difícil do que é… em Erlang ficou muito simples fazer isso…).

 

Pós aprendizado

 

Frameworks, aplicações entre outras coisas em Erlang:

    Riak

      – banco de dados NoSQL distribuído muito utilizado (em breve será assunto neste blog, aguardem).

    Mochiweb

      – servidor altamente escalável e performático.

    RabbitMQ

    CouchDB

      – banco de dados NoSQL que usa uma interface JSON para ser acessado.

    Rebar

    Zotonic

      – um CMS escrito inteiramente em Erlang.

    Erlyvideo

      – um servidor de streamming de video.

    Etc, etc, etc, etc…

 

Bem vindo ao mundo da concorrência sem grandes complicações.