Better alternatives are OpenIDand one-time keys. Openid allows you to use one login across sites, which solves the problem of having too many passwords to remember, and potentially allows new login technology to be implemented as it becomes availible.
One-time keys are nice, because even if you get tricked by a fake login form, or a keylogger, or something, the attacker won't be able to use the key you gave them. Examples of this technology are yubikey and google authenticator.
I know that password managers elminate some of the problems with passwords, but it would be better if we had a similar solution for one-time keys.