Debugging seems acceptable on emacs with cider. Sayid seems interesting as well.
My general experience of cider is that for a certain set of tasks it is much better than slime. But, the problem is, most of my day-to-day coding tasks are hampered by the language: e.g. if I have a web server running and I want to change a request handler, you can’t just recompile the handler, you also have to restart the server.
If you call the function by name yourself, like (foo arg), and you recompile foo, any code that called foo will see the new version.