Most of the arguments in the article could just as easily apply to a fixed salary (jumping ship for better pay, fighting over who gets the big deals etc). And I would argue that the theory y vs theory x argument, that good employees are by nature more intrinsically motivated than just in it for the money, probably holds true a lot more for programmers than for salespeople. By definition, sales is about getting customers to pay money, so for a salesperson it's probably a good thing to be motivated by money.
The real question about commission-based compensation is: Is what I measure, and pay people for (this quarter's revenues) really what I want to achieve (maximum long-term profitablity)?
If you pay by commission, you will probably get higher revenues right now, but also more of the problems mentioned (mostly overselling to customers that arent really a good fit for the product).
I'd say it depends on the situation the company is in. If you're an established, profitable software company like FogCreek that wants to build long-term relationships with happy customers, a fixed salary is probably better. But if you're a startup with 2 months of runway left, desperately needing some revenue right now, you're probably better off paying commissions to your salespeople.