<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: xanderlambert</title>
    <description>The latest articles on DEV Community by xanderlambert (@xanderlambert).</description>
    <link>https://dev.to/xanderlambert</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1042027%2Fdb95c029-62d9-4719-ba6f-05acc46c4a32.png</url>
      <title>DEV Community: xanderlambert</title>
      <link>https://dev.to/xanderlambert</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xanderlambert"/>
    <language>en</language>
    <item>
      <title>Everything I Know About Analog Computing in the Modern Era.</title>
      <dc:creator>xanderlambert</dc:creator>
      <pubDate>Sun, 02 Jul 2023 18:28:08 +0000</pubDate>
      <link>https://dev.to/xanderlambert/everything-i-know-about-analog-computing-in-the-modern-era-3396</link>
      <guid>https://dev.to/xanderlambert/everything-i-know-about-analog-computing-in-the-modern-era-3396</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;I recently read something about analog computing... specifically, that most of the big tech companies (and some startups) are "secretly" working on analog chips. So I wanted to know why it was a big deal and what the potential was. In this blog post, we will explore the fascinating world of analog computing and its resurgence in the modern era. While analog computing may seem like a relic from the past, recent advancements have brought it back into the spotlight with the promise of enhanced efficiency and speed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ancient Analog Computing Examples:
&lt;/h2&gt;

&lt;p&gt;Let's start by taking a brief look at ancient analog computing examples. The Antikythera mechanism, a hand-powered device discovered off the Greek island of Antikythera, is described as the oldest known analog computer. Dating back to c. 150 BC, during the Hellenistic period, this device was capable of predicting astronomical positions and eclipses decades in advance. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BlWsWve_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aw5ttlarorl5u9eewq3r.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BlWsWve_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aw5ttlarorl5u9eewq3r.PNG" alt="Image description" width="629" height="821"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Similarly, the Incas used a method called Quipu, which involved using strings and knots to keep records, perform mathematical calculations, communicate, and store information. These early analog computing examples showcased the ingenuity of ancient civilizations in harnessing analog principles to solve complex problems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aoN_ouhQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ndzgnyzhq7hggbgdtg8e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aoN_ouhQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ndzgnyzhq7hggbgdtg8e.jpg" alt="Image description" width="400" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Analog Computing in the Modern Era:
&lt;/h2&gt;

&lt;p&gt;Fast forward to the modern era, where analog computing is making a comeback. In 2005 and 2015, a research group at Columbia University developed new analog chips, showcasing significant advantages in terms of solution time, energy efficiency, and accuracy. These advancements opened up possibilities for energy-efficient approximate computing.&lt;/p&gt;

&lt;p&gt;One of the recent breakthroughs in analog computing involves the use of resistive memory-based computing, referred to as RRAM-PIM (Resistive Random Access Memory Processing-In-Memory). Unlike traditional digital computing that relies on transistors and binary code, RRAM-PIM computers store information in resistors themselves, eliminating the need for data translation. This innovation greatly reduces the transfer and translation of data, making analog computers more efficient.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Promise of Programmable Resistors:
&lt;/h2&gt;

&lt;p&gt;Programmable resistors serve as the key building blocks in analog deep learning, allowing researchers to create networks of analog artificial "neurons" and "synapses" for complex AI tasks such as image recognition and natural language processing. By using arrays of programmable resistors in complex layers, these networks can be trained more efficiently and with reduced energy consumption compared to traditional digital neural networks.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Advantages of Analog Computing:
&lt;/h2&gt;

&lt;p&gt;Analog computing offers several advantages over its digital counterpart. First, computation is performed in memory, eliminating the need for constant data transfer between memory and processors. This not only enhances speed but also reduces the energy required for computing tasks. Furthermore, analog processors conduct operations in parallel, allowing for simultaneous computations. As the size of the matrix expands, an analog processor does not require additional time to complete new operations, making it highly efficient for scaling complex computations.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Future of Analog Computing:
&lt;/h2&gt;

&lt;p&gt;The potential and value of analog computing are becoming increasingly evident as services and computing become less centralized. With the demand for training deep learning systems and simulating complex systems growing, the efficiency and low energy requirements of analog computing become significant advantages. Imagine having specialized analog computers for specific computations and training tasks, or tapping into a powerful analog model through an API, harnessing its full potential while benefiting from low-energy, high-speed calculations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Speculation:
&lt;/h2&gt;

&lt;p&gt;Now, let's dive into another exciting speculation that highlights the specific use cases of analog computing in our future. Imagine a scenario where we aim to combat climate change by developing highly accurate weather prediction models. Analog computing could play a pivotal role in this endeavor. Traditional digital models often struggle to process the massive amount of data required to simulate complex weather patterns, leading to delays and reduced accuracy. However, with analog computers, we could achieve real-time simulations, allowing meteorologists to make more precise forecasts, predict severe weather events with greater accuracy, and consequently, save lives and mitigate the impact of natural disasters. The parallel processing capabilities and energy efficiency of analog computing could revolutionize our ability to understand and respond to the complex dynamics of our ever-changing climate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;Through exploring the captivating world of analog computing, we have witnessed its historical significance and its resurgence in the modern era. Recent advancements in analog chips and resistive memory-based computing have unlocked new possibilities, offering enhanced efficiency, speed, and parallel processing. From autonomous vehicles revolutionizing transportation to highly accurate weather prediction models combating climate change, analog computing has the potential to transform various industries and tackle pressing global challenges. As we move towards a decentralized computing landscape and continue to push the boundaries of technology, analog computing stands as a promising avenue for unlocking unprecedented capabilities and ushering in a future where efficiency, speed, and accuracy converge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus Representation of an Analog Function in JavaScript.
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Analog Computing Example: Multiplication using Resistive Memory

