A little bit -- meaning that I've read a fair bit about it, but the only "programming" I've done on it has been toy scripts in Python and bash. It's your standard Linux-type platform, the GUI being something called "Maemo" which is essentially GTK with various additions (a desktop manager, really) to help applications deal with the limited screen space and present a unified look. You can get into the nitty-gritty here:
It is possible to develop on the N800 itself, but the standard approach is to use a laptop or desktop PC running Linux (Ubuntu is favored). Since you're doing cross development, running desktop Linux as a virtual machine (if your preferred OS is the OS X or Windows) is entirely viable.
---Joel