[erlang-questions] Erlang IDE

77 views
Skip to first unread message

Greg Martin

unread,
Oct 21, 2012, 4:59:33 PM10/21/12
to Erlang
It would seem to me that there is much in erlang that would lend itself
to a very extensible IDE and yet there doesn't seem to be such a beast.
I'm curious if anyone has any thoughts on why this hasn't been done. I
understand that many folks like emacs and there is some integration with
it but it seems that something better could be done ...

erlang has attributes that remind me of Smalltalk and one of the things
I liked about Smalltalk was the integration of the development
environment with the runtime environment. Obviously erlang isn't
Smalltalk but it should lend itself well to a self encapsulated IDE.


_______________________________________________
erlang-questions mailing list
erlang-q...@erlang.org
http://erlang.org/mailman/listinfo/erlang-questions

Jeremy Ong

unread,
Oct 21, 2012, 5:23:29 PM10/21/12
to Greg Martin, Erlang
This discussion springs up on the listserv every now and then. I think
it comes down to a question of demand (or lack thereof). As you've
said, there is a lot of support behind erlang-mode. This in
conjunction with the erlang console is typically more than enough for
most developers. What could an IDE bring? Breakpoints? A robust
debugger? Both of these are very tricky to do in distributed
environments. This is the crux of the problem. Debugging
multithreaded/multiprocess applications is tricky enough (anybody
remember valgrind + gdb?). Add the complexity of managing your
millions of processes in multi-machine environments and you have a
pretty heavy duty debugger. This isn't to say that it can't be done.
But even if it could, it would be fairly complex to use and to reason
about.

In terms of auto-completion and tags, a good portion of erlang code is
template based. I handle autocompletion using evil (vim embedded in
emacs) coupled with C-p although others prefer CEDET among other
solutions.

If you still want an IDE, ask yourself what functionality the IDE is
supposed to provide beyond a basic editor. Then, if it's practical, by
all means implement one. Personally, I doubt it will ever be
necessary.

Cheers,
Jeremy

Vlad Dumitrescu

unread,
Oct 21, 2012, 5:27:44 PM10/21/12
to Greg Martin, Erlang
On Sun, Oct 21, 2012 at 10:59 PM, Greg Martin <gr...@softsprocket.com> wrote:
> It would seem to me that there is much in erlang that would lend itself to a
> very extensible IDE and yet there doesn't seem to be such a beast. I'm
> curious if anyone has any thoughts on why this hasn't been done. I
> understand that many folks like emacs and there is some integration with it
> but it seems that something better could be done ...

Hi,

Do you mean "an erlang ide written in erlang"? I had this vision too
for some years ago. The problem that I stumbled upon is that the
actual editing functionality and all the UI related to that are a huge
project in themselves. So getting to a level where one would start to
look at how to support erlang would take along time. That's why I
preferred to lean on an existing framework (eclipse, see plug below
;-))

Otherwise, there's also erlide [plug] and there's nice support in
sublime text too.

There's also another track: provide erlang services for handling
source code (cross-references and such), wrap them in a nice API and
let emacs/eclipse/etc use them. I dropped this because we had
stability issues, but it might just be something lacking in my skills
and someone else could succeed better.

regards,
Vlad

Vlad Dumitrescu

unread,
Oct 21, 2012, 5:45:54 PM10/21/12
to Jeremy Ong, Erlang
Hi Jeremy,

On Sun, Oct 21, 2012 at 11:23 PM, Jeremy Ong <jer...@playmesh.com> wrote:
> If you still want an IDE, ask yourself what functionality the IDE is
> supposed to provide beyond a basic editor. ... Personally, I doubt it will ever be
> necessary.

Being a developer for erlide (http://erlide.org), I obviously have a
different opinion about this. :-)

The main thing that an IDE can help with is integration: instead of
starting five different tools, you just start one. One can also write
glue code that merges data from different tools into something more
useful than the parts.