// Define the resistance values for the resistors
const resistor1 = 2; // Represents the value of 2 Ohms
const resistor2 = 3; // Represents the value of 3 Ohms

// Analog multiplication operation
function analogMultiplication(a, b) {
  // Connect the currents through the resistors
  const current_a = a;
  const current_b = b;

  // Calculate the voltage drop across each resistor
  const voltage_drop_a = current_a * resistor1;
  const voltage_drop_b = current_b * resistor2;

  // Measure the combined voltage drop
  const combined_voltage_drop = voltage_drop_a + voltage_drop_b;

  // Calculate the resulting current
  const resulting_current = combined_voltage_drop / resistor2;

  return resulting_current;
}

// Test the analog multiplication function
const input_a = 4; // Represents the value of 4 Amperes
const input_b = 2; // Represents the value of 2 Amperes

const result = analogMultiplication(input_a, input_b);
console.log(`The result of analog multiplication is: ${result} Amperes`)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  RESOURCES:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Analog_computer"&gt;https://en.wikipedia.org/wiki/Analog_computer&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.sciencedaily.com/releases/2021/12/211209082557.htm"&gt;https://www.sciencedaily.com/releases/2021/12/211209082557.htm&lt;/a&gt;&lt;br&gt;
&lt;a href="https://news.mit.edu/2022/analog-deep-learning-ai-computing-0728"&gt;https://news.mit.edu/2022/analog-deep-learning-ai-computing-0728&lt;/a&gt;&lt;/p&gt;

</description>
      <category>analog</category>
      <category>speed</category>
      <category>future</category>
      <category>news</category>
    </item>
    <item>
      <title>JavaScript Vanilla Extract with Sprinkles: The Sweetness of Simplicity</title>
      <dc:creator>xanderlambert</dc:creator>
      <pubDate>Sun, 18 Jun 2023 16:16:15 +0000</pubDate>
      <link>https://dev.to/xanderlambert/javascript-vanilla-extract-with-sprinkles-the-sweetness-of-simplicity-122n</link>
      <guid>https://dev.to/xanderlambert/javascript-vanilla-extract-with-sprinkles-the-sweetness-of-simplicity-122n</guid>
      <description>&lt;p&gt;Gather round, my dear readers, as I regale you with a tale of a delectable concoction known as "JavaScript Vanilla Extract with Sprinkles." In this digital age, where complexity often reigns supreme, this humble essence stands tall as a testament to the timeless power of simplicity.&lt;/p&gt;

&lt;p&gt;Now, you might ask, what exactly is this delightful elixir? Well, my friends, it is the purest form of JavaScript, unadulterated by frameworks, libraries, and other modern trappings. It is the essence of the language itself, distilled to its sweetest and most elegant core. Just like vanilla extract adds depth and flavor to culinary creations, JavaScript Vanilla Extract enriches web development with its straightforward nature.&lt;/p&gt;

&lt;p&gt;In a world filled with countless JavaScript frameworks and libraries, one might wonder why anyone would choose to embrace such simplicity. Ah, but therein lies the beauty! Like a freshly baked sugar cookie, JavaScript Vanilla Extract with Sprinkles offers a taste that is both familiar and comforting.&lt;/p&gt;

&lt;p&gt;First and foremost, this unadorned approach allows developers to truly understand the language. It enables them to grasp the fundamental concepts, learn the intricacies, and wield the full power of JavaScript. With a deep understanding of the language, developers can craft code that is more efficient, maintainable, and robust.&lt;/p&gt;

&lt;p&gt;Furthermore, JavaScript Vanilla Extract with Sprinkles liberates developers from the shackles of heavy dependencies. It grants them the freedom to build lightweight applications without the need for bulky frameworks. Imagine, if you will, a luscious ice cream sundae. While it may be tempting to add countless toppings and sauces, sometimes the pure pleasure lies in savoring the ice cream itself. Similarly, by embracing the simplicity of vanilla JavaScript, developers can create nimble and performant applications that shine without unnecessary complexities.&lt;/p&gt;

&lt;p&gt;To truly grasp the potential of JavaScript Vanilla Extract with Sprinkles, let me enthrall you with a few examples. Picture a small online store, meticulously handcrafted using vanilla JavaScript. The codebase is concise, yet elegant, allowing for effortless navigation and seamless transactions. The absence of excessive dependencies ensures quick loading times, providing users with a delightful shopping experience.&lt;/p&gt;

