What is Javascript?๐
Javascript is a versatile programming language unlike any other languages u have been familiar with. Javascript being used in frontend, backend development its also referred as a scripting language
Frontend Frameworks: React, Next, Angular, Vue...
Backend Frameworks: Node, Express, Next...
What are Libraries?
Libraries, in the context of programming, are collections of pre-written code modules or functions that developers can use to perform specific tasks or add specific functionalities to their applications without having to write the code from scratch. These libraries are typically created and maintained by other developers or organizations and are made available for others to use under various licenses.
Most Commonly Used javascript Libraries-
Underscore.js: A utility library that provides a wide range of functions for working with arrays, objects, functions, and more.
Lodash: A modern alternative to Underscore.js, offering similar utility functions but with additional features and improved performance.
axios: A popular HTTP client library for making asynchronous HTTP requests from the browser or Node.js.
Moment.js: A powerful library for parsing, validating, manipulating, and formatting dates and times in JavaScript.
RxJS: A reactive programming library that enables developers to work with asynchronous data streams.
D3.js: A data visualization library that allows developers to create interactive and dynamic charts, graphs, and maps using HTML, SVG, and CSS.
Chart.js: A lightweight and easy-to-use library for creating simple yet beautiful charts and graphs using HTML5 Canvas.
Fuse.js: A lightweight fuzzy-search library for client-side search functionality.
Immer: A library for working with immutable data structures in JavaScript.
AJV: A fast and feature-rich JSON Schema validator for JavaScript.
What are Frameworks?
Frameworks, in the context of software development, are pre-built collections of code and libraries that provide a structured approach to building applications. They typically offer a set of tools, libraries, and conventions to streamline the development process by providing solutions to common problems and tasks. Frameworks often impose a specific architecture or design pattern, guiding developers in organizing their code and building scalable, maintainable, and robust applications.
Most commonly Used Frameworks:-
React.js: A declarative JavaScript library for building user interfaces, developed by Facebook. It allows developers to create reusable UI components and efficiently manage application state using a virtual DOM.
Angular: A comprehensive frontend framework developed and maintained by Google. Angular provides a robust structure for building dynamic web applications with features like two-way data binding, dependency injection, and modular development.
Vue.js: A progressive JavaScript framework for building interactive web interfaces. Vue.js is known for its simplicity, flexibility, and efficient rendering performance, making it a popular choice among developers.
Express.js: A minimalist web application framework for Node.js. Express.js simplifies the process of building server-side applications and APIs, providing features for routing, middleware, and HTTP request handling.
Django: A high-level Python web framework that encourages rapid development and clean, pragmatic design. Django follows the "batteries-included" philosophy, providing developers with built-in features for authentication, database ORM, and URL routing.
Ruby on Rails: A popular web application framework written in Ruby. Ruby on Rails emphasizes convention over configuration and follows the principles of DRY (Don't Repeat Yourself) and CoC (Convention over Configuration), enabling developers to build web applications quickly and efficiently.
Spring Boot: An opinionated framework for building production-grade, stand-alone Spring applications. Spring Boot simplifies the setup and configuration of Spring applications, providing defaults for commonly used libraries and enabling rapid development of enterprise applications.
Flutter: A UI toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase. Developed by Google, Flutter provides a rich set of pre-built UI components and offers hot reload for fast iteration during development.
React Native: A framework for building native mobile applications using JavaScript and React. React Native enables developers to write cross-platform code that compiles into native components, allowing for efficient development of mobile apps for iOS and Android.
Ionic: An open-source framework for building cross-platform mobile applications using web technologies like HTML, CSS, and JavaScript. Ionic provides a library of UI components and native plugins for accessing device features, making it easy to develop and deploy mobile apps across multiple platforms.
Difference Between Libraries and Frameworks?
Control Flow:
Library: You call a library; it's a set of tools you can use whenever you want in your code.
Framework: The framework calls your code; it provides a structure, and you fill in the blanks.
Inversion of Control:
Library: You control the flow of your code.
Framework: The framework controls the flow of your code.
Flexibility:
Library: You can use libraries individually and flexibly in your code.
Framework: You need to use the framework as a whole, following its structure and conventions.
Dependency:
Library: You can use libraries without changing how you structure your code.
Framework: You structure your code around the framework's requirements.
Relationship:
Library: "Don't call us, we'll call you." You decide when to use the library's functionality.
Framework: "We'll call you." The framework dictates when and how your code gets executed.