
I've searched the internet for an Haskell IDE that supports the following: - syntax highlighting - cross module refactoring - quick navigation (goto symbol, goto instance, find usages, etc) - code completion - "debugging" (not imperative debugging, so no breakpoints, but just plugging in a visualizer/pretty printer for a function in a separate dedicated window, like what http://www.apple.com/shake does on each "node") So a bit what Jetbrains Resharper does for Visual Studio, but for Haskell. IntelliJ and Eclipse also do this for Java. This does not seem to exist? If this is correct, this is a real shame, because although I read that the productivity increases a lot when correctly using Haskell, it would increase even more when such an IDE is available. Any help to find an IDE that comes closest to these features would be much appreciated. Thanks, Peter

On 15/06/07, bf3@telenet.be
I've searched the internet for an Haskell IDE that supports the following:
- syntax highlighting - cross module refactoring - quick navigation (goto symbol, goto instance, find usages, etc) - code completion - "debugging" (not imperative debugging, so no breakpoints, but just plugging in a visualizer/pretty printer for a function in a separate dedicated window, like what http://www.apple.com/shake does on each "node")
So a bit what Jetbrains Resharper does for Visual Studio, but for Haskell. IntelliJ and Eclipse also do this for Java.
This does not seem to exist? If this is correct, this is a real shame, because although I read that the productivity increases a lot when correctly using Haskell, it would increase even more when such an IDE is available.
Any help to find an IDE that comes closest to these features would be much appreciated.
Visual Haskell is an add-in for visual studio that does some of that... http://www.haskell.org/visualhaskell/ It's certainly not "complete" though, but I do think it's still being developed on and off (someone correct me if I'm wrong!). I'd love to see this shape up into something a bit more useable, but I don't have the time to contribute myself... -- Sebastian Sylvan +44(0)7857-300802 UIN: 44640862

I've searched the internet for an Haskell IDE that supports the following: Goto haskell.org -> Applications and libraries -> Editros written in Haskell and Editors for haskell. Also have look at the haskell-cafe mailinglist archive. This has been discussed recently. But you are right. I'm no longer able to find the page giving a comprehensive list of editor support on haskell.org. Either it's to late or it is gone. - syntax highlighting Many editors do support this. (JEdit, vim, emacs, kedit,..) - quick navigation (goto symbol, goto instance, find usages, etc) using tags I know that jEdit, vim and emacs do support this. I'm sure many others do as well - cross module refactoring Search haskell.org for refactoring. There are some applications. But I can't tell you how well they are integrated within editors. - code completion For visual studio there exists a pretty complete ide.
On Fri, Jun 15, 2007 at 11:38:17PM +0200, bf3@telenet.be wrote: there is eclipsefp for haskell and OCaml. I've written some kind of function and module completion for vim. When importing many files it gets too slow. There doe exist two different approaches (search for them in the mailinglist archive.. ) eg http://www.google.com/search?client=opera&rls=en&q=haskell-cafe+ide&sourceid=opera&ie=utf-8&oe=utf-8
This does not seem to exist? If this is correct, this is a real shame, You are invited to write one ;)
I'm sure that you'll get a lot of additional replies pointing you to more information HTH Marc Weber

comprehensive list of editor support on haskell.org. Either it's to late or it is gone. No, it's still there: http://haskell.org/haskellwiki/Applications_and_libraries -> Program developement -> Editor support
Perhaps a link to this should be made on the front page? This is a topic every newcomer is interested in. What do you think? Marc

On Sat, 2007-16-06 at 00:24 +0200, Marc Weber wrote:
- syntax highlighting Many editors do support this. (JEdit, vim, emacs, kedit,..)
With the caveat that syntax highlighting is broken out of the box in
vim. It works fine for plain .hs files but breaks -- and badly -- for
latex-literate .lhs files. I'm sure you can go hacking around to find
the problem and fix it, but it really is an entry barrier if you're not
already a vim addict.
--
Michael T. Richter

Yes this is kind of sad. FWIW, here's how I currently approximate
these features using Emacs + Haskell mode:
On 15 jun 2007, at 23.38,
I've searched the internet for an Haskell IDE that supports the following:
- syntax highlighting
haskell mode
- cross module refactoring
there is HaRe, haven't tried it. changing a function's type and then recompiling gives you a pretty useful todo-list though. :)
- quick navigation (goto symbol,
if you run hasktags you can use M-.
goto instance,
not sure, maybe one could cook something up using grep or even hasktags
find usages, etc)
M-x grep RET downarrow RET
- code completion
either you use shim or the built-in M-/, which completes everything (not semantically sensitive, though)
- "debugging" (not imperative debugging, so no breakpoints, but just plugging in a visualizer/pretty printer for a function in a separate dedicated window, like what http://www.apple.com/shake does on each "node")
i don't know shake, can you explain a bit more? ghc HEAD has the ghci debugger, haven't tried it
So a bit what Jetbrains Resharper does for Visual Studio, but for Haskell. IntelliJ and Eclipse also do this for Java.
This does not seem to exist? If this is correct, this is a real shame, because although I read that the productivity increases a lot when correctly using Haskell, it would increase even more when such an IDE is available.
i agree / Thomas

Thank for the reply.
I'll try the emacs approach (or better Xemacs because Emacs on Windows has
really ugly font smoothing), but I must say that - being an old school
object-oriented programmer who got spoiled by fully integrated IDEs like
Borland's TurboPascal, Microsoft Visual Studio, and Eclipse - switching to
emacs or VIM is not an easy task :) Even on the commodore 64 I used a mini
IDE for writing 6502 assembler ;)
About Apple's Shake: this is a flow-graph based image composition package.
It's like a tiny bit of functional programming (limited to images as
values), represented as a graphical acyclic graph of functional nodes. Each
of these nodes computes a result, and this result can be visualized by
clicking on a button on each node, so you can "debug" the output of any
node. An Haskell IDE could do the same for functions (it's like dynamically
adding an "unsafePerformIO print" to the selected function). And then like
Visual Studio one should be able to write "debugger visualizers"
http://msdn2.microsoft.com/en-us/library/zayyhzts(VS.80).aspx
Peter
-----Original Message-----
From: Thomas Schilling [mailto:nominolo@googlemail.com]
Sent: Saturday, June 16, 2007 12:47 AM
To: bf3@telenet.be
Cc: haskell-cafe@haskell.org
Subject: Re: [Haskell-cafe] IDE?
Yes this is kind of sad. FWIW, here's how I currently approximate
these features using Emacs + Haskell mode:
On 15 jun 2007, at 23.38,
I've searched the internet for an Haskell IDE that supports the following:
- syntax highlighting
haskell mode
- cross module refactoring
there is HaRe, haven't tried it. changing a function's type and then recompiling gives you a pretty useful todo-list though. :)
- quick navigation (goto symbol,
if you run hasktags you can use M-.
goto instance,
not sure, maybe one could cook something up using grep or even hasktags
find usages, etc)
M-x grep RET downarrow RET
- code completion
either you use shim or the built-in M-/, which completes everything (not semantically sensitive, though)
- "debugging" (not imperative debugging, so no breakpoints, but just plugging in a visualizer/pretty printer for a function in a separate dedicated window, like what http://www.apple.com/shake does on each "node")
i don't know shake, can you explain a bit more? ghc HEAD has the ghci debugger, haven't tried it
So a bit what Jetbrains Resharper does for Visual Studio, but for Haskell. IntelliJ and Eclipse also do this for Java.
This does not seem to exist? If this is correct, this is a real shame, because although I read that the productivity increases a lot when correctly using Haskell, it would increase even more when such an IDE is available.
i agree / Thomas

PeterV writes:
I'll try the emacs approach (or better Xemacs because Emacs on Windows has really ugly font smoothing), but I must say that - being an old school object-oriented programmer who got spoiled by fully integrated IDEs like Borland's TurboPascal, Microsoft Visual Studio, and Eclipse - switching to emacs or VIM is not an easy task :)
Switching to Emacs will never be an easy task (I think the quote is "A learning curve you can use as a plumb line"), but once you have, I very much doubt you'll ever want to go back to anything else. :) The Emacs tour [1] (newer beta version also available [2]) give a quick flavour of why you might fall in love with Emacs. [1]: http://www.gnu.org/software/emacs/tour/ [2]: http://stuff.mit.edu/iap/emacs/emacs-guided-tour-1.html By the way, ClearType support works fine in Emacs 22. I understand there is one small rendering glitch related to font-lock (some columns of pixels are truncated, see [3]), but it's most definitely usable. [3]: http://img266.imageshack.us/img266/1254/emacscleartypebugdg9.png -- -David House, dmhouse@gmail.com