&lt;p&gt;Now, envision a dynamic blog platform, its foundation built upon the simplicity of JavaScript Vanilla Extract with Sprinkles. It boasts an intuitive user interface, smooth content rendering, and effortless interactivity. Without the overhead of complex frameworks, the blog runs like a well-oiled machine, pleasing both writers and readers alike.&lt;/p&gt;

&lt;p&gt;Additionally, Vanilla Extract provides a powerful toolset for optimizing web performance and development workflow. By using the file extension .ts, developers signal to the compiler that the code is safe to evaluate at file time. This allows for compilation before the code is sent to the browser, ensuring efficient and consistent execution. Vanilla Extract seamlessly integrates with webpack configuration through plugins, enabling compile-time evaluation and providing visibility into changes made with every webpack compilation. To incorporate Vanilla Extract into your project, simply install it via npm and add the plugin to your webpack config, setting rules to target only Vanilla Extract generated CSS files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--G2THboJT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z9nnf42j0ypx62una4mr.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G2THboJT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z9nnf42j0ypx62una4mr.PNG" alt="Image description" width="550" height="83"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tiGTOEcx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9vicdn50yf3al52ozxah.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tiGTOEcx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9vicdn50yf3al52ozxah.PNG" alt="Image description" width="800" height="625"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, let's not forget about Sprinkles. Sprinkles is an API that allows developers to quickly create sets of themed utility classes, returning a typed API for accessing them. Think of Sprinkles as a way to create a custom-typed version of Tailwind or another styled system. By utilizing Sprinkles, developers can easily and efficiently style their websites and enjoy the fruits of their labor with beautifully styled and responsive sites.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bg8r76EW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j74fej00zri3h4n2dtvt.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bg8r76EW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j74fej00zri3h4n2dtvt.PNG" alt="Image description" width="800" height="245"&gt;&lt;/a&gt;&lt;br&gt;
In conclusion, JavaScript Vanilla Extract with Sprinkles is a beloved choice for developers due to its speed, lightweight nature, consistency, and the ability to use familiar JavaScript syntax. It enables the creation and organization of styles quickly and easily, making it a valuable tool for long-term projects or companies with the need for their own larger set of unique styles. While it may have a slight learning curve compared to more out-of-the-box component styling libraries, it is still approachable for developers. As for importing premade styles, it may require some effort, but it excels when it comes to creating your own unique styles. With Sprinkles as an additional flavor, developers can leverage the API to swiftly generate themed utility classes, enhancing the customization and efficiency of their projects.&lt;/p&gt;

&lt;p&gt;So, my dear readers, as you journey through the ever-evolving landscape of web development, remember the essence of JavaScript Vanilla Extract with Sprinkles. Embrace its simplicity, savor its flavor, and let it guide you on a path of mastery. For in the realm of web development, sometimes the sweetest and most enduring creations are born from the purest ingredients.&lt;/p&gt;

&lt;p&gt;In the words of the renowned writer Mark Twain himself, "Simplicity is the keynote of all true elegance." And with JavaScript Vanilla Extract with Sprinkles, elegance reigns supreme, bringing forth a world of possibilities.&lt;/p&gt;

&lt;p&gt;Resources: &lt;a href="https://vanilla-extract.style/"&gt;https://vanilla-extract.style/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=SeVF1OFy5_I"&gt;https://www.youtube.com/watch?v=SeVF1OFy5_I&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/@vanilla-extract/webpack-plugin"&gt;https://www.npmjs.com/package/@vanilla-extract/webpack-plugin&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vanillaextract</category>
      <category>typescript</category>
      <category>frontend</category>
      <category>web</category>
    </item>
    <item>
      <title>ReactThreeFiber &amp; ThreeJS</title>
      <dc:creator>xanderlambert</dc:creator>
      <pubDate>Sun, 04 Jun 2023 23:37:09 +0000</pubDate>
      <link>https://dev.to/xanderlambert/reactthreefiber-threejs-2i47</link>
      <guid>https://dev.to/xanderlambert/reactthreefiber-threejs-2i47</guid>
      <description>&lt;h1&gt;
  
  
  What are ReactThreeFiber &amp;amp; ThreeJs?
&lt;/h1&gt;

&lt;p&gt;In the wild landscape of web development, two names loom large, their presence looking to envelope the digital realm. ReactThreeFiber and Three.js. These technologies have united to push the boundaries of what's possible in the world of 3D websites. ThreeJS is responsible for the 3d rendering within web browsers and React-three-fiber is an open source solution that allows developers to do that with React.&lt;/p&gt;

&lt;h1&gt;
  
  
  What makes ReactThreeFiber especially useful?
&lt;/h1&gt;

&lt;p&gt;ReactThreeFiber is a powerful framework that brings the capabilities of Three.js into the realm of React. It acts as a bridge, connecting the declarative and component-based nature of React with the low-level, performance-oriented world of Three.js. This dynamic duo enables developers to create stunning, interactive 3D experiences within the familiar ecosystem of React.&lt;/p&gt;

