What is the difference between the language and the framework? Please explain with some stuffs?
I think a more proper question is what’s the difference between a Library vs Framework.
A Library will be a collection of functions, methods, utilities that your own program/app can then use to do a specific thing. So your own program will just treat these different functions/methods as sort of a “black box”, and you don’t have to be concerned about the internal implementation of these functions/methods/utilities. You just use them, and voila – stuff happens, saving you development time, or allowing you to do things that may be hard to do on your own.
An example will be the jQuery library, or the jQuery-mobile library. Yes… you can develop your own native Js functions, but the library will save you loads of time, plus they’ve been tested for cross-browser compatibility.
A Framework on the other hand, is like a foundational structure to support your software development. It’s like the skeleton/template for your program. As an analogy, when building a house, there is the basic framework/support structure of the house — then you just add the custom things you want for your house, that can be attached to the framework— electrical, plumbing, drywall, bookshelves, sinks, etc. The Framework will have a pre-defined way of how you should do things, and it will be to your advantage to go with it, rather than fight with it. The Framework will also come with it’s own set of methods, functions, classes, etc that you can use in your software development. But usually, there is some default behavior that the Framework imposes and its up to you to follow it.
An example will be the .NET Framework MVC. In a typical website, your project directory structure is also your website structure. You call a URL and that corresponds to a specific html page in your project structure. Calling http://yourdomain.com/shop/welcome.html will retrieve the welcome.html file residing in the /shop directory. But in a .NET Framework MVC, calling a URL like http://yourdomain.com/shop/welcome will instead be calling a Controller class called “Shop” residing in the /Controller subdirectory, and “welcome” will be a named method in the “Shop” controller class. Then the contents of a view file called “Welcome” (residing in a /View directory) will then be sent to the browser. As you can see, none of the directory structure in the URL corresponds to the actual directory structure of the project. All these behaviors happen by default, and it’s because that’s how the .NET Framework MVC works. A Framework is also bigger than a library. The .NET Core 2.0 framework has 32,000 API calls that you can use!