Most of good frameworks emphasize their quality with statements like "our framework follows good programming practices because it's coded to the interfaces". One example of such framework is
Spring. I personally score
Spring with very high grade. And I also agree that the good framework must be coded to the interfaces, but...
When it comes down to the application development, designing your code around interfaces could be a major drag on the project delivery and overall quality of the system built. Frameworks don't change often -- that's why they called frameworks. On the other hand the average business application usually has to go through countless number of iterations before they get delivered. Tying yourself in knots with the interfaces makes it very hard to refactor already written code.