As we are aware, frameworks are software libraries, APIs, scaffoldings, AJAX, caching, security, compilers and much more. It's imperative that we refresh our memory with the following core qualities of any framework, as our selection of framework relies on these qualities:
- Simple, consistent, easy to adapt, and faster to implement
- Layered architecture, well-designed and -documented
- Built with genuine trade-offs
- Built with reusable libraries and reused libraries (borrowed from the past)
- Integrated and designed to evolve
Let's look at a few Java-based frameworks to understand their capabilities regarding their design, footprint, documentation, and adaptability, along with their advantages and disadvantages.