Esses dias vagando pela internet, resolvi ler mais sobre programação concorrente, e acabei ficando mais interessado sobre o assunto… Descobri também a linguagem Erlang, que é uma linguagem Open Source desenvolvida pela Ericson, que implementa a programação concorrente e muitos outros aspectos interessantes.
Pelo fato de ser totalmente funcional, as vezes me embaralha um pouquinho a cabeça (Sou acostumado a trabalhar com linguagens OO), mais isso com o tempo vai dando uma nova visão da coisa.
Resolvi aprender um pouco mais soh de curiosidade, e acabei baixando a mesma da internet. Porém começaram meus problemas. tentei buscar por alguma IDE ou algo assim para facilitar o aprendizado, e acabei encontrando a Erlide (baseada no Eclipse) e a Erlybird (baseada no Netbeans). Pelo fato das duas serem Open Source, resolvi baixar as duas para testes. Infelizmente, não consegui fazer nenhuma das duas funcionarem. (Pode ser problema entre o monitor e a cadeira, mais infelizmente, não teve jeito de elas funcionarem)
Então resolvi partir para a simplicidade, e estou programando com o Textpad + um Syntax Highlight para a linguagem que pode ser encontrado em: http://www.rosss.dds.nl/bbposts/erlang.syn.
Para programas básicos, acho que isso é o máximo que precisarei…
Consegui aprender algumas coisas especificas sobre a linguagem:
- Váriaveis são maiusculas e soh podem ter um valor, não sendo possível alterar o mesmo valor posteriormente.
- para compilar o seu algoritmo, utiliza-se “c(nomedoalgoritmo).” diretamente do erlang shell (erl)
- e para rodar o mesmo, é necessário chamar o módulo e o nome da função da seguinte forma: “nomedomodulo:nomedafuncao(parametros)”
Para testes, fiz um algoritmo que calcula bhaskara, segue o código do mesmo:
-module(bhaskara).
-export([calculabhaskara/3]).
calculabhaskara(A, B, C) ->
Raiz1 = (-B – math:sqrt((B*B) -4 * A * C))/2,
Raiz2 = (-B + math:sqrt((B*B) -4 * A * C))/2,
io:fwrite(“Resultado da Raiz 1: ~p~n”,[Raiz1]),
io:fwrite(“Resultado da Raiz 2: ~p~n”,[Raiz2]).
Ainda fiz somente o básico, preciso fazer o controle de erros, mais pra começo já tah bom =)
Nos proximos posts, espero ajeitar o controle de erros e quem sabe, postar um tutorial sobre o Erlyweb, um “Erlang on Rails”.
Abraços

