Libraries that you can call from your code are conceptually much simpler than frameworks that call your code. I don't think this means that zero frameworks should exist, but frameworks are generally not composable (hard to use many in a single application) while libraries compose trivially.