David House wrote:
Switching to Emacs will never be an easy task (I think the quote is "A learning curve you can use as a plumb line"), but once you have, I very much doubt you'll ever want to go back to anything else. :) The Emacs tour [1] (newer beta version also available [2]) give a quick flavour of why you might fall in love with Emacs.
Dude... somebody should write the world's next killer editor in Haskell, just to show how awsome Haskell is!

Andrew Coppin writes:
Dude... somebody should write the world's next killer editor in Haskell, just to show how awsome Haskell is!
Yi [1] does exist, with roughly this aim. Why not contribute an afternoon's hacking? [1]: http://haskell.org/haskellwiki/Yi However, one of the reasons that Emacs is so great is the absolute wealth of libraries available for it. It's been aroud a long time and people like it a lot so there's pretty much an Emacs Lisp library to integrate _any_ tool, to help editing _any_ kind of source/configuration file etc. It would take many lifetimes to replicate this in a different language. I've thought a little about writing a Haskell → Elisp compiler, so that people could contribute to Emacs by writing Haskell, but I've got doubts about its feasibility. -- -David House, dmhouse@gmail.com

David House wrote:
Andrew Coppin writes:
Dude... somebody should write the world's next killer editor in Haskell, just to show how awsome Haskell is!
Yi [1] does exist, with roughly this aim.
Yes, I've read about Yi once or twice. And yet, I still find myself puzzled as to what it actually *is*, what it's meant to do, what's supposed to be good about it, and how to actually obtain it so I can even try it out.
Why not contribute an afternoon's hacking?
1. I'm not good enough. 2. I'll never be able to find my way around the source code.
However, one of the reasons that Emacs is so great is the absolute wealth of libraries available for it. It's been aroud a long time and people like it a lot so there's pretty much an Emacs Lisp library to integrate _any_ tool, to help editing _any_ kind of source/configuration file etc. It would take many lifetimes to replicate this in a different language.
"Emacs? That's not a text editor - it's an *operating system*!" Personally, I really hate text-mode editors. (I won't even go into how many times I've had to reboot Linux just to get *out* of Vi!) What I want is something more friendly. Currently my tool of choice is SciTE - but it's an absolute pain to configure. (1. There is no GUI. You must edit the config file manually. 2. The documentation is very minimal.) It's also not particularly flexible. What I would *really* like is a nice big IDE... but it seems there isn't one for Haskell. :-(

Andrew Coppin writes:
Why not contribute an afternoon's hacking?
1. I'm not good enough.
How do you intend to remedy that, apart from by writing Haskell code? Start small, fix small typos or bugs, and build it up from there. Seriously, just give it a go, I doubt any of your patches will be rejected out of hand. Rather, you'll get comments on your coding style which will help you become a better programmer.
Personally, I really hate text-mode editors. (I won't even go into how many times I've had to reboot Linux just to get *out* of Vi!)
'Z Z' is the command to quit vi, right?
What I would *really* like is a nice big IDE... but it seems there isn't one for Haskell. :-(
This was my attitude, too, for a long time when I started to learn Haskell. I'd only heard that Emacs was hard to get used to, hard to use, and somewhat old-fashioned. Seeing as there was nothing better, I decided to spend a weekend learning Emacs and count it as a life skill, as my productivity was sure to increase. What did I find out? Well, the first of those complaints is true, there's no doubting that, but the second isn't really and the third most certainly not. It might not be the most conformist of editors but that doesn't make it old-fashioned, nor arcane, nor irrelevant. Give it a go. Start out with the Emacs tutorial [1] so that you have your feet on solid ground, then jump to the Emacs tour [2] to whet your appetite to the breadths of features that Emacs provides. [1]: Use C-h t (hold Ctrl, press h, then let go of both and press t) inside Emacs [2]: http://www.gnu.org/software/emacs/tour/ -- -David House, dmhouse@gmail.com

