I stumbled upon Porcupine again via Vitor's entry, and I'm impressed at how it's progressed lately.
The demo (demo/demo) is amazing (even if Safari isn't supported yet), and I'll probably spend some time trying to do something with it as soon as I figure out the dependencies necessary to get it running cleanly on Mac OS X.
My intention is to glue it to Snakelets somehow, and as an Ajax UI toolkit, it seems pretty complete. It still lacks such amenities as radio buttons (and, apparently, uniform drag and drop support), but it's still at version 0.0.4 and lacking oodles of documentation, so I'm not about to dive in head first.
One thing that struck me while I was playing around with the demo, however, is that there is something fundamentally wrong about duplicating the desktop experience inside a browser. Porcupine is an amazing technical achievement (and the way it uses XUL makes it very attractive to me indeed), but the question I keep asking myself is... why?
After all, regular users have enough trouble dealing with one desktop environment. Creating another, especially a-desktop-inside-a-browser (and we all know how fickle and unstable a beast the browser usually is) seems to me a bit too much (usability-wise), and makes me wonder whether or not this Web 2.0 thing won't end up sticking a few quills in the fingers of unsuspecting users...