Primeiros passos com Erlang

Vou brevemente arrancar com um pequeno projecto em que um dos requisitos será utilzar uma linguagem funcional. Existindo a necessidade de trabalhar com comunicações e com alguma concorrência, tenho andado a olhar para Erlang. A minha experiência com linguagens funcionais tem sido reduzida, aliás, nula, se pensarmos que XSLT e Python têm influências de linguagens funcionais, mas não são linguagens funcionais em si mesmas, por isso estou com alguma curiosidade em ver no que isto dá.

A ideia passa por ter uma aplicação em C# (Mono + MonoDevelop) a falar com um servidor em Erlang, coisa que ainda não estou certo que seja fácil, apesar de haver alguns indicadores de que deverá ser possível.

Para já estou em busca do IDE certo para o módulo em Erlang. Em princípio, devo-me ficar pelo Erlide (um plugin para o eclipse), já que o Erlybird funciona em cima do NetBeans (em relação ao qual não tenho nada contra, mas entre este e o Erlide, prefiro rentabilizar a experiência que tendo com o eclipse) e o Distel não é um verdadeiro IDE (eu até gosto do emacs como editor, mas por muita boa vontade que tenha, aquilo, de facto, não é um IDE).

Da falta de IDEs para .Net

Ontem ou anteontem saiu o Visual Studio 2008; hoje reparo (via Pedro Santos) na publicação dos resultados de um inquérito sobre as funcionalidades mais pedidas do MonoDevelop.

Em relação ao Visual Studio, segundo a PC World, há a dizer que está aí a um preço engraçado (no sentido que me dá vontade de rir) — 800 USD. Os upgrades sempre são mais baratos, mas ainda assim, a preços muito pouco convidativos — 550 USD. Por outro lado, existe a versão express, gratuita, mas ainda não a explorei muito mais, após perceber que teria que sobreviver sem a integração com o NUnit. Ainda assim, ainda hei-de olhar melhor para ela, já que nenhuma das restantes alternativas é perfeita também.

Em relação ao MonoDevelop, parece que as minhas necessidades andam perto das da população em geral: debugger integrado, designers, e ferramentas de refactoring. Parecem-me ir na direcção certa pelo menos, mas ainda não estão bem lá.

Ultimamente tenho passado algum tempo no SharpDevelop, que vai servindo os propósitos, mas em relação ao qual começo a conhecer cada vez melhor as limitações (sendo a mais gritante a falta de uma janela de watch!). Entretanto vou fazendo figas para que saia proximamente uma versão estável do SharpDevelop 3, ou do MonoDevelop > 1.0 (o 1.0 parece estar já muito próximo, mas o debugger ainda não vem nesta versão).