I wrote this because you are all idiots. Specifically, if you were involved in the OpenGL specification between 2003 and today, you are an idiot. Allow me to explain. Let's say you have a well-specified system that is in wide use (a language, a library API, whatever) and because of changes in some substrate (operating systems, hardware, whatever) you find that you need to add a new way of doing things to it. The way you do this is, you add new features to the specification and you clearly document the version in which those features become supported. If there are old features that you would like to discourage the use of, then you mark them as obsolete -- but you do not remove them because thou shalt not break working code. If you don't agree with that, then please, get out of the software industry right now. Find another line of work. Please. Your users have code that works. Maybe the new APIs would serve them better. Maybe things would be so much more efficient if they updated their code to use the new API. Or maybe it doesn't matter to them and they just want working code to continue to be working code. At least until such a time as they need the new features, or new efficiency. Remember the First Rule of Optimization: DON'T.