I prefer going to the old captcha rather than spend 2 minutes clicking on images
Honeypot hidden fields are still fascinatingly efficient. Plain old captcha, even self hosted, is not bad. Written text questions that need actual answers (2+3 = write in a word). Combine some of them, you're good to go.
Honeypot is bad because it does not prevent malicious users that can write bots. Same goes for 2 + 3.
Plain old captcha is pretty much the only choice AFAIK.
It really depends on what you are protecting. In many cases, no one is going to build a custom script to defeat your custom captcha method of they just want to spam your comments section. The problem with widely used systems is that it is more efficient to write a bot to circumvent them and then look for others who use the same captcha system.
I hidden input tag (through .css file) with an id="url" worked for me!