--- slug: jqueries title: "jQueries" date: "2022-09-11T07:23:10-04:00" draft: true --- Several of my coworkers do not like [jQuery][]. A lot of folks say that the modern [DOM][] and cross-browser compatibility are now good enough that [you might not need jQuery][]. Other common arguments against [jQuery][] are code bloat and security. My personal opinion is a bit more nuanced. I agree that [jQuery][] isn't *necessary* for new projects and that the modern [DOM][] is usually sufficient. That said, [if it ain't broke, don't fix it][fix]. It often takes less effort to maintain [jQuery][] in an existing application than it does to remove [jQuery][] and replace it with something else. Also, consistency is important. If a team of developers is working on several applications, then consistency between code bases is often more important than using the latest technology or the best technique. Using consistent dependencies, idioms, and formatting reduces the [cognitive load][] for the entire team. In the case where a team is creating a new application and that team already maintains several existing [jQuery][] applications, I would argue in favor of using [jQuery][] for the new application as long as the version of [jQuery][] is kept up to date. Even as someone who [cares about page size][shrinkage] and [literally measures JavaScript size by the byte][js-byte-size]), I don't find the arguments about bloat compelling; [jQuery 3.6.1][] (the current version as of this writing) is 90kb minified, and 30kb compressed. Slim builds are even smaller (73kb and 25kb, respectively). That is relatively small [jquery]: https://jquery.com/ "jQuery" [you might not need jquery]: https://youmightnotneedjquery.com/ "You might not need jQuery." [dom]: https://en.wikipedia.org/wiki/Document_Object_Model "Document Object Model" [fix]: https://idioms.thefreedictionary.com/if+it+ain%27t+broke%2c+don%27t+fix+it "If something is performing or functioning well enough, there's no need to change or interfere with it as you may introduce new problems as a result." [cognitive load]: https://en.wikipedia.org/wiki/Cognitive_load "Measure of perceived mental effort." [jquery 3.6.1]: https://blog.jquery.com/2022/08/26/jquery-3-6-1-maintenance-release/ "jQuery 3.6.1, the current version of jQuery as of this writing." [shrinkage]: {{< relref "posts/2022-01-28-media-shrinkage.md" >}} "Post about compressing media assets and enabling compression in Apache." [js-byte-size]: https://git.pablotron.org/sites/pablotron.org/plain/themes/hugo-pt2021/assets/script.js "Comment about byte count from unminified JavaScript for this site." [javascript]: https://en.wikipedia.org/wiki/JavaScript "JavaScript programming language."