Skip to content
July 6, 2007 / cdsmith

Why don’t Haskell Developers Use Windows?

Reading a recent thread on haskell-cafe, it was mentioned that there aren’t a lot of Windows Haskell programmers.  That’s true, but I think it’s misleading to say it that way.  This is one of those situations where correlation does mean causation.  Here’s my story.

I write Haskell using Windows… sort of.  Okay, not really.  What I do is use a Windows laptop to open a PuTTY window, in which I write Haskell code on a UNIX system that’s sitting on the other side of the room.  This is certainly not my ideal working environment.  I’d love to really write Haskell on Windows, but I don’t for several reasons.

I don’t write Haskell with Windows because I haven’t found a good environment for it.  I like my IDE programs, and especially Eclipse – which I already use for Java, C, and C++ programming; but that doesn’t look feasible.  The closest I could seem to come was eclipsefp, but it’s nearly unusable.  It gets syntax highlighting completely wrong.  (It’s easy to get hard cases wrong in Haskell; writing a really correct syntax highlighter is hard; but this one even gets obvious things wrong like forgetting to highlight deriving, and requiring the occasional frivolous edit to poke it into changing syntax highlighting when something changes.)  I tried to fix some things, but the Haskell code is in a darcs repository, and the only darcs plugin for Eclipse never seemed to work.  Writing Eclipse plugins in any environment except Eclipse is hideously painful; so enough of that.  Even if I did get it to work, the Eclipse support for Haskell doesn’t seem to advanced; may as well use a command line.

I don’t write Haskell with Windows because of Lambdabot.  Lambdabot and GOA (GHCi On Acid) are important tools for me.  They are far more important than the platform I develop on.  But it looks rather non-trivial to build them for Windows.  I tried to do so for several hours, before I gave up.

I don’t write Haskell with Windows because I build development versions of GHC a lot.  (I do this to at least help with testing, and partly because I have aspirations to contribute to GHC myself in the future.)  While most of the breaking of GHC seems to happen on MacOS, I notice a lot of patches floating around to fix broken builds of GHC for Windows as well.  One rarely sees a developer commit something that breaks the build for Linux, because that’s what the developers use.

There are probably more people out there in the same situation.  There seems to be a catch-22 here.  It’s not that Haskell doesn’t attract Windows.  Haskell attracts people, who subsequently realize that developing on Windows is harder than developing on Linux.  Since Haskell does not attract the sort of people who are slaves to their platform, that means there are fewer people developing Haskell with Windows.


