The problem with the efficient market debate is that a timeframe is never specified. Efficient over what timeframe? Without a specific delta-t, "efficiency" is just an abstract concept with no real definition.
Over the micro short-term, markets are clearly inefficient, because arbitrage is possible. However, to do arbitrage, you've got to be exploiting opportunities that often exist only for milliseconds. By the time we get to a 5-second time frame, markets are pretty damn efficient, e.g. it's very hard to "beat the market".
Over the long-term (5+ years) I tend to think markets are also "inefficient", to the extent that I believe fundamental analysis works for those who excel at it. Since short-term traders contribute more heavily to efficient markets than long-term value investors, it's plausible that long-run investors can make expectancy in excess of the market average.
In the time horizons that most traders care about, though-- 5 seconds to 5 years-- markets are pretty damn efficient. Efficient markets do not preclude bubbles and crashes, though.