character syntax

Fri, 08 Feb 2002 14:16:13 +0000

> > Second, this argument would be easier to accept if there in fact were
> > an equally innovative tool capable of providing all the editing
> > goodies Emacs normally does, for Haskell.  But I don't know of one,
> > even now, 10 years or so after Haskell's birth.

Well, it was one of the happier accidents in programming language
history that Lisp was implemented and released before it received
a concrete syntax. But Haskell isn't built on s-expressions. 

Simon M. says that syntax highlighting for Haskell is quite doable,
and Haskell modes for other editors seem to support that claim, as
others have pointed out. So I wonder whether what once was a very
innovative tool is in the process of becoming just another legacy.

I'm relatively happy with my editor, as far as editors go. What
features (editing goodies) are you referring to?

> .. There was recently a PhD position advertised
> on the list in the area of refactoring functional programs; I'd be
> surprised if whoever does that doesn't eventually end up with a GUI
> (whether inherited from somewhere else or written as part of the project).

Postdoc, actually. Although, once we have someone in place on that
position, it would also be nice to complement our project with a PhD
candidate working on refactoring in another functional language
(Erlang, say), sufficiently different from both Haskell and from the
oo/imperative languages for which refactoring support is now
becoming more and more common.

As for innovation in program editing, the idea (and problem) is not
so much awareness of lexical syntax (syntax highlighting) or editing
at the level of abstract syntax (for those with unhappy memories of
structure editors: we want syntax-aware editors, not syntax-directed
ones), but making editing tools more aware of language semantics
(static semantics, at least).

As for GUIs, we would like to avoid getting into editor wars, and we
would rather spend our time on the refactoring side than on
implementing YAE, yet another editor. Simon and I happen to use the
same YFE (your favourite editor), but we know that there's a big
group of Haskell users who wouldn't be very pleased if they had to
switch from TOE (that other editor) to YFE, just to make use of our
refactoring tool (note that I'm silently ignoring AOE, all other
editors here;-). And both groups would be very unhappy if they had
to go from their own powerful, all-purpose editor to whatever we
could hack up while we should be doing other things. 

It's too early to say how things will pan out in the end, but we'd
like to start with a separate refactorer, with a well-defined
interface, and bindings to that interface for both YFE and TOE.  As
you suggest, the refactorer will have rather more information about
the program than might easily be displayed via YFE/TOE/ETC, so we
might need a separate GUI at some point. We'll see..


Refactoring Functional Programs