Maybe it’s an obvious answer, but
Why on earth would browsers decide to create their own vendor prefixes for border-radius and the like?
I mean: Why do I have to type:
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
Is it because each platform thought “We’re cool, we’ll come up with a better way to do rounded corners?” It seems totally and inexplicably redundant to type three lines for one.
It’s because the features were implemented by vendors before the specification reached its final release stage.
The vendor prefixes ensure that there are no clashes with changing functionality etc.
Source.