David House wrote:
Andrew Coppin writes:
Why not contribute an afternoon's hacking?
1. I'm not good enough.
How do you intend to remedy that, apart from by writing Haskell code? Start small, fix small typos or bugs, and build it up from there. Seriously, just give it a go, I doubt any of your patches will be rejected out of hand. Rather, you'll get comments on your coding style which will help you become a better programmer.
I used to have these delusions that "open source" would mean that one day I would be helping people develop actual software, rather than just tinkering on my own. Of course, back then the problem was that all "real world" software is written in C or C++ (or both), and these are amoung the tiny number of computer languages that I have repeatedly *failed* to learn. (Typially it takes me a day or two to learn a new language. There are very few that I actually *failed* to learn.) And then I discovered Haskell. If programming languages were weapons of war, programming in BASIC would be equivilent to telling somebody they look fat, C would be like throwing pebbles at them, Java would be like throwing a grenade, Eiffel would be like using an AK-47, and Haskell would be a large thermonuclear warhead. (!) Quite simply, all lesser languages pale into insignificance before the almighty power of Haskell. Finally I thought I would be able to do great things. After all, in Haskell, every concievable problem can be solved in 3 lines of code or less. (Sometimes A LOT less.) And then I had a look at the source code for GHC, and I was shocked. The program is *thousands* of lines long - despite being written in Haskell, the most powerful programming language that has ever existed. Now considering that even the hardest problems that mortal minds can comprehend can be solved in a page of code or less, it instantly follows that any problem that requires *more* than 1 page of Haskell code must be complex beyond the powers of mortal comprehension. And by induction, any task that requires *hundreds* let alone *thousands* of lines of code must be comprehensible only by the greatest minds in all of humanity. Obviously, I am not such a mind. It's nice to think that one day I will be... but let's be real here. It's not going to happen. I realised then that trying to do anything with the GHC source code was a hopeless endevour. Indeed, most Haskell programs I look at are a similar picture...
Personally, I really hate text-mode editors. (I won't even go into how many times I've had to reboot Linux just to get *out* of Vi!)
'Z Z' is the command to quit vi, right?
Sometimes. Sometimes it just types "zz" in the document. It depends on the alignment of the planets. (Of course, now I know about "virtual terminals", I've learned how to switch to another terminal so I can look up the PID for Vi, and then I can kill it that way. None of which helps me edit files in any way... I really hate it when Vi is the only editor I have access to!)
What I would *really* like is a nice big IDE... but it seems there isn't one for Haskell. :-(
This was my attitude, too, for a long time when I started to learn Haskell. I'd only heard that Emacs was hard to get used to, hard to use, and somewhat old-fashioned. Seeing as there was nothing better, I decided to spend a weekend learning Emacs and count it as a life skill, as my productivity was sure to increase. What did I find out? Well, the first of those complaints is true, there's no doubting that, but the second isn't really and the third most certainly not. It might not be the most conformist of editors but that doesn't make it old-fashioned, nor arcane, nor irrelevant.
Give it a go. Start out with the Emacs tutorial [1] so that you have your feet on solid ground, then jump to the Emacs tour [2] to whet your appetite to the breadths of features that Emacs provides.
It's a text-mode editor. quod erat demonstrandum. Since it only operates in text-mode, it cannot possibly provide things like clickable fold points, or a side-bar containing a bunch of icons representing the objects in the current file, or a spell checker, or an interactive debugger, or any of those other features that require a GUI. (I am *really* not a fan of ASCII art "graphical" user interfaces.)

On Sat, 2007-06-16 at 17:10 +0100, Andrew Coppin wrote:
It's a text-mode editor. quod erat demonstrandum.
Since it only operates in text-mode, it cannot possibly provide things like clickable fold points, or a side-bar containing a bunch of icons representing the objects in the current file, or a spell checker, or an interactive debugger, or any of those other features that require a GUI. (I am *really* not a fan of ASCII art "graphical" user interfaces.)
Emacs has had a real GUI for many years. (At least since '98 when i started using it).

Andrew Coppin writes:
Personally, I really hate text-mode editors. (I won't even go into how many times I've had to reboot Linux just to get *out* of Vi!)
'Z Z' is the command to quit vi, right?
Sometimes. Sometimes it just types "zz" in the document. It depends on the alignment of the planets.
Ah, then you're in the wrong mode. Press ESC first.
It's a text-mode editor.
With graphical support.
quod erat demonstrandum.
Please don't be so quick to jump to conclusions like that.
Since it only operates in text-mode, it cannot possibly provide things like clickable fold points,
http://www.emacswiki.org/cgi-bin/wiki/CategoryOutline I'm not sure any of those supply _clickable_ points, but there's no reason in principle it couldn't be done. Emacs users just feel that using the keyboard is quicker.
or a side-bar containing a bunch of icons representing the objects in the current file,
Speedbar: http://cedet.sourceforge.net/speedbar.shtml http://www.emacswiki.org/cgi-bin/wiki/SpeedBar http://cedet.sourceforge.net/speedbar-multi-2.jpg -- screenshot http://jdee.sunsite.dk/jdedoc/html/jde-ug/images/speedbar1.gif -- screenshot Not sure about integration with haskell-mode, but there's no reason this couldn't be done in Emacs.
or a spell checker,
Flyspell: http://www.emacswiki.org/cgi-bin/wiki/FlySpell http://prog.vub.ac.be/~cderoove/geekery/emacslatex/flyspell_menu.png -- screenshot
or an interactive debugger,
As previously mentioned, debugging in Haskell hasn't really reached maturity yet, but there's an Emacs interface to gdb: http://www.emacswiki.org/cgi-bin/wiki/GdbMode http://www.inet.net.nz/~nickrob/gdb-ui.png -- screenshot
or any of those other features that require a GUI.
Perhaps you ought to revise your opinions on what constitutes a GUI. (By the way, all those screenshots above show Emacs with horrible fonts that haven't been anti-aliased. By checking out the unicode-2 branch of Emacs, which will be merged into the trunk before Emacs 23, you can easily get XFT support. I wouldn't live without it.) -- -David House, dmhouse@gmail.com

David House wrote:
Andrew Coppin writes:
It's a text-mode editor.
With graphical support.
Really? When did that happen? (And if it's now graphical, can you really still call it "Emacs"? I mean, if you write a GUI application that does what sed does, would it still be "sed"?)
quod erat demonstrandum.
Please don't be so quick to jump to conclusions like that.
You make it sound as if I haven't tried this stuff...
or an interactive debugger,
As previously mentioned, debugging in Haskell hasn't really reached maturity yet,
Yeah, pitty that... (Again, I was going to try compiling HEAD to play with this - and then I realised you need Linux to do it, so I haven't got round to it yet.)
or any of those other features that require a GUI.
Perhaps you ought to revise your opinions on what constitutes a GUI.
Well, part 1 would be being *graphical*. I really have no time for ugly cryptic ASCII art "graphical" UIs... I just like being able to *see* what's happening. Is that too much to ask?

Andrew Coppin writes:
Well, part 1 would be being *graphical*. I really have no time for ugly cryptic ASCII art "graphical" UIs... I just like being able to *see* what's happening. Is that too much to ask?
Did you read the rest of my email? For every feature you cited I gave links and screenshots to the Emacs equivalents, none of which (AFAIK -- I don't actually use them all) use ASCII art. -- -David House, dmhouse@gmail.com

On Sun, 2007-17-06 at 22:37 +0100, David House wrote:
Well, part 1 would be being *graphical*. I really have no time for ugly cryptic ASCII art "graphical" UIs... I just like being able to *see* what's happening. Is that too much to ask?
Did you read the rest of my email? For every feature you cited I gave links and screenshots to the Emacs equivalents, none of which (AFAIK -- I don't actually use them all) use ASCII art.
Got a file chooser that's actually a GUI that has the look and feel of
every other GUI file chooser in existence? Because what I see in emacs
now that I've got the X version working (aside from horrible, ugly,
unreadable fonts -- again the Notepad of the GNOME world is kicking ass
and taking names here!) is a half-assed GUI wrapped around a plain
text-dominated interface. Kind of what you'd expect from people who
think that GUIs are a waste of time and put one in just to say "we've
got a GUI -- what are you talking about?"
--
Michael T. Richter

2007/6/18, Michael T. Richter
Got a file chooser that's actually a GUI that has the look and feel of every other GUI file chooser in existence?
Strange... Here I have the same file chooser as every other application in the WM (personally I use C-x C-f most of the time since with the completion it's faster if you know what you want to load), what are you speaking about ? (Are you really using emacs and not xemacs ?)
working (aside from horrible, ugly, unreadable fonts -- again the Notepad of the GNOME world is kicking ass and taking names here!)
The Notepad of the GNOME world ? You're speaking about Gedit ? What have gedit to do with emacs ? Beside you can activate cleartype support for emacs now, and have nicely antialiased fonts. -- Jedaï

On Mon, 2007-18-06 at 00:55 +0200, Chaddaï Fouché wrote:
Got a file chooser that's actually a GUI that has the look and feel of every other GUI file chooser in existence?
Strange... Here I have the same file chooser as every other application in the WM (personally I use C-x C-f most of the time since with the completion it's faster if you know what you want to load), what are you speaking about ? (Are you really using emacs and not xemacs ?)
I'm using Emacs. It gives me a text window, like any other editor window (except where it's different) when I go to the horribly kludgy, not-at-all-integrated-with-the-desktop-theme file menu. In fact it's even worse. I go File->Open File... and it gives me ... a prompt in a little command window at the bottom of the editing screen asking me for the file name. If I hit Enter, it displays the contents of my home directory in an editing window. I can right-click on a directory there to open the directory -- in a new window. (I have to select by cursor and hit enter to open said directory in the same window.) I installed Xemacs too and ran it once. It had the same ugly fonts and the same ugly menuing interface. I'll confess, however, that I didn't bother trying to open a file with it. Let me do that now. . . . OK, this one has an actual dialogue box for opening files. It isn't the GNOME standard file opening widget, but it is at least a GUI. It's just a really crappy one. And that's just one misfeature of Emacs. Here's another (again only Emacs-specific; Xemacs does it just fine) problem. I open up a huge file in Emacs. I use my scroll wheel to work through it. Nothing. For all Emacs cares, I may as well have an Apple one-button mouse connected to my computer. Oh. Sorry. Two-button. Because almost everything seems to be attached to right-clicks. Left-clicks do little to nothing. It doesn't seem to know about middle buttons, scroll wheels or any other modern feature of computers made within, say, the last five years or so.
working (aside from horrible, ugly, unreadable fonts -- again the Notepad of the GNOME world is kicking ass and taking names here!)
The Notepad of the GNOME world ? You're speaking about Gedit ? What have gedit to do with emacs ?
It, unlike Emacs, opens files using a standard file open dialogue box....
Beside you can activate cleartype support for emacs now, and have nicely antialiased fonts.
Wouldn't it be nice if this feature were a) active by default or, at
least, b) available somewhere on the menus? I can find nothing in the
GUI (of either *macs) that lets me specify fonts. Everything's a
paper-thin wrapper around arcane config files with little to no
documentation available at hand formatted using any cross-application
(and even cross-platform!) standard.
--
Michael T. Richter

On Mon, Jun 18, 2007 at 12:23:52PM +0800, Michael T. Richter wrote:
I'm using Emacs. It gives me a text window, like any other editor window (except where it's different) when I go to the horribly kludgy, not-at-all-integrated-with-the-desktop-theme file menu. In fact it's even worse. I go File->Open File... and it gives me ... a prompt in a little command window at the bottom of the editing screen asking me for the file name.
this offtopic thread is getting stale. thousands of good coders use emacs every day and are very satisfied with it. if the ui bothers you that much, initiate emacs with -nw and add these lines to your .emacs file: (if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1)) (if (fboundp 'tool-bar-mode) (tool-bar-mode -1)) (if (fboundp 'menu-bar-mode) (menu-bar-mode -1)) and it will look and act like a console app. you won't be tempted to use your mouse because there will be nothing to click on. if you still don't like that, well maybe emacs is not for you.

Michael T. Richter wrote:
On Sun, 2007-17-06 at 22:37 +0100, David House wrote:
Well, part 1 would be being *graphical*. I really have no time for ugly cryptic ASCII art "graphical" UIs... I just like being able to *see* what's happening. Is that too much to ask?
Did you read the rest of my email? For every feature you cited I gave links and screenshots to the Emacs equivalents, none of which (AFAIK -- I don't actually use them all) use ASCII art.
Got a file chooser that's actually a GUI that has the look and feel of every other GUI file chooser in existence? Because what I see in emacs now that I've got the X version working (aside from horrible, ugly, unreadable fonts -- again the Notepad of the GNOME world is kicking ass and taking names here!) is a half-assed GUI wrapped around a plain text-dominated interface. Kind of what you'd expect from people who think that GUIs are a waste of time and put one in just to say "we've got a GUI -- what are you talking about?"
No need to get nasty. One of the reasons that Emacs' GUI is lacking compared to that of (many) other programs is the fact that 99.9% of the underlying program code and function is exactly the same no matter what widget toolkit (or even when no widget-toolkit, i.e. the command-line) gets used. Furthermore, Emacs never does exactly what you want right out of the box. Most Emacs users have been tweaking their config files for years and are still constantly finding things to add or adjust. I personally find the default-configured Emacs a terrible pain to use. And lastly, it's not for everyone, and I think that for every programmer who's happy with a pretty editor that supports the most basic functionality, there's another programmer who prefers the somewhat ugly but more flexible editor. I find Stefan Monnier's haskell-mode a fine tool for writing Haskell code in Emacs. Do also note that Stefan is one of the lead developers on GNU Emacs, which is testament to how good this mode is. Best regards. -- Taylor Venable taylor@metasyntax.net http://www.metasyntax.net/

On Jun 16, 2007, at 11:10 AM, Andrew Coppin wrote:
Give it a go. Start out with the Emacs tutorial [1] so that you have your feet on solid ground, then jump to the Emacs tour [2] to whet your appetite to the breadths of features that Emacs provides.
It's a text-mode editor. quod erat demonstrandum.
It works in a terminal, yeah, but it's had an operable GUI (a few, really) for a very long time. It has icons, buttons, menus, and all that jazz. Here are some screenshots of ECB (Emacs Code Browser), for example: http://ecb.sourceforge.net/screenshots/index.html People write games in emacs (e.g. http://ulf.epplejasper.de/ EmacsBubblesScreenshots.html ). There used to be a full graphical web browser in emacs (images and everything), though it looks like it may have fallen by the wayside. And tetris comes installed. I'm an OSX user, so i use Aquamacs, but i have to assume that these aged innovations have made it to the Windows platform as well. I mean, yeah, it edits text, but it's not just a text-mode editor. -johnnnnnnnn

Personally, I really hate text-mode editors. (I won't even go into how many times I've had to reboot Linux just to get *out* of Vi!)
One bad experience and you have never given anyone/what a chance to proof you wrong ;) Perhaps take 10 seconds, fire up vim again and read the splash screen which tells you type :q<Enter> to exit type :help<Enter> or <F1> for on-line help ~ type :help version7<Enter> for version info how to exit vim again. I have to admit that I didn't crasp what to do either the first time. So let me tell you that :q<Enter> means you have to type the : to get the command line and <Enter> means you have to press the return key. The second option is using Ctrl-z to but vim into background (when running it within bash).. Then it's killed automatically when you exit bash. I don't want to tell you that you have to use vim. I want to show you that you don't have to be afraid when opening it again (by accident) There are some reasons why vim has been reader's choice 2005 (linux journal). I can't you tell much about emacs. I've chosen to learn vim because I don't have to press that many Meta and Ctrl - keys (which would have made my fingers hurt plenty) and because of the movement commands I couldn't find in emacs. If you are interested you can drop me an email and I can show you some of the IDE features I've written for vim. Marc Weber

Marc Weber wrote:
Personally, I really hate text-mode editors. (I won't even go into how many times I've had to reboot Linux just to get *out* of Vi!)
One bad experience and you have never given anyone/what a chance to proof you wrong ;)
I tried a whole heap of different text editors - Vi, Vim, Nano, Pico, Emacs, Jim, Fred, Christopher... (OK, I made that last one up.) The only ones I managed to actually edit files with are Nano and Pico. But given the choice, I'd *much* rather use KWrite. (Or Kate if I really have to.)

Andrew Coppin writes:
The only ones I managed to actually edit files with are Nano and Pico. But given the choice, I'd *much* rather use KWrite. (Or Kate if I really have to.)
Despite it exhibing virtually none of your own aforementioned IDE features? Emacs may be hard to get used to, but its power makes it worth it. Give it a fair try over a weekend or so, count the experience as gaining a life skill. -- -David House, dmhouse@gmail.com

David House wrote:
Andrew Coppin writes:
The only ones I managed to actually edit files with are Nano and Pico. But given the choice, I'd *much* rather use KWrite. (Or Kate if I really have to.)
Despite it exhibing virtually none of your own aforementioned IDE features?
KWrite and/or Kate are almost always installed when you play with somebody's Linux box. Emacs virtually never is.
Emacs may be hard to get used to, but its power makes it worth it. Give it a fair try over a weekend or so, count the experience as gaining a life skill.
I've heard a lot of people say that learning Lisp will "make you a better programmer forever". Personally, I think Lisp is an ugly language... Much prefer Haskell. ;-)

However, one of the reasons that Emacs is so great is the absolute wealth of libraries available for it. It's been aroud a long time and people like it a lot so there's pretty much an Emacs Lisp library to integrate _any_ tool, to help editing _any_ kind of source/configuration file etc. It would take many lifetimes to replicate this in a different language.
see also the history section in Luke Gorrie's Distel paper: http://fresh.homeunix.net/~luke/distel/distel-euc.pdf This was followed by Ermacs, a concurrent Emacs clone written completely in Erlang. Ermacs is fairly complete – it has major modes for Erlang and Scheme programming, a built-in Erlang shell, and support for efficiently editing large files. However, once the core editor was complete, it was obvious that GNU Emacs has an incredibly large set of wonderful features, and that extending Ermacs to include “enough” of them was completely out of the question. The lessons learned from Ermacs lead to Distel,.. how is Yi going to avoid that trap?
I've thought a little about writing a Haskell -> Elisp compiler, so that people could contribute to Emacs by writing Haskell, but I've got doubts about its feasibility.
Luke's Distel seems to have been very successful for erlang <-> emacs interaction, enabling erlang modes for emacs to be written in erlang, with tools that actually understand erlang. this seems to suggest that easy communication with some good-haskell-system-api-based haskell code might be a promising equivalent? http://fresh.homeunix.net/~luke/distel/ both emacs and vim can pass buffer segments and editing session information to external (haskell) code, working as text or file transformers, and both emacs and vim can be controlled by such external code. so haskellers can already use haskell to extend emacs/vim functionality, it just isn't very convenient when it goes beyond transforming text. i would much prefer if vim exposed a standard ffi, instead of all those specific bindings to popular scripting languages and tools, but even without a proper ffi, haskell code cooperating with vim script can already be written. and similarly for emacs, i suspect. so it may just be a matter of doing less of the ide work in elisp/vimscript, and of introducing an explicit interface for inter-process communication between the editor frontend and some haskell-system-api-based backend. claus

both emacs and vim can pass buffer segments and editing session information to external (haskell) code, working as text or file transformers, and both emacs and vim can be controlled by such external code. This is what shim tries to do. I've added a link to the wiki IDE page.
Marc Weber

Claus Reinke
This was followed by Ermacs, a concurrent Emacs clone written completely in Erlang. Ermacs is fairly complete – it has major modes for Erlang and Scheme programming, a built-in Erlang shell, and support for efficiently editing large files. However, once the core editor was complete, it was obvious that GNU Emacs has an incredibly large set of wonderful features, and that extending Ermacs to include “enough” of them was completely out of the question. The lessons learned from Ermacs lead to Distel,..
how is Yi going to avoid that trap?
Here's the plan for world domination: * Many features are going to be written/replicated as haskell libraries anyway, for usage as independent libraries. * Make sure gluing code is relatively easy I frankly suspect that haskell is a lot more powerful than erlang, and therefore it will be way easier to write code for Yi than Ermacs. For example, Ben Moseley has written a rudimentary Dired mode for Yi in about a week (I think), with no prior knowledge of Yi. The module is now 347 lines long (including blanks and comments) Also, I suspect haskell will become more popular than erlang, and the contributions to the respective editor of choice proportional. Cheers, JP.

files. However, once the core editor was complete, it was obvious that GNU Emacs has an incredibly large set of wonderful features, and that extending Ermacs to include “enough” of them was completely out of the question. The lessons learned from Ermacs lead to Distel,.. how is Yi going to avoid that trap?
Here's the plan for world domination: .. I frankly suspect that haskell is a lot more powerful than erlang, and therefore it will be way easier to write code for Yi than Ermacs. .. Also, I suspect haskell will become more popular than erlang, and the contributions to the respective editor of choice proportional. ..
i didn't know that Yi had acquired a tongue-in-cheek mode already!-) at least i hope that's what it was, because the ermacs lesson was not about contributing code or better language, but about sheer size and momentum being in favour of the weaker solution. that's not to say that Yi isn't worthwhile - having a haskell-only editor solution available can be useful at times, and being able to write a useful one is a good test of the language. claus

On Sunday 17 June 2007 23:56:51 Claus Reinke wrote:
i didn't know that Yi had acquired a tongue-in-cheek mode already!-) at least i hope that's what it was, because the ermacs lesson was not about contributing code or better language, but about sheer size and momentum being in favour of the weaker solution.
I think that we should not underestimate the transforming power of dogged determination. Think of Linux: only a terminal idiot could have conceived the plan of writing from scratch a clone of a 20 years old operating system (Unix) when everybody knew that momentum was on the side of the weaker solution (Microsoft) in the PC market and on the many existing commercial Unix versions in the professional market. Well, we all know what that stupid idea has led to. I certainly do, as I am writing this message under Linux. Whenever we act, we do so in a context that determines the value of our actions. However, our actions also create a new context. Linux, in the context in which it was started, was an unequivocaly bad idea. However, its existence has created a new context where it has a real value. So, the idea of writing an Emacs-like system in Haskell might be ill-considered but, as you also notice in the rest of your message, that doesn't make it worthless in a long-term perspective. An even more relevant example might be Eclipse: Eclipse is very much the Java Emacs: a customisable application framework with a zillion extension. Creating it was a major effort but, thanks to that effort, Java has greatly increased its reach and credibility, in particular as a viable solution to write desktop applications. Maybe, just maybe, yi might play a similar role for Haskell. Regards, titto

On Mon, 2007-18-06 at 09:49 +0100, Pasqualino 'Titto' Assini wrote:
Maybe, just maybe, yi might play a similar role for Haskell.
This is what I am hoping for (and why I'm now trying to get Yi working).
I just hope it doesn't become the stovepipe that emacs is.
--
Michael T. Richter

I think that we should not underestimate the transforming power of dogged determination. .. So, the idea of writing an Emacs-like system in Haskell might be ill-considered but, as you also notice in the rest of your message, that doesn't make it worthless in a long-term perspective.
indeed. i was just asking whether you are aware of the odds. but as long as you are, it is nice to see such enthusiasm!-) claus

Pasqualino 'Titto' Assini wrote:
I think that we should not underestimate the transforming power of dogged determination.
Think of Linux: only a terminal idiot could have conceived the plan of writing from scratch a clone of a 20 years old operating system (Unix) when everybody knew that momentum was on the side of the weaker solution (Microsoft) in the PC market and on the many existing commercial Unix versions in the professional market.
Well, we all know what that stupid idea has led to. I certainly do, as I am writing this message under Linux.
That reminds me... Somebody should write an *OS* in Haskell! :-D If that happened, then maybe at last I'd be able to have a choice other than M$ Windows (with all it's well-documented faults), and Unix (with its legendary unfriendliness and unecessary complexity). OTOH... how the heck do you write an operating system in a language that doesn't even support I/O? :-S

Hallo,
On 6/18/07, Andrew Coppin
OTOH... how the heck do you write an operating system in a language that doesn't even support I/O? :-S
You can start from here: http://programatica.cs.pdx.edu/House/ Cheers, -- -alex http://www.ventonegro.org/

On 6/18/07, Andrew Coppin
I think that we should not underestimate the transforming power of dogged determination.
Think of Linux: only a terminal idiot could have conceived the plan of writing from scratch a clone of a 20 years old operating system (Unix) when everybody knew that momentum was on the side of the weaker solution (Microsoft) in
Pasqualino 'Titto' Assini wrote: the
PC market and on the many existing commercial Unix versions in the professional market.
Well, we all know what that stupid idea has led to. I certainly do, as I am writing this message under Linux.
That reminds me... Somebody should write an *OS* in Haskell! :-D
If that happened, then maybe at last I'd be able to have a choice other than M$ Windows (with all it's well-documented faults), and Unix (with its legendary unfriendliness and unecessary complexity).
OTOH... how the heck do you write an operating system in a language that doesn't even support I/O? :-S
Well, there hasn't been a lot of work done on the subject but you probably should look at http://programatica.cs.pdx.edu/House/ Now if you're seriously asking how one would do it, the basic approach taken in the paper was to create a monad H that was a controlled subset of IO & that did all the fundamental interactions with the the hardware. The operations of H, as with IO, have to be primitives in the runtime that you're using and probably written in C or assembly.

