In recent years the two terms – Library & Framework are being used as synonyms. But this is not right.
A simple way to differentiate the two is:
- A library contains many pieces of functionality that you may pick and choose from.
If you choose one piece of technology, you are not locked into the rest of that technology; you are free to use other technologies in different parts of the project. This means freedom, however you will have more work cut out for you.
- A framework however sets out how you will be working. Your workflow is decided at the outset. For better or worse, that is hard to change.
Advantage: Rapid development/prototyping.
Disadvantage: If significant changes are needed to be made in future, they may be very time consuming if not impossible to implement.
It depends on the project that is at hand what choices you make.