The objective of this discussion is to expose you to some of the popular frameworks that are built on top of JavaScript or React. The goal is not for you to know how to use these, but simply understand what their intended usage is in case you want to use it at some point in time.
For each of these, I want you to answer the following questions for the class:
- Why does this exist? Why did people spend hundreds of hours of their time to build this?
- For what types of projects would you use this for?
- Gatsby
- Storybook
- Svelte
- i18n.js
- MathJax / KaTeX
- D3.js
- Formik
- react-hotkeys
- Frontity
- React Query
- Redux
our humble group : reem bino , farah arar , ahmad juma , omar masoud ‧₊˚✩彡
Q.1 It exists to help developers build fast, optimized, and highly performant websites and web applications. It leverages the power of modern web technologies like React, GraphQL, and Webpack to enable content-driven web development.
_People spent hundreds of hours building Gatsby because it is a powerful and efficient framework for building fast and optimized websites. Gatsby uses modern technologies such as React and GraphQL to provide developers with a smooth development experience and deliver high-performance websites. It offers features like pre-rendering, code splitting, and progressive enhancement, which significantly improve website speed and user experience. Moreover, Gatsby has a vibrant community and a rich ecosystem of plugins and themes that contribute to its popularity and the time invested in its development.
Q.2storybook The tool enables developers to showcase the interaction of the components in an isolated development environment, making it easier to test and debug the components and collaborate with fellow developers.
_It's widely used in web development to maintain a consistent and well-documented UI.
Q.3 svelete used to build static web apps that are fast, lean, and are fun for developers to use. You can use Svelte to build single, reusable components for projects of any kind, including larger applications written with Angular, React, Vue, or any other frameworks.
_ People spent hundreds of hours building Svelte because they saw the need for a more efficient and lightweight framework that could help developers build fast and performant web applications.
Q.4 i18n.js is a library for internationalization (i18n) in JavaScript applications. It exists to simplify the process of handling multiple languages and translations in web applications.For what types of projects would you use this for? i18n.js is useful in projects that need to support multiple languages and regions. It's commonly used in websites and applications that have a global audience.
_People spent hundreds of hours building i18n.js because it provides the necessary functionality and tools to easily implement internationalization in web applications. This library helps developers streamline the process of translating and displaying content in different languages, managing user locale preferences, and handling other internationalization-related tasks. The effort invested in building i18n.js ultimately saves time and improves efficiency for developers working on internationalized projects.
Q.5 The existence of MathJax and KaTeX is to enable the rendering and display of mathematical equations and symbols on websites. These tools are used because standard HTML and CSS alone do not have built-in support for mathematical notation. MathJax and KaTeX provide a way to easily incorporate mathematical expressions into web pages by utilizing JavaScript libraries.
_People spent hundreds of hours building MathJax and KaTeX because there was a need for a reliable and efficient way to display mathematical notation on the web. Mathematical equations are an integral part of various fields such as mathematics, physics, engineering, and computer science. However, traditional HTML and CSS did not provide sufficient support for rendering complex mathematical symbols and expressions.
Q.6 D3.js (Data-Driven Documents) exists as a JavaScript library to help with data visualization on the web. It allows developers to create interactive and dynamic visualizations using HTML, CSS, and SVG. D3.js provides a way to bind data to elements in the DOM (Document Object Model) and then apply visual transformations based on that data. It is popular among web developers and data scientists for its flexibility and ability to create custom visualizations
-People spent hundreds of hours building D3.js because it provides a flexible and customizable way to represent data visually.
Q.7 Formik exists to simplify form management in React applications. It provides an easy way to handle form state, validation, and submission, allowing developers to focus on the core functionality of their forms without having to write boilerplate code.
-Formik is a popular library in the JavaScript ecosystem used for building forms in React applications. While I do not have specific information on why the creators of Formik spent a lot of time building it, I can provide some general reasons why people invest time and effort into building libraries like Formik.
Simplicity and Convenience: Building and managing forms in web applications can be complex and time-consuming. Libraries like Formik aim to simplify this process by providing a set of tools and utilities that make form handling more convenient and intuitive.
Efficiency and Reusability: Building a form from scratch for each project can be repetitive and inefficient. With Formik, developers can leverage pre-built components and functions to create forms quickly and easily. This promotes code reusability, saving time and effort in the long run.
Community and Collaboration: Many open-source projects, including Formik, are developed by a community of contributors. These contributors often share a common goal of addressing common pain points and improving the developer experience. Building and maintaining libraries like Formik allows developers to collaborate and contribute to a shared ecosystem, benefiting both themselves and others in the community.
In summary, people spend time building libraries like Formik to simplify form handling, increase efficiency, promote code reusability, and contribute to the developer community.