Creighton Hogg wrote:
On 6/18/07, *Andrew Coppin*
mailto:andrewcoppin@btinternet.com> wrote: That reminds me... Somebody should write an *OS* in Haskell! :-D
Well, there hasn't been a lot of work done on the subject but you probably should look at http://programatica.cs.pdx.edu/House/ Now if you're seriously asking how one would do it, the basic approach taken in the paper was to create a monad H that was a controlled subset of IO & that did all the fundamental interactions with the the hardware. The operations of H, as with IO, have to be primitives in the runtime that you're using and probably written in C or assembly.
I read about House once. It seemed too far-out to be true. OTOH, it's only a proof-of-concept system. I doubt it will ever become a real, usable system, sadly.

On 6/18/07, Andrew Coppin
Creighton Hogg wrote:
On 6/18/07, *Andrew Coppin*
mailto:andrewcoppin@btinternet.com> wrote: That reminds me... Somebody should write an *OS* in Haskell! :-D
Well, there hasn't been a lot of work done on the subject but you probably should look at http://programatica.cs.pdx.edu/House/ Now if you're seriously asking how one would do it, the basic approach taken in the paper was to create a monad H that was a controlled subset of IO & that did all the fundamental interactions with the the hardware. The operations of H, as with IO, have to be primitives in the runtime that you're using and probably written in C or assembly.
I read about House once. It seemed too far-out to be true.
OTOH, it's only a proof-of-concept system. I doubt it will ever become a real, usable system, sadly.
Well if no one works on it, that's kind of a given. :-P But more seriously, what seems so far out about it? I'm curious. Also, if this thread of operating systems & functional programming isn't interesting to other people then we should probably just take it to e-mail & not the list.

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Andrew Coppin wrote:
OTOH... how the heck do you write an operating system in a language that doesn't even support I/O? :-S
Back when I was first learning programming, with C, I had that exact same question: how the heck can your program DO anything, when the language consists of a bunch of functions that are executed that can only modify meaningless variables your program defines? (C standard defines modifications to volatile variables as side-effects, actually.) It's because your environment knows how to call into the kernel, the kernel knows how to make you computer do things - and that usually involves a bit of assembly, because the C language doesn't define non-program-logic for the compiler to translate. Source-language extensions to C allow inline assembly (and much more), so I'm sure something appropriate could be done for Haskell if that was judged as the best approach. Isaac -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGduIWHgcxvIWYTTURAoRQAKC6vOw01VfwaPJavhcL5YV+lKlHagCdHUjB guyrL0QcQUTfHG8PW91Wm+Q= =2Xeu -----END PGP SIGNATURE-----

