I don't like the hosts file approach because I still might want to visit the sites sometimes. For example I block facebook.com on all other site because I don't want to see Facebook embeds, but I want to visit Facebook directly once in a while.
Not really, it's a fairly limited approach. You can only block entire hosts. Adblock Plus uses a combination of URL-based resource blocking and CSS-based element hiding.
I use the hosts file approach. It's a broadsword and it works very well but yes, it's long, one has to update it manually (or script an update) and it will break certain aspects of a website (such as video clips on ESPN.com, they'll fail to play because the ads won't load).
Large hosts file can slow down your computer. At least Windows had issues with that AFAIR.
How many entries is "large"? (just curious, to relate to something I wrote based on host files).