Are Vendor Prefixes Harmful?
Standardization is good, but rigid standardization is bad: no standards body knows every use case, and browsermakers need to respond flexibly to user needs.
The result is the chicken-and-egg of adoption. But there are solutions.
One is the vendor prefixing system, first developed by the CSS working group. The idea is: while a standard is still developing, let vendors do their best to interpret the nascent standards as they presently stand -- but mark their own particular interpretation clearly with a prefix indicating the vendor.
As you may have guessed, the goal of vendor prefixes is a little more complex -- since the whole reason to create standards in the first place is to prevent browsers from talking totally different languages, or meaning completely different things by the same words.
But Henri Sivonen thinks vendor prefixes are a terrible idea. Many of his objections aren't new -- Peter-Paul Koch raised a number of similar objections over a year ago (see redux too) -- but Henri's post is more up-to-date, pre-emptively counters a number of possible objections, then responds to a number of counter-counter objections posted in the comments.
Here's Henri's own tl;dr summary:
TL;DR: I think vendor prefixes are hurting the Web. They are hurting Web authors. They are hurting users of browsers. They are hurting competition in the Web browser space. I think we (people developing browsers and Web standards) should stop hurting the Web. It would also make sense for browsers to implement other browsers’ prefixed features to the extent existing content uses prefixed features.
Henri's full explanation is definitely worth reading.
David Glazman, co-chairman of the CSS working group, responded quickly -- and while David isn't happy with the tone of the original post, he does agree with many of Henri's specific points (though often for slightly different reasons).
The vendor prefixes dispute does touch on some deep issues regarding web standardization, so hearing variant takes is quite intriguing -- even if you don't worry too much about vendor prefixes in your own coding.