Hello Andrew, Monday, June 18, 2007, 9:31:46 PM, you wrote:
OTOH... how the heck do you write an operating system in a language that doesn't even support I/O? :-S
it does lazily creates new world on each IO operation. advantages: if some file will be never used in future, it will not be written at all :) -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

I've searched the internet for an Haskell IDE that supports the following:
my first reaction was: he can't be serious, not that again!-) however, i tried to find the info by the "obvious" means, and found that to be a rather sobering experience. a simple google search does give rather a few relevant answers, but there are entries on haskell.org that i've just had difficulty finding again, even though i knew they were there. i still can't help feeling that using google *and* haskell.org's own search should have given some more results than the poster seems to be aware of, but it also seems obvious that we have some serious barriers to finding such info at the moment: - external search engines are currently banned from indexing the wiki, where much useful haskell info resides, so one does need to use the internal search as well, to find wiki content. perhaps the haskell.org main page should emphasise that and also repeat the call for volunteers to fix the issue (there was something like a consensus to try moving the dynamic parts of the wiki to a distinguishable prefix, and banning search engines only from that particular part; but someone needs to implement that and monitor the effects). - the current organisation of wiki indexing seems suboptimal. ide related content used to be easier to find, but is now somewhat spread out. debugging tools seem to have disappeared completely from the most likely indexes (instead one finds some debug libs)? the most "obvious" wiki pages are often not uptodate/complete, the most "obvious" index headings do not lead to "important" entries quickly (or at all). information is sometimes spread out over several similar pages/index groups. all of which means that information might be difficult to find, and finding a partial source of information will miss out on much of the available info. in best Prolog tradition, perhaps you could say where you've searched, and someone (i'm calling all of you active haskell.org wiki volunteers:-) might find a way to put a link to the info right where people are looking?-)
- syntax highlighting - quick navigation (goto symbol, goto instance, find usages, etc) - code completion
http://www.google.com/search?q=haskell+ide http://www.haskell.org/haskellwiki/Applications_and_libraries/Program_develo... (i would have expected to see the debuggers linked from that one?) there's the also obviously named http://www.haskell.org/haskellwiki/IDE , but that seems to be in need of an update?
- cross module refactoring
http://www.haskell.org/haskellwiki/Refactoring http://www.haskell.org/haskellwiki/Applications_and_libraries/Program_develo... (hare had vim and emacs interfaces to a gui-less backend, as well as an api for writing new refactorings; the idea was that people could write interfaces to that backend for their own ide/editor, and submit code for additional refactorings; hare's main drawbacks were that it is limited to standard haskell [haskell 98], and needs all sources, both of which are unlikely in a ghc-based production environment; but if you can live with those constraints, it is great [bias warning;-])
- "debugging" (not imperative debugging, so no breakpoints, but just
there is the obviously named http://www.haskell.org/haskellwiki/Debugging , but it doesn't mention all tools. for instance, i only found the following "Some Hat user should complete this section" because i was searching for hat on that page ( http://www.haskell.org/hat/ )
This does not seem to exist? If this is correct, this is a real shame,
you will need to combine tools, roughly according to the three groups used above, the first being covered by several good programmable editors, via haskell-specific modes and plugins, the second by backend tools like hare (also pluggable into editors), the third by various tools and libraries. the main limitation of most tools will be haskell 98, as they were developed before haskell systems offered haskell apis. that age factor also means that some of those tools might need to be updated for current compilers/ libraries.
Any help to find an IDE that comes closest to these features would be much appreciated.
please help to make the information more easily findable in future. summarize answers or, even better, improve the haskell.org wiki!-) hth, claus

