[xmonad] xmonad as an outsider

Norbert Zeh nzeh at cs.dal.ca
Thu Nov 10 23:13:48 CET 2011

Allen S. Rout [2011.11.10 1539 -0500]:
> On 11/10/2011 12:34 PM, Anthony Campbell wrote:
> >Have you looked at dwm, written in C? It was the forerunner of xmonad
> >and functionally and visually the two are quite similar. I was able to
> >modify it pretty easily by editing config.h and patching the code even
> >though I know no C.
> While I'm still also an outsider, I figure I can say this:
> Posting signs to the help list for X that folks should use competing
> product Y is likely to eventually generate friction.  Seeing the
> comment I experience an awkward embarrassment, like seeing a fellow
> guest insult the host's cooking.  I'd suggest it would be more
> polite to make that reply private.
> As for being mystified by haskell itself:  I share some of that
> befuddlement, but take it as an interesting tinkering opportunity.
> Playing in a domain which I know well, with an unfamiliar toolset,
> is pleasant.  So I don't anticipate being an outsider long. :)

I like your attitude, Allen.  We'll make a Haskeller of you yet ;)

Back on topic, I don't really understand why xmonad continually gets so much
heat for being implemented and configured in Haskell.  I understand that Haskell
is a language that's very different from the vast majority of languages out
there that differ mostly in syntax but not in what's easy to express in them and
what's not.  And, indeed, when I first started to learn Haskell, the learning
curve was steep to say the least.  Now, however, I appreciate the advantages
that result from implementing xmonad in Haskell and using the same language for
its configuration: I just slapped together a fairly complex new extension module
for xmonad, and it took me two evenings.  Trying to do the same in a language
like C/C++, which doesn't provide the same high level of abstraction, would have
been painful if not impossible in the same time frame, at least for me.  Then I
would have had to support parsing of new configuration constructs, if the
configuration language is some custom-made home brew, or at least export the
right interface, if lua or something similar was used to configure the WM.

Arguably, much of this may still simply be a matter of personal preference and
not an objective reason why Haskell may have been a good language to choose for
implementing xmonad.  However, that's beside the point.  I also like openbox
very much, which is configured using an XML configuration file, and I detest
XML.  Do I go screaming to the openbox developers and complain about having to
use XML to configure the window manager?  No.  It was the developers' choice and
it is pointless to argue about it because they won't go back and revert their
choice unless they see a really good reason for it.  If I like the window
manager enough, I get over whatever I don't like about how to configure it and
learn what I need to use it effectively, even if it means to learn Haskell (you
actually won't have to learn much Haskell to configure xmonad).  If the
configuration syntax bothers me enough to detract me from the window manager, I
move on and find one that suits me better.


More information about the xmonad mailing list