Search code examples
ruby-on-railsdjangoframeworksweb-frameworks

What is a Software Framework and what are the advantages of software frameworks?


When I was googling, I just saw that there are a number of software frameworks present. Like this,

ASP.NET - MonoRail
Java - Google Web Toolkit
JavaScript - Backbone.js
php - CakePHP
Python - Django
Ruby - Ruby on Rails

So my quection is this.

Why we use frameworks and why we spent time to learning frameworks instead of learning more advanced techniques of the programming language?

Are there any disadvantage of using a framework? (specially reduction of speed when using server-side or client-side frameworks)


Solution

  • So frameworks are really just collections of functions and libraries pieced together to make it easier to perform a particular tasks.

    In the case of your question, you're looking primarily at web frameworks. Which make it easier to write web servers in these languages. Python Django is a great framework because it handles all of the web stuff for you. (http requests and traffic routing) and allows you to simply specify what code will run when your app takes certain requests.

    So in short, frameworks try make it easier to do certain things. Of course different people think different ways to do things are easier, so that's why we have so many different kinds of frameworks.

    Feel free to ask any questions. Hope this helps!