&lt;p&gt;But ReactThreeFiber's true genius lies in its audacious simplicity, cutting through the noise and confusion of traditional Three.js development. With an intuitive API, ReactThreeFiber frees the imagination to roam untethered, allowing developers to craft awe-inspiring 3D scenes while wielding the power of React's component model to tame chaos, manage states, and orchestrate complex animations.&lt;/p&gt;

&lt;h1&gt;
  
  
  How do the above technologies figure into the general trend of 3D sites?
&lt;/h1&gt;

&lt;p&gt;As the world becomes increasingly visual and immersive, the demand for 3D websites is on the rise. With ReactThreeFiber and Three.js, developers can seamlessly integrate 3D elements into their web applications, bringing a new level of interactivity and engagement to the user experience. From product showcases and virtual tours to interactive data visualizations and games, the possibilities are virtually limitless. The age of 3D websites has dawned.&lt;/p&gt;

&lt;h1&gt;
  
  
  What is the potential?
&lt;/h1&gt;

&lt;p&gt;What do we do with this? What's to come from it? ReactThreeFiber and Three.js transport you to a realm where imagination reigns supreme, where digital landscapes morph and pulsate with a life of their own. Architectural wonders materialize before your eyes, educational experiences take on an otherworldly allure, and artistic masterpieces dance in sublime harmony with your soul. The potential is an unfathomable chasm, ready to consume the uninitiated and propel the audacious to the outer reaches of reality.&lt;/p&gt;

&lt;h1&gt;
  
  
  Code Examples.
&lt;/h1&gt;

&lt;p&gt;Now, let us venture into the heart of the storm with some code examples to illustrate the magic that ReactThreeFiber and Three.js can conjure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';
import { Canvas } from 'react-three-fiber';
import * as THREE from 'three';

const Scene = () =&amp;gt; {
  return (
    &amp;lt;Canvas&amp;gt;
      &amp;lt;ambientLight /&amp;gt;
      &amp;lt;pointLight position={[10, 10, 10]} /&amp;gt;
      &amp;lt;mesh&amp;gt;
        &amp;lt;boxGeometry args={[1, 1, 1]} /&amp;gt;
        &amp;lt;meshStandardMaterial color="hotpink" /&amp;gt;
      &amp;lt;/mesh&amp;gt;
    &amp;lt;/Canvas&amp;gt;
  );
};

const App = () =&amp;gt; {
  return &amp;lt;Scene /&amp;gt;;
};

export default App;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this simple example, we create a React component that renders a 3D scene with a pink box. ReactThreeFiber's  component sets up the necessary WebGL context, while the declarative nature of JSX allows us to define the 3D scene using familiar HTML-like syntax. With just a few lines of code, we have a basic 3D rendering up and running. From here it is fairly simple (and fun) to edit the colors, rotation angles, dimensions of the cube. Event handlers can  also be added to the components, allowing them to react to user input. &lt;/p&gt;

&lt;p&gt;To conclude, ReactThreeFiber and Three.js represent a powerful combination that opens up a whole new dimension of possibilities for web developers. With their intuitive APIs, extensive feature sets, and vibrant communities, these technologies empower us to build immersive 3D experiences that captivate and engage users like never before. So buckle up, strap on your virtual reality goggles, and get ready to embark on an exhilarating journey into the surreal realm of ReactThreeFiber and Three.js. The road ahead is wild, but the rewards are truly extraordinary.&lt;/p&gt;

&lt;p&gt;Resources:&lt;br&gt;
&lt;a href="https://threejs.org/"&gt;https://threejs.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.pmnd.rs/react-three-fiber/getting-started/introduction"&gt;https://docs.pmnd.rs/react-three-fiber/getting-started/introduction&lt;/a&gt;&lt;br&gt;
smashingmagazine.com/2020/11/threejs-react-three-fiber/&lt;br&gt;
&lt;a href="https://codesandbox.io/s/runtime-frost-p3glo4"&gt;https://codesandbox.io/s/runtime-frost-p3glo4&lt;/a&gt;&lt;/p&gt;

</description>
      <category>threejs</category>
      <category>reactthreefiber</category>
      <category>3d</category>
    </item>
    <item>
      <title>Isn't it Ionic?</title>
      <dc:creator>xanderlambert</dc:creator>
      <pubDate>Mon, 01 May 2023 01:46:48 +0000</pubDate>
      <link>https://dev.to/xanderlambert/isnt-it-ionic-4lhc</link>
      <guid>https://dev.to/xanderlambert/isnt-it-ionic-4lhc</guid>
      <description>&lt;h2&gt;
  
  
  At a glance:
&lt;/h2&gt;

&lt;p&gt;After hearing from a friend that he uses Ionic regularly, I decided to look into it. Ionic is an open source mobile Software Development Kit for the web. You can use Ionic to create and build an app, or add to an existing app. Here is a quote from the site about what makes Ionic unique. &lt;em&gt;"Ionic is the only mobile app stack that enables web developers to build apps for all major app stores and the mobile web from a single codebase. And with Adaptive Styling, Ionic apps look and feel at home on every device."&lt;/em&gt; I totally buy this. I've checked the goods and thought to myself "well, isn't this nice." They have a great selection of components, styles, animations and are compatible with multiple frameworks. Enticing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features:
&lt;/h2&gt;

