What Is a Framework?

Frameworks are like jet packs for development languages: They boost performance, extend capabilities, and offer libraries of coding shortcuts so developers aren’t hand-coding web applications from the ground up. Frameworks aren’t just bundled snippets of code; they offer features like models, APIs, and other elements to streamline the development of dynamic, rich web applications. And while some frameworks offer a more rigid approach to development, others allow for more fluidity in the process—developers can pick and choose based on project needs or their work styles.

Key takeaway: When you’re making a sandwich, it’s much easier to buy pre-made, sliced bread from the store than it is to bake it on your own from scratch. Frameworks are your site’s sliced bread—they speed up the process.

Core features of web application frameworks

Each programming language has at least one universal, reusable framework. Libraries within each framework offer reusable bundles of that language—code for a drop-down menu, for example. But they’re more than just the code—frameworks are fully layered workflow environments.

To get an idea of how comprehensive development is with a framework, they can include:

  • Libraries: shareable, reusable bits of low-level code in each language, e.g., Ruby on Rails’ “gems”
  • APIs, which facilitate access to the database back end
  • Scaffolding: a technique some MVC frameworks employ that strengthens how a database can be accessed. This means more powerful sites, with better leverage of the database.
  • AJAX: Some JavaScript frameworks are embedded into larger frameworks, incorporating the rapid technology of AJAX into a site’s functionality.
  • Caching, which cuts back on server workload
  • Security, via authentication and authorization frameworks
  • Compilers, or Just-in-Time compilers

Types of frameworks

Frameworks can be used to create most applications on the back end, including web services, web applications, and software.

You Might Also Read  How to Become a Freelancer

Software frameworks: A software framework is a reusable environment that’s part of a larger software platform. They’re specifically geared toward facilitating the development of software applications and include components, such as libraries of code, support programs, compilers, tool sets, and specific APIs that facilitate the flow of data.

Web application frameworks are software frameworks used to streamline web app and website development, web services, and web resources. A popular type of web app framework is the Model-View-Controller (MVC) architecture, named for the way it separates the code for each application component into modules.

Below are some of the most popular frameworks, broken down by the programming languages in which they’re written.

Python

  • Django framework: an all-in-one Python framework designed for speedy development in fast-paced environments that works well with relational databases.
  • Flask: a Python micro-framework with a minimalist approach—but robust in its own right. It’s ideal for stand-alone apps and quick prototyping.
  • Pyramid: Formerly “Pylons,” a framework that offers great flexibility with NoSQL integration. It’s great for the development of APIs, prototyping, and large web apps, like content management systems.
  • Tornado: an event-based, non-blocking Python web server and web app framework for high-traffic volume.
  • Bottle: a simple, light micro-framework

Ruby

  • Ruby on Rails: a Ruby framework packed with “gems,” Ruby’s code libraries, great for data-driven apps
  • Sinatra: a Ruby micro-framework

PHP Frameworks

  • CodeIgniter: the most popular MVC-style PHP framework tailored to business, travel, and shopping industries with a rich set of libraries
  • Zend framework: an MVC framework for shopping and business
  • CakePHP: second most popular PHP framework, tailored to business, shopping, and entertainment industries
  • FuelPHP
  • Laravel framework: With great integrated testing support, this framework helps you get clean apps out the door quickly.
  • Drupal, Joomla!: CMS frameworks written in PHP
You Might Also Read  How to Get Web Design Freelancer

PERL5

  • Catalyst: an open-source web app framework in Perl
  • Symfony
  • Interchange: open-source e-commerce web app server and platform in Perl
  • Maypole: Perl web app framework for MVC-oriented apps

JavaScript

  • AngularJS: a robust JavaScript framework
  • jQuery: a library of JavaScript on which other. JS frameworks are built. jQuery Mobile is its mobile app alternative.
  • EmberJS: a more “opinionated” framework than Angular
  • Node.JS: a back-end JavaScript development platform and runtime for building server software and applications.
  • Backbone.js: an MV-style framework that’s compatible with Ruby on Rails
  • MeteorJS: a combination of Angular and Node.js for mobile applications
  • ExpressJS: a back-end JavaScript framework that runs on the Node.js platform
  • Koa.js: a newer, middleware JavaScript framework that’s an evolution on ExpressJS
  • ReactJS: a user interface (UI) framework, and its mobile version, React Native

Java

  • Apache Click: component-oriented web app framework
  • Grails
  • Oracle ADF: a framework for enterprise applications
  • Java Web Services

Cold Fusion Markup Language

  • Wire box
  • Fusebox
  • Mach II

CSS

  • Pure.css
  • LESS & Sass: CSS pre-compilers

C

  • Saetta Web Server

C++

  • Boost
  • Platinum

C# + VB.NET

ASP.NET is a web application developed by Microsoft with numerous off-shoots:

  • DotNetNuke: a content management system (CMS) based on .NET tech
  • OpenRasta: framework that targets .NET platform
  • MonoRail: web app framework built on ASP.NET platform

Objective-C & Swift

  • Cocoa, Apple’s API, which consists of three Objective-C libraries & Cocoa Touch, Apple’s UI framework for mobile iOS applications

Mobile Frameworks

  • Bootstrap: Twitter’s mobile-first framework, with a combination of HTML, CSS, JavaScript
  • Sencha Touch
  • Cocoa + CocoaTouch
  • jQuery Mobile + Backbone.js
  • Kendo
  • AngularJS + Ionic
  • React Native