Erlang Development Environment

James Hague <>
Mon Mar 5 18:51:00 CET 2001


> I've read a number of suggestions for a better Erlang Development
> Environment than emacs.. It certainly seems we are falling 
> behind some other
> languages in terms of support environment. (OCaml, Clean, Python etc).
> 
> 1. Does anyone really feel the need for something better/different?

I don't feel the need for anything drastically better.  I strongly dislike
language implementations that depend on emacs, but I've been using Erlang
under Windows (with a very simple text editor) and don't have major
complaints.  I can think of some smaller things:

1. A shell command for starting an external text editor.  Or perhaps a way
of having a failed compile start up a text editor at a certain line of code.
This is easy to do, but it would be nice to have it implemented in a
standard way.

2. A shell command for timing specific pieces of code.  Something where you
can specify a function, parameters, and the number of times to execute that
function.  In Lisp I'm always doing this:

(time (dotimes (i 1000000) (test 0 1 2)))

I don't know a simple equivalent in Erlang.

3. I know Erlang is used more under UNIX than Windows, but it would be cool
to see the process browser and other graphical apps written with Delphi (for
example) so they aren't so dog slow and ugly under Windows :)

4. Use color in the shell window.  Have typed commands be a different color
than output.

See?  All minor!


Hmmm...broadening this to "Suggestions for Erlang in general," (I know, I
know, off topic!) I have a relatively short list:

1. Be able to compile the Windows version under Windows, instead of the
wacky cross-compilation method currently used.  Ugh.

2. Get stand-along Erlang working under Windows.  I would *love* this!
Please, please!

3. There are two spots where I find I prefer Lisp to Erlang:

a. There's no simple, efficient way to have large, constant data structures.
When attempting to translate some code from Peter Norvig's excellent
_Paradigms of Artificial Intelligence Programming_ I ran into this a lot.
It would be nice to define a global, unmodifiable data structure that could
be used by different processes without the entire structure existing in each
process, and without copying overhead of ETS.  I'm specifically thinking of
something like Lisp's defparameter facility.  Sometimes there are ways
around this, and sometimes not.

b. Sometimes you just really need arrays that can be updated in O(N) time.
On a global scale, ETS can be used, but on a smaller scale, for some
algorithms, there's no speedy alternative.  The process table, I guess.
Couldn't tuples theortically be reference counted, so they could be copy on
write?  This is probably much messier than it sounds :)

James



More information about the erlang-questions mailing list