&lt;p&gt;Ionic is a versatile mobile app development framework that supports a range of popular JavaScript frameworks, including React, Angular, Vue, and vanillaJS. That being said, it seems to be most popular with Angular users. It also provides native device plugin integration, enabling apps to interact with Bluetooth and sensors seamlessly. With Ionic, developers can build and preview mobile apps directly in their web browser and choose to deploy them as native apps, PWAs, or both. Ionic's "plug &amp;amp; play" cross-platform mobile UI is similar to popular styling libraries like MUI or styled components. Plus, because Ionic Apps are built with web technologies, they perform equally well as both a Progressive Web App and a native app. Whether you're building a small prototype or a complex enterprise app, Ionic provides all the tools you need to create powerful, high-performance mobile apps that work seamlessly across platforms. See the below example of a Ionic component. Notice the ease at which you can toggle the device and OS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E5sM7gjj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j3ety99o1ocliiu5ifx.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E5sM7gjj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j3ety99o1ocliiu5ifx.PNG" alt="Image description" width="471" height="617"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xx8xxQGw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rzv805cmmg9sb08lhkxx.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xx8xxQGw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rzv805cmmg9sb08lhkxx.PNG" alt="Image description" width="553" height="682"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Reviews:
&lt;/h2&gt;

&lt;p&gt;Ionic Framework has a lot of happy users out there. Many have praised it for its ease of use and compatibility with various frameworks. One comment mentioned that they were able to create their app in a fraction of the time it would have taken with other frameworks. Others have applauded its flexibility, stating that they were able to integrate native device features with ease. Overall, it seems that Ionic has a solid reputation in the development community. Who would've thought? It figures that if they like it, it's worth exploring.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Take that flight:
&lt;/h2&gt;

&lt;p&gt;You oughta know how to get started if you  want to look into using Ionic. First make sure you have the latest version of Node.js and npm installed on your computer. Then, install the Ionic CLI by running the command "npm install -g ionic" in your terminal.&lt;br&gt;
Once installed, create a new project by running "ionic start [project-name] [template]" where the template can be one of the many available options such as "blank", "tabs", or "sidemenu".&lt;/p&gt;

&lt;p&gt;With your project set up, you can now start adding pages, components, and other features using the built-in Ionic UI library and JavaScript. Test your app (frequently) by running "ionic serve" in your terminal and previewing it in your browser or on a mobile device with the Ionic DevApp.&lt;/p&gt;

&lt;p&gt;As far as publishing goes, use the "ionic build" command to create a production-ready version. And that's it! With Ionic Framework, you'll have all the tools you need to create a mobile app that's both functional and pretty. Something to note is that Ionic says that they make it especially easy to deploy both a web app version and native version of your app if you so choose. See the below examples from one of their YouTube videos. This is without and then with ionic, respectively. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4q8XkYTk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yeftkmg8nmci3yjai45c.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4q8XkYTk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yeftkmg8nmci3yjai45c.PNG" alt="Image description" width="800" height="519"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OEZaOUDO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lcqv7m4vyfbz8mk7lif2.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OEZaOUDO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lcqv7m4vyfbz8mk7lif2.PNG" alt="Image description" width="720" height="551"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;Ionic Framework is definitely worth considering for your next mobile app project. Its compatibility with multiple frameworks, support for native device plugins, and ability to deploy as a native app or PWA make it a versatile option. Plus, its "plug &amp;amp; play" cross-platform mobile UI makes it easy to get started. Positive reviews from the development community and the ability to get your app to everyone relatively easily, regardless of device, makes Ionic is a solid choice, don't you think?&lt;/p&gt;

&lt;h3&gt;
  
  
  Links:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://ionicframework.com/"&gt;https://ionicframework.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=mJsxhUnP0Qc"&gt;https://www.youtube.com/watch?v=mJsxhUnP0Qc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stackshare.io/stackups/angularjs-vs-ionic#:%7E:text=AngularJS%20belongs%20to%20%22Javascript%20MVC,Cross%2DPlatform%20Mobile%20Development%22"&gt;https://stackshare.io/stackups/angularjs-vs-ionic#:~:text=AngularJS%20belongs%20to%20%22Javascript%20MVC,Cross%2DPlatform%20Mobile%20Development%22&lt;/a&gt;. &lt;/p&gt;

