Based on what information, can we identify something as a software development framework? For example the Wikipedia article of ‘software framework’ claims it should include support programs, compilers, code libraries, etc. But there are some companies I know of which call a code library ‘framework’!
What should a certain development environment contain to be considered as a ‘framework’?
3
The thing that distinguishes a framework from a library is inversion of control: you call a library, but you don’t call a framework – a framework calls you.
Or to put it another way: when you write an application using a library, you write the application and leave “holes” in it for the boring details which you then “fill” using a library. (Such a boring detail might be “how to sort a list”; you won’t write code for that, you’ll just call the library’s sort
routine.)
When you write an application using a framework, the framework already provides the application for you and just leaves holes in it for the interesting details which you then have to fill out.
1