Erlang Extreme Programming & Refactoring

C.Reinke <>
Tue Feb 18 18:38:33 CET 2003

> > useful in practice. It would be great to add more similar commands,
> > but I'm not up to speed on refactoring editors, so I don't really know
> > what other commands would be good.
> (although much Haskell/statically typed oriented)

Ah, well, yes.. websites and keeping them up-to-date..

1.If you look into the case for support there, you'll find that we
  are actually interested in Refactoring Functional Programs in
general (hence the page title;-). But we are practically minded, and
decided to make things concrete for the externally funded project,
i.e., choose one language and go for it. We chose Haskell because

  - it is our own main development tool and fp teaching vehicle 
    (and we really want those refactorings for our other projects!-)
  - it is sufficiently different from those oopls, and from Scheme,
    for which refactoring has been investigated elsewhere
  - it is far from a toy language in complexity, and widely used
  - it is close to those pure functional languages for which program
    development by transformation (transforming simple specs into
    efficient implementations) has been studied so extensively

So we were able to make a solid case for research content and
dissemination of results, as well as using the interesting
connection to program calculation. The project got its funding and,
after a long search for a good researcher, is now well on its way.

2.We would actually be very interested to complement our project with
  a PhD student investigating Refactoring of Erlang programs, (and had
been in concrete talks with an interesting candidate and experienced
Erlanger last year; that option fell through, so we are now looking

Erlang is sufficiently different from both Haskell and oopls that we
should be able to make a good case for added research value, and the
case for dissemination of project deliverables (including
refactoring catalogue & tools) would obviously be strong, as this
thread and earlier discussions indicate.

There are lots of basic refactorings that would be similar in most
functional languages, but while more advanced refactorings in
Haskell will inevitably have to deal with the constructs of
Haskell's type and type class system, more advanced refactorings in
Erlang would have to deal with concurrency issues and design
patterns (cf recent thread on OTP or not).

So, if you know a suitable candidate who would like to use the
current low in commercial opportunities to pursue a PhD with
practical relevance, please get in touch with us (a part-time PhD 
to fit in between existing part-time jobs might also be possible).
We've got a healthy fp group here, and while most of us work in
Haskell, most of us know Erlang as well, we've already got a PhD
project on model-checking Erlang programs, and would like to expand
our Erlang involvement.

3.Meanwhile, we'd like to stay in touch with any refactoring support
  added to existing Erlang IDEs (going for a single backend is
definitely the way to go, as is some common infrastructure for
program representation/transformation).


Refactoring Functional Programs

More information about the erlang-questions mailing list