</description>
      <category>ionic</category>
      <category>angular</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Why Web Apps?</title>
      <dc:creator>xanderlambert</dc:creator>
      <pubDate>Mon, 24 Apr 2023 02:38:07 +0000</pubDate>
      <link>https://dev.to/xanderlambert/why-web-apps-1j3p</link>
      <guid>https://dev.to/xanderlambert/why-web-apps-1j3p</guid>
      <description>&lt;p&gt;Many companies are shifting to Progressive Web Apps. Spotify is maybe my favorite example. Uber, Tinder and Pinterest are three more. A web app is accessed through a web browser like Chrome, Firefox, or Safari, which communicates with the web server that hosts the application. Web apps seem to present a range of benefits for  developers and users alike. Here, I will focus on the UI benefits, maintenance benefits and briefly discuss implementation. Web apps can be easier to maintain (developers) and provide greater accessibility (users). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3GBpEYqA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iq4f92q0jlbpvra3z8x1.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3GBpEYqA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iq4f92q0jlbpvra3z8x1.PNG" alt="Image description" width="684" height="663"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;UI/Accessibility:&lt;/strong&gt; One of the key advantages of web apps tout over local versions is their accessibility. Web apps can be accessed from any device with an internet connection and a web browser, making them highly convenient for users. Additionally, web apps are not tied to a specific platform or operating system, which means they can be accessed from any device regardless of whether it's an iOS, Android, Windows, or Mac device. This is a game changer, as it opens up the large portion of the population to potentially using your app. Another point that makes web apps more accessible is the fact that users never need to download an app. No need to take up that precious storage space for an app you might use a handful of times, or cant even find. While some very commonly used apps may still have some benefits to being stored locally, many are moving to the web. Lets think of an example. You want an app that displays a calendar with Mardi Gras parade times for the year. In this case, you will only need the app for a a week or two at the most. Why keep it somewhere deep in your iPhone until you try to redownload it next year? Wouldn't it be so much easier to paste the link into your browser (or save it to your home screen) and return to that page as needed? &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maintenance and updates:&lt;/strong&gt; Web apps are typically easier to maintain and update than other types of applications. One reason for this claim is because the application is hosted on a web server, updates can be made to the application without requiring users to download or install anything on their devices. This makes it easier for developers to fix bugs, add new features, and make other improvements to the application as needed. The next time a user visits, the changes will have been made. Another key benefit to developers is since the app is accessed through the browser, the browser is all that needs to be accounted for, rather than the operating system or device type. This of course allows developers to focus their skills on other parts of the app. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebAssembly: How does it fit in?&lt;/strong&gt; &lt;br&gt;
WebAssembly is a binary instruction format for a stack-based virtual machine that is designed to run in web browsers. What does this even mean? It means that WebAssembly can be used to compile code that can run directly in a web browser, without the need for plugins or other third-party software. The aim of WebAssembly was to bring resource intensive desktop apps into the browser while maintaining performance. WebAssembly is a way to use other(faster) coding languages instead of JavaScript within the browser. Languages such as C or Rust, which can be compiled into highly optimized code that run faster than equivalent JavaScript. WebAssembly does not have the ability to manipulate the DOM, though, so JavaScript is used to "fill in the gaps". This makes WebAssembly likely to become an increasingly important part of the web development landscape in the coming years.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9itOlyYK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bghdvazt41tgl9t5pdad.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9itOlyYK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bghdvazt41tgl9t5pdad.PNG" alt="Image description" width="721" height="652"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Web apps provide a convenient way for users to access and interact with software applications without needing to download and install additional software on their devices. So next time you're looking for a good Mardi Gras calendar, check so see if there's a web app! Hint: There is. &lt;a href="https://www.mardigrascalendar.com/"&gt;https://www.mardigrascalendar.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;resources:&lt;br&gt;
&lt;a href="https://dev.to/badams92/webassembly-9me"&gt;https://dev.to/badams92/webassembly-9me&lt;/a&gt;&lt;br&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts"&gt;https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts&lt;/a&gt;&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/WebAssembly"&gt;https://en.wikipedia.org/wiki/WebAssembly&lt;/a&gt;&lt;br&gt;
&lt;a href="https://webassembly.org/"&gt;https://webassembly.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/Web-application-Web-app"&gt;https://www.techtarget.com/searchsoftwarequality/definition/Web-application-Web-app&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.tutorialspoint.com/webassembly/webassembly_examples.htm"&gt;https://www.tutorialspoint.com/webassembly/webassembly_examples.htm&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.codica.com/blog/best-examples-of-pwa/"&gt;https://www.codica.com/blog/best-examples-of-pwa/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>JSX: The Fusion of Markup and Logic in React Development</title>
      <dc:creator>xanderlambert</dc:creator>
      <pubDate>Mon, 17 Apr 2023 01:14:57 +0000</pubDate>
      <link>https://dev.to/xanderlambert/jsx-470a</link>
      <guid>https://dev.to/xanderlambert/jsx-470a</guid>
      <description>&lt;p&gt;Ever find yourself wondering how web developers create components that seamlessly integrate rendering logic and markup? Wonder no more! Enter JSX, a tool that has become an integral part of React development. JSX allows developers to write components with both rendering logic and markup together in one file, offering a more organized and efficient way of managing code than traditional methods of separating JavaScript, HTML, and CSS into separate files. While JSX looks similar to HTML, there are some key differences to keep in mind when working with it. Let's dive in and explore its origin, usefulness, and differences from HTML.&lt;/p&gt;

&lt;p&gt;What is JSX?&lt;br&gt;
JSX is a JavaScript syntax extension that allows developers to use "HTML-like" markup &lt;em&gt;within&lt;/em&gt; their JavaScript files. JSX is short for JavaScript XML(Extensible Markup Language).  MDN defines XML as "a markup language similar to HTML, but without predefined tags to use." This seems to make sense if we are to use JSX in place of HTML. &lt;/p&gt;