my first reaction was: he can't be serious, not that again!-) however, i tried to find the info by the "obvious" means, and found that to be a rather sobering experience.
it is also no longer obvious that "Communities and active projects" is not just a topic for the four subheadings, but in itself a link worth following, with 6-monthly reports of all things haskell.. [most recent: may 2007] here's the index for the latest edition (also browse a few older editions for tools/libs that were completed more than a year ago, but might still work, or be revivable): http://haskell.org/communities/05-2007/html/index.html claus

Sorry I should have mentioned that I actually did all those searches you provided, and read the wiki. I've been searching the internet for 6 months now. I'm a professional software developer with 20 years of experience. I actually (co-)developed integrated IDEs for visual programming languages, type inferers, some refactoring tools, a version control system, some compilers and linkers, and some commercial videogames for Commodore 64, Amiga, PC, XBOX, PS2 and PS3. Now that I get to learn Haskell, I noticed that I've always programmed in a horribly ugly, imperative/OO way ;) So I'm not really a rookie, although I'm indeed a complete Haskell newby :) I've tried VIM, Emacs, asked Rhinosoft for an evaluation (which I did not get), tried the Eclipse plugin (can't get it to work on 3 PCs I tried), tried Visual Haskell (incomplete, sometimes crashes or hangs Visual Studio), an briefly looked at other alpha-level solutions. Currently I'm using "Notepad++", which just does basic syntax highlighting but is usable out of the box for a Windows programmer. The point I wanted to make is, that I can't find an easy-to-install-ready-to-use-and-rock-n-roll IDE for Windows that comes with all or most of those features. I mean something like Borland TurboPascal from the 80's, Visual Studio 2005, IntelliJ IDEA or Eclipse. I know that people with a UNIX background have a completely different point of view on this (they like separate tools they can fully configure). IMHO Haskell - although old - has a lot of potential that is rather difficult to reach for "spoiled MTV generation inpatient plug-and-play Windows programmers"... The people from Microsoft seem to understand that; they made an excellent Visual Studio plugin for their F# research language. Although far from perfect, this plugin works better for me than say Visual Haskell. As I know most of the .NET framework, F# is still an option me, but I'm tackling Haskell first, as it is pure and lazy (and I am the latter but not the former ;-) Cheers, Peter BTW: I also looked at UNICODE editor support (like Fortress), so it would bring Haskell a step closer to mathematical notation (all Haskell books already use UNICODE for their Haskell examples). Yes, this is also on the wiki, but again, I fail to do something practical. -----Original Message----- From: haskell-cafe-bounces@haskell.org [mailto:haskell-cafe-bounces@haskell.org] On Behalf Of Claus Reinke Sent: Saturday, June 16, 2007 1:18 AM To: haskell-cafe@haskell.org Subject: Re: [Haskell-cafe] IDE?
I've searched the internet for an Haskell IDE that supports the following:
my first reaction was: he can't be serious, not that again!-) however, i tried to find the info by the "obvious" means, and found that to be a rather sobering experience. a simple google search does give rather a few relevant answers, but there are entries on haskell.org that i've just had difficulty finding again, even though i knew they were there. i still can't help feeling that using google *and* haskell.org's own search should have given some more results than the poster seems to be aware of, but it also seems obvious that we have some serious barriers to finding such info at the moment: - external search engines are currently banned from indexing the wiki, where much useful haskell info resides, so one does need to use the internal search as well, to find wiki content. perhaps the haskell.org main page should emphasise that and also repeat the call for volunteers to fix the issue (there was something like a consensus to try moving the dynamic parts of the wiki to a distinguishable prefix, and banning search engines only from that particular part; but someone needs to implement that and monitor the effects). - the current organisation of wiki indexing seems suboptimal. ide related content used to be easier to find, but is now somewhat spread out. debugging tools seem to have disappeared completely from the most likely indexes (instead one finds some debug libs)? the most "obvious" wiki pages are often not uptodate/complete, the most "obvious" index headings do not lead to "important" entries quickly (or at all). information is sometimes spread out over several similar pages/index groups. all of which means that information might be difficult to find, and finding a partial source of information will miss out on much of the available info. in best Prolog tradition, perhaps you could say where you've searched, and someone (i'm calling all of you active haskell.org wiki volunteers:-) might find a way to put a link to the info right where people are looking?-)
- syntax highlighting - quick navigation (goto symbol, goto instance, find usages, etc) - code completion
http://www.google.com/search?q=haskell+ide http://www.haskell.org/haskellwiki/Applications_and_libraries/Program_develo pment (i would have expected to see the debuggers linked from that one?) there's the also obviously named http://www.haskell.org/haskellwiki/IDE , but that seems to be in need of an update?
- cross module refactoring
http://www.haskell.org/haskellwiki/Refactoring http://www.haskell.org/haskellwiki/Applications_and_libraries/Program_develo pment#Program_Transformation (hare had vim and emacs interfaces to a gui-less backend, as well as an api for writing new refactorings; the idea was that people could write interfaces to that backend for their own ide/editor, and submit code for additional refactorings; hare's main drawbacks were that it is limited to standard haskell [haskell 98], and needs all sources, both of which are unlikely in a ghc-based production environment; but if you can live with those constraints, it is great [bias warning;-])
- "debugging" (not imperative debugging, so no breakpoints, but just
there is the obviously named http://www.haskell.org/haskellwiki/Debugging , but it doesn't mention all tools. for instance, i only found the following "Some Hat user should complete this section" because i was searching for hat on that page ( http://www.haskell.org/hat/ )
This does not seem to exist? If this is correct, this is a real shame,
you will need to combine tools, roughly according to the three groups used above, the first being covered by several good programmable editors, via haskell-specific modes and plugins, the second by backend tools like hare (also pluggable into editors), the third by various tools and libraries. the main limitation of most tools will be haskell 98, as they were developed before haskell systems offered haskell apis. that age factor also means that some of those tools might need to be updated for current compilers/ libraries.
Any help to find an IDE that comes closest to these features would be much appreciated.
please help to make the information more easily findable in future. summarize answers or, even better, improve the haskell.org wiki!-) hth, claus _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Sorry I should have mentioned that I actually did all those searches you provided, and read the wiki.
ok, then it is a different story, needing different answers:-) in particular, you have found tools doing all the things you asked for, but they either had issues (please report them, to the tool authors/maintainers, or here), or did not provide some features you need (again, specific questions might turn up hidden features/tools, or influence further development). or they have just not been integrated.
I've tried VIM, Emacs, asked Rhinosoft for an evaluation (which I did not get), tried the Eclipse plugin (can't get it to work on 3 PCs I tried), tried Visual Haskell (incomplete, sometimes crashes or hangs Visual Studio), an briefly looked at other alpha-level solutions.
yes, that Rhinosoft entry was a surprise, until i noticed the date;), and the simple fact that there are so many options, all with their own issues, pros&cons, can be off-putting. probably best to choose one, and take it all the way it can go. here's an idea for an adventurous soul: perhaps someone who hasn't yet committed to any specific ide/editor could do a survey of available haskell development tools (well, okay, at least the editing/ide side of that), state of the art, pros&cons, selection advice, etc?
Currently I'm using "Notepad++", which just does basic syntax highlighting but is usable out of the box for a Windows programmer.
that suggests to me that following either the emacs or the vim route should give you a substantial improvement - the feature equivalent should work out of the box, and simple addons should cover more of your feature requests. as others have pointed out, both require an investment in learning, and using either might be addictive (and they stay with you into the next great thing/platform/language). to complement the emacs tour link, and since this question comes up so often,-) a tour of a few vim features, adapted for haskell: http://www.cs.kent.ac.uk/people/staff/cr3/toolbox/haskell/Vim/vim.html
The point I wanted to make is, that I can't find an easy-to-install-ready-to-use-and-rock-n-roll IDE for Windows that comes with all or most of those features.
well, it would be nice to have a standard integrated release of the major tools, preferable all behind a graphically and ergonomically well-designed front, but with limited resources and free availability, functionality comes first (although the Hat folks have tried to collect and integrate all the various haskell debugging options, for example). occasionally, there has been talk of a 'haskell cd', where the issue is not the medium of distribution, but the coordination, testing and integration of releases for the various tools, libs, and docs. that hasn't happened yet (it would be a lot of work for someone, and by the time they finished, development would have moved on), but it might still be a worthwhile thing to try, especially given the growing number of haskell users, tools, and libraries.. as far as gui frontends are concerned, there is an ongoing google summer of code project; will be interesting to see how far that gets: http://neilmitchell.blogspot.com/2007/04/soc-guihaskell.html claus

