... what I think I'm seeing parallels what has happened to the IBM mainframes - in a desire to provide better performance super-web servers, yet still be able to run legacy software from the 1960s (s/360 days), they have produced an instruction set that is 5x the complexity of what has been there historically, and has actually raised the complexity to the point that few programmers will be able to grapple with it... sometimes one has to step away from the existing solutions/implementations and start afresh [understanding that the car-boundary interfaces can't be changed]. ... on one of our software products, some functions which were present in version 2, which became depreciated in version 3, in spite of the screams of their absolute necessity by some, simply eliminated them in version 4 [apologizing to those that "needed" them, suggested that they simply stay on ver 3... turns out that 80%+ upgraded to ver 4 anyway].... change can be difficult, but if managed properly can be made almost painless. ... this is all about the operating costs and trying to keep them as low a possible.