Leave a Comment
  1. austin seipp / Jul 10 2007 11:33 pm

    I use (almost) the exact same setup you do in relations to using Windows for PuTTY and just SSH’ing to another box (I have 3), I however, find this a nice experiance as I had previously relegated my Windows box almost entirely to the small amount of on rails development I do. I love emacs far too much to simply give it up (and with the lack of an adaquate console on windows, you can forget it) and haskell-mode (or even yi) beats the pants off of EclipseFP easy. It’s these things that relgate windows to where it is in my books; not suited for something like haskell development.
    I think the main thing it boils down to is just because Windows isn’t what the hackers themselves are using, but it’s because of that the whole sector is weak on it’s knees. Stronger tools, stronger support, stronger base of users in that particular domain.

  2. duder / Jul 10 2007 11:54 pm

    Claus Reinke has a pretty good vim setup, and from his screenshots it appears to be windows. Or maybe a butt ugly KDE theme.

  3. Max / Jul 11 2007 1:11 am

    I use Visual Haskell on Windows ( It works pretty nicely: the syntax highlighting is solid and it intergrates with Cabal. You do need to have Visual Studio though.

  4. Neil Mitchell / Jul 11 2007 3:46 am

    I don’t patch GHC, because I choose to run Windows, which makes it nearly impossible to build GHC. You are indeed right, and these things need to be addressed seriously!

  5. Pavel / Jul 11 2007 3:57 am

    Unless I am way off, some of the primary GHC developers are working for Microsoft which makes me doubt that they are using Linux or OS X…..

  6. augustss / Jul 11 2007 3:57 am

    I think that when intelligent people have a choice they don’t pick Windows. Unfortunatly, some of us don’t get to pick. :(

  7. ryan / Jul 11 2007 9:20 am

    You forgot the most important reason not to use Windows to write Haskell. Windows blows. It’s a terrible environment in general let alone for something as complex and rapidly-changing at software development.

    Just install Ubuntu on your laptop, problem solved. Or you could just get a Macbook. Either way you will have solved your problem.

  8. Jeff / Jul 11 2007 9:51 am

    The biggest difference I find is that breaking an infinite loop with ctrl-c hangs GHCI on Windows. I use GHCI constantly, so this can be pretty annoying.

  9. mattr / Jul 16 2007 7:47 pm

    I think the difference is that the tools on windows are heavy weight (eclipse, visual studio) and there is a lot of work haskellising them (yes, I know about gvim, etc, but without good terminal integration, they lose a lot of their shine). However, it is simpler to integrate haskell into lightweight unix tools, plus you get tons of functionality just having bash/sch/… to run it on. You *can* get things just as nice on windows, but you have to go to much more effort. For this reason I think unix/linux/posix oses will always have the advantage as development tools for new languages or those with a small user community.

  10. Alberto Gómez / May 26 2008 8:26 am

    I used Visual haskell in Windows, but two years ago was heavy and buggy, later i moved to the editparPro editor, which is nice and configurable. I made my own haskell schema for colirizing keywords wich is no public in the editpadPro site. editpadPro also permits macros so I made somethig like a little IDE with it.

    But later, after ghc 6.4.2 version, all the joy ended; hs-plugins was no longuer compatible with windows until today, so no lambdabot etc.

    So I was forced to move to linux. I has a ubuntu emulated under QEMU just to use haskell. QEMU did not work well for me so I switched to VMWare.

    I think that windows has the tools. And the fact is that no piece of software can expect to reach the mainstream without seriously consider windows as as prioritary. CLEAN has made a greath job on that and for this matter is considered an industrial language, taken seriously. But, for better or for worse Haskell is a research language tied to the unix world. I consider dangerous to forget windows no matter how good blah blah blah are other platforms.

  11. Marzonian / Aug 16 2009 8:58 am

    Its amazing how people often talks bad about Windows despite that its the major OS used by the world.
    The reason why haskell is not popular in windows is simple because Windows programmers got better tools and IDE to get productivity work out in other languages than to sit around waiting for crumbs from a language that has no idea how important mainstream os is.
    Windows saves tons of time, everything just WORKS thanks to its dominant shares instead of patching here and there to get simple things working. The GUI level is nothing compared to Windows , the gnome/kde is like primitive cavemens with a surface ICI painted on its face.
    Oh your wifi aint working anymore? i bet u did an unbuntu upgrade! Can’t get skype working? Use Windows.
    The corporate world really dont give a hoot on how much time u spend fixing ur own notebooks, Windows saves America! (pun intended)

    • cdsmith / Aug 16 2009 9:26 am

      I cetainly don’t agree with this. When I wrote this more than two years ago, there was certainly a lack of Windows tool sets for Haskell. A lot of the acuteness of this problem is solved now, with the only huge remaining difficulty being the lack of a usable mainstream development environment (i.e., the command line is fine for systems with a usable command line, but Windows development requires a separate environment).

      In general, though, I’ve found that getting Linux to work for important stuff is no more of a significant problem than getting Windows to work for these same things; indeed, generally easier, given that I can go from needing software to do something, to having it, in generally about 30 seconds on Ubuntu, and it normally takes me longer than 30 seconds to drive to the nearest software store. The major complaints seem to come from the gaming and entertainment side of things, which is hardly the “corporate world”.

      • Meow / Jan 26 2010 6:11 pm

        “In general, though, I’ve found that getting Linux to work for important stuff is no more of a significant problem than getting Windows to work for these same things”

        ACLs/IPSec and tons of other simple stuff on Linux require Kernel patches. How is it the same?

    • Anonymous / Nov 27 2011 8:37 am

      A pun might have been intended but one certainly wasn’t made! :P

      • Slacky / Oct 26 2013 2:51 pm

        Haha, ditto. It’s a pretty weak pun.

  12. Anonymous / May 1 2012 11:31 pm

    What a disgustful lunixoid shit with all these cabal dependencies! shame on you, haskell likers! intelligent people don’t permit themselves such a slapdash work.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: