Monday, May 19, 2008

Choosing Erlang IDE

After having some object-oriented language experience, I decided to move forward in learing programming languages. There are many languages today and each of them correspond to some category. Ubiquity of multicore processors dictate us today new rules for scalable programming systems. And one of the interesting trend in programming - functional programming languages. Maybe I was affected by Steve Vinoski blog or some InfoQ articles , but Erlang language was chosen.

After writing on java for two consecutive years I formed the habit of using my lovely IDE (not a secret it's Intellij IDEA). And I started to dig for something similar in Erlang space. Though i had 4 candidates :

Emacs - with erlang mode (according to documentation this is a best way of developing erlang apps)

Last variant with emacs occured suddenly during playing with first three candidates. Reason is subconscious resistance to *NIX utils cause win32 legacy.

Main criteria in choosing IDE were : syntax highlighting, smart identation, quick compilation of *. erl files, code templates and integrated console.Maybe because 0 is major release number or some other reasons but the first two IDE Erlide and Erlybird are very raw.

Erlide - is interesting IDE, but many unpredictable errors occured during usage. But in future, i think this IDE has high chances to become ubiquitous. WRT my criterias of choosing IDE it has syntax highlighting, smart identation(very simple) , compilation is made faster after some project configuration(it's not clear). Mark: 3/5.This IDE has features which I don't evaluate, because the researh was to find most comfortable IDE for code editing,but not most functional.

Erlybird - visually it's fantastic, it has beautiful syntax highlights and identation , autocompletion is good, but some bugs during exploitation is upset me. Mark: 3,5/5.

Ultraedit -well, it's not IDE actually,it's text editor with many features and languages supported, but sadly Erlang natively isn't supported and only using aforementioned wordfile (plugin for ultraedit) we can add support for some pleasant features. Actually it's only syntax highlighting, not great. But this editor has some templates support. Another disadvantage - shareware. Mark: 1,5/5.

Emacs (erlang mode) - well, when I set a goal to research some IDE for Erlang I couldn't predict that emacs will be one of candidates. It was added for comparison because first 3 IDE was not production-ready. Emacs has all you needed in Erlang development. But it has some learning curve in learning emacs finger-crossing:) but you won't be sorry. Mark: 4/5.

So if you want production-ready Erlang use Emacs with Erlang mode. If you developed earlier for Netbeans or Eclipse platform you can choose Erlybird or Erlide but don't forget this IDE are currently in the beginning phase. If you bought Ultraedit and you like them much use Ultraedit with wordfile.

I know about the Distel.But it lacks for clearence with installation on win32 platforms. Maybe for *NIX platforms it will be the best choise, but I'm on win32 side. So comparison was made by biased win32 programmer :). Maybe when I'll dive in *NIX camp, I'll write full IDE comparison.