bf3@telenet.be writes:
The point I wanted to make is, that I can't find an easy-to-install-ready-to-use-and-rock-n-roll IDE for Windows that comes with all or most of those features. I mean something like Borland TurboPascal from the 80's, Visual Studio 2005, IntelliJ IDEA or Eclipse.
Would you rather have a different editor for every language, and be forced to learn new editor paradigms, keyboard shortcuts, tools and so on, or have one editor for every language? This is one of Emacs's greatest strengths, IMO: it can handle _everything_. -- -David House, dmhouse@gmail.com

Hello bf3, Saturday, June 16, 2007, 3:23:40 PM, you wrote:
The point I wanted to make is, that I can't find an easy-to-install-ready-to-use-and-rock-n-roll IDE for Windows that comes with all or most of those features. I mean something like Borland TurboPascal
it's well-known trap. haskell is an order of magnitude better than widespread OOP languages. why it's not used by everyone? just due to shortage on libs, training and - yes - IDEs. "programming" in Delphi in many cases need just clicking here and there so, you got something, you lost something ps: i use editor which supports only syntax highlighting. it's very like working in tp 3.0 or quickc 1.0 - are you had such experience? :) -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

Bulat Ziganshin wrote:
it's well-known trap. haskell is an order of magnitude better than widespread OOP languages. why it's not used by everyone? just due to shortage on libs, training and - yes - IDEs. "programming" in Delphi in many cases need just clicking here and there
I'll second the libs thing - it's really quite frustrating the number of simple things for which no libraries exist. :-( Still, the Open Source Way(tm) is to invent your own - and that is a task that is beyond my capabilities, so there.

bf3@telenet.be wrote:
Any help to find an IDE that comes closest to these features would be much appreciated.
There's a short list at http://haskell.org/haskellwiki/IDEs, but I don't think any are all that close. I'd like to see a good IDE for Haskell, but it's a lot of work. Ideally it would use the .cabal file as its "project file", so that one could take any Cabal project and double-click on the .cabal file to open the project in the IDE. Also I think we could borrow some ideas from Apple's Dylan IDE http://www.haskell.org/pipermail/haskell-cafe/2007-May/025791.html. -- Ashley Yakeley

bf3@telenet.be writes:
- syntax highlighting - quick navigation (goto symbol, goto instance, find usages, etc) - code completion
Emacs with haskell-mode can do this.
- cross module refactoring
Refactoring doesn't feature as heavily in Haskell workflow as, say, Java, just because of the differing natures of the language (e.g. Haskell features more powerful polymorphism). So you can pretty much get by without refactoring tools, although some do exist. HaRe, for example, has Emacs integration.
- "debugging" (not imperative debugging, so no breakpoints, but just plugging in a visualizer/pretty printer for a function in a separate dedicated window, like what http://www.apple.com/shake does on each "node")
Debugging in Haskell is a bit of a no-show for now. There's some support in the latest versions of GHCi, but I don't think it's very mature. -David House, dmhouse@gmail.com
participants (22)
-
Alex Queiroz
-
Andrew Coppin
-
Ashley Yakeley
-
bf3@telenet.be
-
brad clawsie
-
Bulat Ziganshin
-
Chaddaï Fouché
-
Claus Reinke
-
Creighton Hogg
-
David House
-
Gour
-
Isaac Dupree
-
Jean-Philippe Bernardy
-
John Melesky
-
Marc Weber
-
Mattias Bengtsson
-
Michael T. Richter
-
Pasqualino 'Titto' Assini
-
PeterV
-
Sebastian Sylvan
-
Taylor Venable
-
Thomas Schilling