bspwm is a tiling window manager that represents windows as the leaves of a full binary tree.
Ranked in these QuestionsQuestion Ranking
Pro Very lightweight
It has a low footprint.
Pro Very flexible
The keyboard shortcut are handled by another module so it's easy to use other inputs. The configuration is also simple.
Pro Based on binary space partitioning
The windows tiling is handled as the leaves of a full binary tree. This makes it easy to partition as you like.
Pro Open source
It's open source
Pro Drag&drop / Mouse support for resize/move
You can resize, switch panes, and resize tiles via the mouse.
Pro Simple, adheres to the UNIX philosophy
Configuration takes much less work than in similar window managers. Hotkey binding is handled by a separate utility, sxhkd.
Pro Simple interface
All actions of the window manager (like opening or resizing a window, changing the workspace, etc.) are handled by a program called bspc, which communicates with bspwm over a socket connection. The config file is just a shell executable making calls to that program. This makes it very easy to write your own scripts to handle bspwm's behavior.
Pro Adherent to the Linux philosophy: Do one thing and do it right
Pro Live configuration updates
No need to restart for updating configurations.
Pro Easily scriptable / modular
All window management is done via the bspc command allowing for easy scripting and extensibility. This also means your sxhkd keybinds can be ported elsewhere without being tied to the wm.
Pro Comes without a compositor
You can to choose which compositor you want! A popular one is compton.
Out of the box it "Lacks transparency support" but if you choose to add compton then you can have transparency, blur etc.
Pro Native gaps
Pro Has basic ewmh implementation
With basic ewmh I can easily config to make a fullscreen program show in a window.
Con Poorly documented
Compared to something like i3 for example, a user following through i3's documentation is basically guaranteed to get a working desktop suited to their needs. Setting up bspwm is much more of a headache due to developers assuming things are clearer than they are.
Con Lack of layouts
It offers less layouts then most of the tiled windows managers. (Only binary and monocle)
Con Lacks transparency support
Like most window managers there is no built in compositing, which means no transparencies.