Henri Sivonen has written a fantastically well-considered post called Vendor Prefixes Are Hurting The Web which I urge you to read in full, as I’m about to discuss it. I think some of his points are absolutely right, but I disagree on the final conclusion. The points that I think he nails are:
- Demos that work in one browser/engine only and aren’t updated even when other browsers implement the new features, are harmful.
- Using prefixed features as a way of actively excluding other browsers is lazy and anti-competitive.
- Including an unprefixed property in anticipation of eventual standardisation works against the principle of using prefixes
- When browsers have working, largely compatible, implementations of properties (like transform) they should remove the prefix even if the spec hasn’t reached the stage required by the W3C.
However, I still think using prefixed properties is the right approach. If we do as Henri suggests and leave experimental features in experimental builds (an eminently sensible suggestion, I might add), the pace of progress will be much slower. I believe that having these features out there and getting people using them encourages competition (and collaboration) between browser makers, and the benefits of that competition are given to us, the developers, and passed on to the audiences of the sites we build.
That doesn’t mean that the current situation is ideal; far from it. But improving things will involve more effort from us, the developers and writers, the community in general. Chief responsibilities will be:
- Commit to supporting old demos that we have made.
- Always make sure we plan our designs and builds in a way that they are not reliant on prefixed features, but degrade gracefully.
- Don’t use an unprefixed property before standardisation has happened unless we can have reasonable confidence that it is safe.
- Make sure we stress that the things we use and teach are experimental and subject to change.
As an author and writer I’m guilty of some of the faults that are pointed out in his article, and I promise to do better in the future.
In closing, I want to congratulate Henri on writing this thought-provoking post. I was ready to dismiss it as one of the lazy articles criticising prefixes that occur regularly, but the argument was very well thought and well made, and made me change my mind a few times while I was writing this post.