&lt;p&gt;Where did it come from?&lt;br&gt;
Jordan Walke is credited with the creation of JSX (and React) while at Facebook and launched them together in 2013. Apparently much of the push to construct React &amp;amp; JSX was tied to the need to better manage ads around the time Facebook bought Instagram, so yeah, a ton of ads. &lt;/p&gt;

&lt;p&gt;What makes JSX useful? &lt;br&gt;
When asking about JSX, you must consider React as well. Web developers traditionally used separate files for JavaScript, HTML &amp;amp; CSS. Logic, content and design/styling concerns were split into these files respectively. This means that to find ALL code relating to a specific 'component' one would need to look in all three files. Jordan's idea was to separate concerns into components. By keeping rendering logic and markup together you can ensure that they stay in sync even after edits. JSX comes into play here. It can be seen as the 'HTML-like' representation that is placed inside of your JavaScript. Here's an example. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2UplCNiR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/39jf8ru6x3f2dg1t1p83.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2UplCNiR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/39jf8ru6x3f2dg1t1p83.PNG" alt="Image description" width="779" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sD912rGb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c7uh1vhuv92zzv8pupqr.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sD912rGb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c7uh1vhuv92zzv8pupqr.PNG" alt="Image description" width="800" height="389"&gt;&lt;/a&gt;&lt;br&gt;
This example shows how JSX can be embedded within JavaScript to create components organized by logical and markup concerns. &lt;/p&gt;

&lt;p&gt;Differences in JSX and HTML?&lt;br&gt;
While JSX looks like HTML, it is not HTML. One core difference is that in JSX, you must return a single parent element in order for it to compile. It is common practice to wrap everything in a div or a fragment "&amp;lt;&amp;gt;&amp;lt;/&amp;gt;". Another key difference is that in JSX, you can embed JavaScript expressions directly using curly braces. HTML would require a script tag &amp;amp; external JavaScript file. You use className instead of class for defining CSS classes, and you use camelCase instead of kebab-case for defining attributes. Another  aspect unique to JSX is in-line styling. Styling can be achieved by setting style={styleObject} within an element. The style object can be defined above and passed in as a variable, or it can be defined directly inside the curly braces. Remember, you will need an initial set of curly braces to embed your JavaScript. Here is an example of how these can be done. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Pv_JlSqa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fan733jepx6ystjhqwhi.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Pv_JlSqa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fan733jepx6ystjhqwhi.PNG" alt="Image description" width="689" height="199"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How do I use JavaScript within JSX?&lt;br&gt;
To use JavaScript within JSX, you can embed JavaScript expressions directly using curly braces {}. This allows you to insert dynamic content or execute JavaScript logic within your markup. For example, variables can be passed as props to components and then used within the JSX. Additionally, you can use JavaScript functions to conditionally render elements or to map over arrays and create multiple elements. Remember, Any valid JavaScript code can be used within JSX. This means that you can use loops, conditional statements, and any other JavaScript functionality within your JSX code. Overall, the ability to use JavaScript inside of JSX makes it a valuable asset when creating dynamic and reusable components in React.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--56n7KXdH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4abbcay0y235ootuza0t.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--56n7KXdH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4abbcay0y235ootuza0t.PNG" alt="Image description" width="453" height="221"&gt;&lt;/a&gt;  This is a simple example in which the name variable is passed to and displayed within our JSX h1.&lt;/p&gt;

&lt;p&gt;JSX is allows developers to write components with both rendering logic and markup together in one file. It offers a more organized and efficient way of managing code than traditional methods of separating JavaScript, HTML, and CSS into separate files. Although JSX looks similar to HTML, there are some key differences to keep in mind when working with it. Overall, JSX has become an integral part of React development and is widely used in modern web development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://react.dev/learn/writing-markup-with-jsx"&gt;https://react.dev/learn/writing-markup-with-jsx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://react.gg/"&gt;https://react.gg/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.w3schools.com/react/react_jsx.asp#:%7E:text=JSX%20stands%20for%20JavaScript%20XML,and%20add%20HTML%20in%20React"&gt;https://www.w3schools.com/react/react_jsx.asp#:~:text=JSX%20stands%20for%20JavaScript%20XML,and%20add%20HTML%20in%20React&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/XML/XML_introduction"&gt;https://developer.mozilla.org/en-US/docs/Web/XML/XML_introduction&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/JSX_(JavaScript)"&gt;https://en.wikipedia.org/wiki/JSX_(JavaScript)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.risingstack.com/the-history-of-react-js-on-a-timeline/"&gt;https://blog.risingstack.com/the-history-of-react-js-on-a-timeline/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.freecodecamp.org/news/html-vs-jsx-whats-the-difference/#:%7E:text=HTML%20is%20a%20very%20important,a%20syntactic%20sugar%20for%20React"&gt;https://www.freecodecamp.org/news/html-vs-jsx-whats-the-difference/#:~:text=HTML%20is%20a%20very%20important,a%20syntactic%20sugar%20for%20React&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>jsx</category>
      <category>react</category>
      <category>javascript</category>
      <category>markup</category>
    </item>
    <item>
      <title>jQuery Obsolescence?</title>
      <dc:creator>xanderlambert</dc:creator>
      <pubDate>Thu, 09 Mar 2023 22:24:37 +0000</pubDate>
      <link>https://dev.to/xanderlambert/jquery-obsolescence-135p</link>
      <guid>https://dev.to/xanderlambert/jquery-obsolescence-135p</guid>
      <description>&lt;h2&gt;
  
  
  Full disclosure:
