I don't know Haskell very well at all. Although I am a developer (mostly Python and Java). I find Haskell's syntax annoyingly confusing. However, I have a pretty extensive and very customized xmonad.hs file. I was able to create it by reading documentation, and asking the xmonad mailing list many many specific questions. And the investment has been well worth it. The community around xmonad is fantastic. It's really active, and very responsive and supportive.
I won't lie, it does take some time and effort, but I was able to get xmonad to work _exactly_ the way I want to.
Allan Wind [2011.09.07 1741 -0400]:
> On 2011-09-07 17:01:55, serialhex wrote:I second that. I know Haskell reasonably well by now (it's my #1
> > my Q is: how much haskell do i need to know to use it effectively? at the
> > moment i am pre-alpha grasshopper status in my haskell coding skills, (i
> > know haskell exists and is high on my list of languages to learn) though i
> > don't want to have to become a haskell guru in order to be able to use
> > xmonad. so really, what's the learning curve like to start using xmonad?
>
> It depends what you want to do, of course.
>
> I am happy with my 19 line configuration file constructed by
> reviewing the excellent documentation and I think a couple of web
> searches. No prior knowledge of Haskell and next to none now.
>
> Why not give a try and see how it goes?
language for any project where I don't have a good reason to use
something else) but I would consider most of my 267-line xmonad.hs to be
little more than specifying configuration options that happen to be
written in Haskell but whose meaning should be clear even to people
without any knowledge of Haskell.
You need to know more Haskell if you want to do stuff that's currently
not in core xmonad or in the quite extensive xmonadcontrib extension
library (that's why my xmonad.hs is so long). But then, since you say
Haskell is high on your list of languages to learn, once you reach the
point that you'd be interested in a feature that's currently not there,
trying to implement this feature may just be the right kind of toy
project to get your feet wet and dig a little deeper into the language.
One thing that I can see to be a bit of a challenge is to get the types
of things in your configuration file right. When I started using
xmonad, I was constantly bitten by trying to bind pure functions that
manipulate the window list of a workspace to a key, while a key can only
be bound to an action in the X monad. However, if you run into any
issues like that, there's always the mailing list ;) and it doesn't take
too long to get a hang of it.
I came to xmonad from awesome 3 years ago. I was quite hooked on
awesome back then but had enough when it segfaulted on me when working
to meet a conference deadline. So I was looking for something more
stable and with similar functionality, found xmonad, and it didn't crash
on me once in these 3 years. The Haskell compiler being so anal about
lots of things, including types checking out, is I think a big part of
why xmonad is so stable.
Cheers,
Norbert
_______________________________________________
xmonad mailing list
xmonad@haskell.org
http://www.haskell.org/mailman/listinfo/xmonad