A good framework would be one in which you start your solution and find that at many locations, your pseudocode gets replaced by an equivalent call into the framework. There are, however, some other requirements that are not obvious from this specification of good framework that make it a great framework. Discoverability, testability, debuggability, deployability, documentation, readability and, of course, performance.
But, yeah, you start out with one and you lose interest in the project because of the difficulty of getting started.
https://dl.acm.org/doi/10.1145/362575.362577 (HTML, links to PDF)
A good framework would be one in which you start your solution and find that at many locations, your pseudocode gets replaced by an equivalent call into the framework. There are, however, some other requirements that are not obvious from this specification of good framework that make it a great framework. Discoverability, testability, debuggability, deployability, documentation, readability and, of course, performance.
But, yeah, you start out with one and you lose interest in the project because of the difficulty of getting started.