A software framework is an abstraction used in software development to provide generic functionality for application-specific needs. You can find definition of software framework term here. Using it for development of your application has many advantages over creation of it from scratch.
Advantages of using software frameworks
- You are using code that has been pre-built and pre-tested. This increases the reliability of your application and reduces the programming and testing effort.
- Framework can be upgraded by its creators, which could potentially provide new functionality, improved performance or increased stability without additional programming from your side as framework user.
- Framework can help establish better programming practices and appropriate use of design patterns.
- Well written framework provides you with the means to easily extend or override its behavior.
- You can extend, but not modify the code of framework, hence you can't introduce new bugs to it and you don't need to spend time for testing framework.
- Framework has predefined API, so if two developers know same framework, they can communicate more easily using same terms. You can introduce new developer to your team and if he knows framework you use in your application, he will integrate with your team and development process faster. If you decide to write everything from scratch, it will take more time for new team member to get into the intricacies of your custom code.
- Usage of framework simplifies and speeds up development process significantly.
- There are so many advantages of software frameworks, that you probably shouldn't start development of application without it.