&lt;/h2&gt;

&lt;p&gt;My jQuery experience is minimal at best. I have used it for a couple of projects this week, but that's about the extent of it so far. That being said, it did get me wondering just how useful it may be for aspiring JS devs to learn. God forbid we learn something we will never use, right?&lt;br&gt;
The topic of jQuery obsolescence was a seed planted earlier this week, when I was searching  online for project advice and jQuery methods. The seed was watered every time I saw an answer from 2009. Seriously though, the vast majority were dated 2015 or earlier. This kicks off a series of searches in which I tried to determine(with my limited understanding) just how important this stuff was for me to know. Here's what I've gathered so far.&lt;br&gt;
jQuery is a popular JavaScript library that was first released in 2006. It has been (very) widely used by developers to streamline the process of writing JavaScript, particularly for DOM manipulation and event handling. However, due to modern web development techniques, the improvement of native JavaScript features, and improvements in cross-browser compatibility and web APIs, some may be wondering whether jQuery is becoming obsolete. Below is a google trends screenshot that does a great job at encapsulating my concerns. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kGMgot9W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qreaywr2kdkmhn98rrun.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kGMgot9W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qreaywr2kdkmhn98rrun.png" alt="Image description" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Arguments against jQuery:
&lt;/h2&gt;

&lt;p&gt;One of the main arguments against jQuery is that generally, it is no longer necessary for many modern web development tasks. This means that the majority of newly built sites/apps are not using it. With the introduction of features (such as querySelector and querySelectorAll) in modern browsers, it is now possible to select and manipulate DOM elements without the need for jQuery. This means that developers who are familiar with native JavaScript can accomplish the same tasks without the added overhead of loading a jQuery library. Below is a link that gives the JavaScript equivalents of jQuery functions. &lt;br&gt;
&lt;a href="https://css-tricks.com/now-ever-might-not-need-jquery/"&gt;https://css-tricks.com/now-ever-might-not-need-jquery/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And here is an example of the same code written with both.&lt;/p&gt;

&lt;p&gt;JavaScript:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;document.getElemementById(“mybutton”).addEventListener(‘click’, function(){
alert(“Hey, You clicked me ?”);
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;jQuery:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$(‘#mybutton’).click(function(){
alert(“Hey, You clicked me ?”);
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Another argument against jQuery is that it can lead to 'bloated' code and slow page loading times. The library is relatively large and requires additional HTTP requests to load, which can slow down page load times, particularly on mobile devices with slower network connections. This is part of the reason for the rise of "micro-libraries" such as Axios or umbrella JS. Many of these plugins exist and are lightweight compared to jQuery, but contain the most commonly used methods. Here's a list of them. &lt;br&gt;
&lt;a href="https://www.technotification.com/2019/06/5-lightweight-jquery-alternatives-2019.html"&gt;https://www.technotification.com/2019/06/5-lightweight-jquery-alternatives-2019.html&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Arguments in favor of jQuery:
&lt;/h2&gt;

&lt;p&gt;Despite these arguments, there are still  developers who prefer to use jQuery, or at least tolerate it. One of the main reasons for this is its historical ease of use and cross-browser compatibility. jQuery was specifically designed to work  across different browsers and platforms seamlessly, which can save developers time and effort, especially when it comes to testing and debugging.&lt;/p&gt;

&lt;p&gt;Most notably, jQuery dominates other JS libraries in terms of sheer website numbers. Since such a large number of sites are still relying on Jquery, your chances of running into it are at some point are pretty steep. In that case, it may be best to have at least some past exposure to jQuery in order to best understand what youre looking at. I found more than a handful of reddit comments from devs who spend +50% of their time with jQuery, even when they'd prefer not to. The reason for this is what was just mentioned. The volume of sites using Jquery means that the many devs working on or upgarding legacy systems interact with it daily. See the below link for a great site used to compare technologies!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://https://www.similartech.com/compare/jquery-vs-react-js"&gt;https://https://www.similartech.com/compare/jquery-vs-react-js&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;While there are certainly arguments for and against using jQuery, the decision ultimately comes down to the individual developer and the specific needs of their project. For developers who are already familiar with native JavaScript and are working on modern web development projects, jQuery may not be necessary. However, for those who are just starting out with web development or  for those who are working on legacy projects that require cross-browser compatibility, jQuery can still be a valuable tool. In my opinion, it looks like some experience with jQuery is an obvious asset, but may not be worth going out of your way to master right out of the gate.&lt;br&gt;
&lt;a href="https://youmightnotneedjquery.com/"&gt;https://youmightnotneedjquery.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>jquery</category>
      <category>obsolescence</category>
      <category>javascript</category>
      <category>coding</category>
    </item>
  </channel>
</rss>
