XMonad and Haskell

Posted on January 25, 2009 by oubiwann


Blog post image

This blog post comes on the heels of the blog post about Window Maker, thanks to the recommendation that made in the comments. I took a couple nights last week to poke around in the tiling window manger ecosystem, and ended up settling on XMonad. I used is intensely all weekend, barely stepping away from the computer (this included lots of script hacking for dzen ).

I was stunned to discover that though the customization of XMonad involves hacking some Haskell, that this was the most literate experience I've had of window manager configuation in a long time. Whereupon I immediately began examine my interaction with XMonad more carefully. Why was I having so much fun? It wasn't because key bindings were refreshingly easy, nor that the system has a tiny footprint and is highly responsive. Nor was it the fun I've had scripting my own status bar applets with bash. It boils down to this:

I have complete and intimate control over my work environment. It's not more complicated than I need. Not is it less so. I have all the tools necessary to change and improve the most important tool I use on a daily basis: the window manager.

Don't get me wrong: I'm still loving Window Maker. However, as observant reader said, I'm already half-way there with the manner in which I make use of gvim. (In fact, a few months agao I'd even asked some geek friends if they knew of a GUI app that let you create arbitrary paned windows and then embedded applications in them – in essence, I was asking for a tiling window manager).

This brings me to a very surprising (and delightful) subplot. At the end of this weekend of exploration, I realized the best way to customize the UI the way I wanted was to start writing some Haskell extensions. Which lead be to a fantastic introduction (and I'll be buying the book). After an hour of not being able to set aside the tutorial, I realized that I was experiencing a level of joy and fun, one with a particularly sweet flavor, that I've not had since I decided to learn Python. I loved this language.

I've toyed with somewhere on the order of 30 languages (I originally wrote "20", but then I stopped to count). I've enjoyed several of those immensely (Smalltalk, Objective-C, Lisp dialects stand out in the crowd), but Python is the one that has always fit my brain the best and allowed me to get the most done. But Python has always felt lonely in my brain; it wanted a friend, but the closest it could get was Lisp. However, if I'm reading the signs right, then it now has a new best friend: Haskell.

1. BASIC
2. DOS batch
3. Logo
4. C
5. Pascal
6. VMS shell
7. UNIX shells
8. QuakeC
9. Matlab
10. Mathematica
11. PHP
12. VB/VBA/VBScript
13. SQL
14. x86 Assembly
15. Perl
16. Python
17. C++
18. Tcl
19. JavaScript
20. AppleScript
21. Java
22. R
23. Smalltalk
24. Objective-C
25. Oz
26. Lisp/Scheme
27. Ruby
28. Lua
29. Erlang
30. Haskell

Author oubiwann
Date January 25, 2009
Time 20:59:08
Category
Tags
Line Count 1
Word Count 546
Character Count 3220

Comments?
This blog doesn't use standard (embedded) comments; however, since the site is hosted on Github, if there is something you'd like to share, please do so by opening a "comment" ticket!