Xmonad is solid and feature-rich. The program is not only stable, but so is the configuration. The primary (only) disadvantage is that it requires ghc, the Haskell compiler and various Haskell libraries which make it a hefty platform. If you already use other Haskell programs, this burden is negligible. Also, the documentation is both thorough and immaculate.

Awesome is feature-rich, though in my experience not as stable. In terms of configuration, awesome feels like its all over the place. The developer has re-implemented the configuration system to use the Lua scripting language. In addition to this, it's companion program, Amazing uses Ruby for configuration. Considering these two factors, awesome also requires a hefty set of dependencies for being a simple window manager.

Dwm, which I realize you didn't mention, was the inspiration for Xmonad and the original window manager from which Awesome was forked. It is written in pure C with the specific design goal of being as lean and clean as possible. dwm is the lightest of the three in terms of memory footprint, and arguably the fastest. It is also my current window manager for all of the above reasons.

For what it's worth, I think Openbox is a beautiful wm and the best of the *boxes. It is so versatile (and standards-compliant) and it can be made to behave very similar to tilers with respect to keyboard control.

Last edited by thayer (2008-11-05 05:38:13)