https://www.techtarget.com/whatis/definition/framework
In general, a framework is a real or conceptual structure intended to serve as a support or guide for the building of something that expands the structure into something useful. In computer systems, a framework is often a layered structure indicating what kind of programs can or should be built and how they would interrelate. Some computer system frameworks also include actual programs, specify programming interfaces, or offer programming tools for using the frameworks.
In computing and programming, a framework provides a structure on which new software programs and applications can be built. A framework may be for a set of functions in a system and how they interrelate; the layers of an operating system or an application subsystem; or how communication should be standardized at some level of a network.
The most reliable, popular frameworks include various tools for code development, testing and debugging. Many frameworks also provide templates that can be reused and modified per application requirements. These prebuilt, modifiable elements let programmers build new programs without having to start over from scratch. With the framework as a base, they can add higher-level functionality to build a high-quality software product faster, with fewer errors.
Selecting the right framework for the chosen programming language and software project is vital. Different programming languages provide different types of frameworks. Some frameworks provide specific features or functionalities for specific tasks and are unsuitable for other tasks.
Speed is among the biggest benefits of using a framework in software development. By providing prebuilt code, templates, widgets, APIs, web resources and other reusable elements, a framework eliminates the need to build code and applications from the ground up. Developers only need to modify the elements by writing additional code. This reduces the development effort, saves time and accelerates the software development lifecycle (SDLC).
Frameworks also help to improve code and application quality. Experts have already tested thoroughly the most well-known frameworks; they are proven to work well in numerous real-world scenarios. This enables others to confidently use those frameworks, knowing that doing so will help them develop cleaner, more secure, easily adaptable, highly comprehensible code. It also helps them avoid code duplication, make fewer errors and build quality applications.
The best frameworks simplify code testing and debugging. Built-in tools enable development teams to easily create test cases, review code, remove redundancies and quickly apply fixes.
Some frameworks offer strong security features, allowing developers to build code that's secure from the outset. They can also shift left in the SDLC, i.e., incorporate testing into development processes, which better accommodates secure-by-design principles, and lowers the costs of development, testing and bug fixing.
Software development frameworks are easy to extend for any new program being built in that framework's language. Developers can modify the framework's features and functionalities to build projects such as new websites, web applications, mobile applications and data science applications. Such extensibility is powerful for high-velocity, dynamic software development environments.
Frameworks are available for all major and popular programming languages and for developing different types of applications.
Language: JavaScript
Purpose: Websites and web applications (including progressive web applications or PWAs)
Angular JS is a popular JavaScript framework for developing web applications and websites. First released in 2012 by a Google employee and now officially supported by Google, Angular JS uses TypeScript code and responds to user inputs quickly without requiring the user to write extra lines of code.
The Angular JS framework includes many useful features that help developers build quality applications:
Language: Python
Purpose: Web applications
Django is a high-level, free, open source Python web framework that speeds web application development. Among its many useful elements are APIs, a dynamic admin interface, templates and an object-relational mapper to handle common development tasks easily. Django also includes numerous security guardrails to help developers avoid common security mistakes and build more secure applications.
Other useful Django features include the following:
Language: JavaScript
Purpose: Web applications, mobile applications, APIs
Express is a free, open source, back-end framework for Node.js. Based on JavaScript, the framework can be downloaded for free from the OpenJS Foundation's website. Express provides a solid tool set for building web applications, mobile applications and middleware. It provides HTTP utility methods to create APIs quickly.
Web and mobile app developers favor Express because of features like these:
Language: Dart, a thin layer of C/C++ code
Purpose: Mobile applications, web applications
Flutter is an open source, Dart-based framework for developing mobile and web applications. The framework makes it easy to build applications for any platform and screen. Moreover, developers can build mobile, web, desktop and embedded experiences from a single codebase. All Flutter applications are natively compiled to ARM/Intel machine code and JavaScript to ensure optimal performance on any device.
Google developed and maintains the Flutter framework, which is popular for many companies. Some of its key features include the following:
Development teams can consider many more frameworks to accelerate the SDLC, simplify code testing and build high-quality applications. Some of the most in-demand frameworks include the following:
A framework is generally more comprehensive than a protocol and more prescriptive than a structure. Frameworks also differ from libraries.
Most programming languages provide libraries, which consist of numerous components, each with a specific functionality and serving a particular purpose. Libraries provide pre-written code with functions, routines, scripts and object data, reducing the amount of code programmers must create from scratch.
Frameworks are much larger and broader than libraries. Most frameworks provide a rich set of tools, libraries and functionalities developers can use as the base to develop applications faster and with fewer errors. Frameworks provide more comprehensive, extendable functionalities based on proven best practices to develop cleaner code with fewer duplications while simplifying code testing and application debugging.
Besides software development, frameworks are also used in other areas. Examples of such frameworks that are currently used or offered by standards bodies or companies include the following:
Choosing between Django vs. Node.js comes down to understanding their data capabilities and the programming languages that make up each one's history.
22 Nov 2024