Monday, March 12, 2012

Can Frege (Haskell on Java) deliver?

As you know, I'm the main (and more or less, at the moment the sole) developer for EclipseFP. It's going reasonably well, I'm putting a few enhancements here and there, and there are a few big things that I'm planning to do that would be exciting to do and hopefully to use.

However, I can't shake off a nagging feeling that maybe my energy is not 100% useful to the community. The compelling argument of EclipseFP is that it allows developers that are familiar with Eclipse to develop in Haskell as easily as possible: they can concentrate on writing their Haskell code and not have to learn another IDE to do it. But I'm wondering if really there is an audience (apart for myself).
- Unix Hackers will use Vi/Emacs and will scoff at the very notion of using an IDE.
- People really into Haskell would probably prefer an IDE written in Haskell like Leksah, especially since such an IDE actually proves that developing GUI programs in Haskell is possible!
- People that are in the Eclipse/Java world and want to go into functional programming can do so in Scala, Clojure and of course now Frege. Frege now boasts an Eclipse plug-in as well, so really the incentive is great: you can use a Haskell-like language in Eclipse, with probably better integration that what EclipseFP can achieve since everything in Frege boils down to Java. I suppose you could even write the Eclipse plugin code in Frege.

I'm even tempted to make the jump myself. Maybe with Frege I'll get a ecosystem that's doesn't consider Windows as a second grade platform. But can it deliver, in terms of power, performance, reliability?
One thing is clear: Frege is moving forward, which is more that can be said, as far as I know, of others Haskell on the JVM efforts (even the Wiki page says that it'd be a hard job to do, obviously the Frege developers didn't let themselves be scared).

I'll be interested in hearing feedback on people's experience with Frege, and I think I'll take it for a spin myself soon. I'll post my experiences!


Jonathan Turner said...

I see the EclipseFP aiming for programmers who like a decent IDE. They may not be Java programmers or need to use the JDK.

I use Eclipse for its IDE features. I do almost all my development in C++, I don't even touch Java or the JDK. I can see why that would be a draw for some, but I see EclipseFP targeting a different audience than the Haskell on the JVM approach.

David Terei said...

I think your efforts are very valuable but it's a huge undertaking for one person and an IDE has to be pretty far along before it becomes compelling. So there is a lot of work before that tipping point.

I think you are wrong on the first two points. I know a lot of developers (myself included) who are huge Vim fans but still prefer Eclipse for Java development. Most developers also don't care too much what language their tool is written in, just that its a great tool. I think how quickly a large proportion of the Haskell community has abandoned Darcs in favour of Git provides some evidence for this.

There are defiantly developers who fit the description you paint, but not a majority and I think its also an older mentality that most younger developers don't have.

I think Frege is an orthogonal issue. Sure Eclipse is associate with Java but its a pretty diverse ecosystem these days. The Eclipse C IDE is also pretty good.

JP Moresmau said...

Thanks for your insights, both of you. David, what are for you the killing features a Haskell IDE should have, that will make it reach that tipping point?

Costin Cozianu said...


Personally a big thank you for your efforts on putting together Eclipse FP.

I personally think tools like Eclipse are essential and are essentially what gave Java an incredible advantage.

At my work it's much easier to integrate for example Clojure, which has several excellent IDEs (including Java plugins) and inter-operate with Java -- and take advantage of the qualities of the JVM implementation and associated libraries.

Personally, I see a lot of developer productivity as a problem of knowledge management. Language features go a long way but without tools to help navigate the big hairy mess that are the libraries of a platform (any platform), there is no hope.

Code completion and tooltips (quick access to javadoc) are essential tools.

Ingo said...

I am looking forward to your evaluation of Frege - I am sure all Frege developers will take fair criticism seriously.

If you have any questions, there is now a Google group under

Thorsten said...

I'm not David :-), but for me the killing features are:

* Refactoring support
* tools to handle program structure, i.e.
** navigating references and definitions of functions, etc.
** managing dependencies (import graph; dropping unused import statements; managing the list of imported or hidden names)
* run nicely on Mac OS (I'd love to have a native version of course :-), but Eclipse is certainly better than e.g. GTK)
* integration of profiling and debugging tools is a big plus
* snappiness, i.e. the IDE must not feel sluggish

I have to admit that I hadn't looked at EclipseFP for some time now which I just made good for and I'm impressed by the features listed on its web site! Several items of my wish list seem to be taken care of and other nice features are available as well.
A big thanks for your great work!

Have to try it out soon.

clanehin said...

I have had precious little time to haskell lately, but I would want to encourage you that I remain very much interested in your work.

Yukarin-chan said...

EclipseFP is the best IDE for Haskell I have seen by a lot.

Leksah just seems like reinventing the wheel to me, why write a whole new IDE when good ones exist.

Anonymous said...

EclipseFp is the only IDE I can get to work on the mac.
Leksah crashes about once every 30 seconds.

For a beginner or dabbler in Haskell, an easy to install and use IDE is very helpful. I have no preference for an IDE written in Haskell.

Keep up the good work.

emi_me said...

hey look for this programming website where you can download codes, share or have fun with the countcode community:

killy said...

I've been working in Haskell for 3 months now. So far I developed my code in emacs (Haskell mode + GHC-mod), Leksah and EclipseFP and EclipseFP is definitely the best of these three. Leksah is clumsy, buggy and feature-lacking. The latest version added a panel that allows to display files in a project - that shows how poor Leksah is. EclipseFP is very decent. I'd like to see better syntax highlighting, especially distinguishing between defining a function and using that functions name somewhere in the code. Refactoring support would be nice also. I'm pretty sure you have an audience so I'm keeping my fingers crossed.

Chris Dew said...

Please be reassured that EclipseFP is a *very* useful project. I use Python (Django), Javascript (NodeJS), Java (Android), JavaME and C in Eclipse on a regular basis. I'm a Unix/Linux guy - I've been using vi since the early 90's but have found that Eclipse (with the excellent viplugin, which I have bought a copy) is a more productive environment.

I first tried to learn Haskell in 2009, but was not sufficiently motivated to get through Cabal-hell.

Yesod turning 1.0 gave me an incentive to have another look at the language, and I must admit that I love what I've seen so far.

I just wish that cabal packages came with front-page READMEs (on the hackage site) like projects do on GitHub.

Thanks for all your work, and be reassured that it is very useful.


JP Moresmau said...

Chris, thanks for the kind words!