The second thing is that it can provide basic services for tools, so
that it is easier to develop new ones. For example, access to already
parsed and annotated source code or to a stream of tracing events from
a live node.

Of course one can get by just fine with simple, separated tools.
Sometimes though, it helps to be able to not have to bother about the
low-level details (what were the arguments for tracing this function
again?) and focus on the project itself (because tracing can be
enabled from a context menu, for example).

[Someone may wonder if erlide provides all this: not all of it yet.
But we're working on it and it improves all the time.]

best regards,
Vlad

Alex Shneyderman

unread,
Oct 21, 2012, 6:31:39 PM10/21/12
to Vlad Dumitrescu, Erlang
> Otherwise, there's also erlide [plug] and there's nice support in
> sublime text too.

IDEA has a nice support for erlang as well, although not so much
as in the integration with tools area. But it is getting there ... and
fast.

Greg Martin

unread,
Oct 21, 2012, 6:52:43 PM10/21/12
to Erlang
On 12-10-21 03:31 PM, Alex Shneyderman wrote:
>> Otherwise, there's also erlide [plug] and there's nice support in
>> sublime text too.
> IDEA has a nice support for erlang as well, although not so much
> as in the integration with tools area. But it is getting there ... and
> fast.
>
>

Is that the Intelij project?

Greg Martin

unread,
Oct 21, 2012, 6:53:39 PM10/21/12
to Erlang
On 12-10-21 02:27 PM, Vlad Dumitrescu wrote:
On Sun, Oct 21, 2012 at 10:59 PM, Greg Martin <gr...@softsprocket.com> wrote:
It would seem to me that there is much in erlang that would lend itself to a
very extensible IDE and yet there doesn't seem to be such a beast. I'm
curious if anyone has any thoughts on why this hasn't been done. I
understand that many folks like emacs and there is some integration with it
but it seems that something better could be done ...
Hi,

Do you mean "an erlang ide written in erlang"? I had this vision too
for some years ago. The problem that I stumbled upon is that the
actual editing functionality and all the UI related to that are a huge
project in themselves. So getting to a level where one would start to
look at how to support erlang would take along time. That's why I
preferred to lean on an existing framework (eclipse, see plug below
;-))
Otherwise, there's also erlide [plug] and there's nice support in
sublime text too.

There's also another track: provide erlang services for handling
source code (cross-references and such), wrap them in a nice API and
let emacs/eclipse/etc use them. I dropped this because we had
stability issues, but it might just be something lacking in my skills
and someone else could succeed better.

regards,
Vlad


I've never really embraced emacs, preferring vi in the past. Right now I use komodo which is an excellent editor and I do take your point on the effort required to produce such a beast. Having "live" hooks in a running installation, though, could certainly provide a lot of great functionality. Well, maybe someday. Meanwhile it's a screen full of terminals I guess!

Still ... when an IDE and language are integrated the write and compile, save and backup to repository cycles become much more transparent. Just day dreaming out loud.



envelopes envelopes

unread,
Oct 21, 2012, 8:58:33 PM10/21/12
to Greg Martin, Erlang

We just need a good Erlang Eclipse plugin....

Roberto Ostinelli

unread,
Oct 21, 2012, 9:19:35 PM10/21/12
to envelopes envelopes, Erlang
Just to expose my own efforts again:

r.

Alex Shneyderman

unread,
Oct 22, 2012, 3:03:59 AM10/22/12
to Greg Martin, Erlang
On Mon, Oct 22, 2012 at 12:52 AM, Greg Martin <gr...@softsprocket.com> wrote:
>> IDEA has a nice support for erlang as well, although not so much
>> as in the integration with tools area. But it is getting there ... and
>> fast.
>
> Is that the Intelij project?
>

yep. you can get community edition and install erlang plugin (all free
as with all
the others) on top of that.

plugin is here: https://github.com/ignatov/intellij-erlang
Reply all
Reply to author
Forward
0 new messages