Storia e patrimonio di jQuery

Storia e patrimonio di jQuery
jQuery — è la libreria JavaScript più popolare del mondo. La comunità dei web developer l'ha creata all'inizio del 2000, dando vita a un ricco ecosistema di siti, plugin e framework che utilizzano jQuery sotto il cofano.

Negli ultimi anni, però, il suo status di principale strumento per lo sviluppo web è diminuito. Vediamo perché jQuery è diventata popolare e perché è uscita di moda, oltre ai casi in cui è ancora utile utilizzarla per creare siti web moderni.

Breve storia di jQuery

John Resig (John Resig) ha creato la prima versione della libreria nel 2005 e l'ha pubblicata nel 2006- durante un evento chiamato BarCampNYC. Sul sito ufficiale di jQuery l'autore ha scritto:

jQuery è una libreria JavaScript il cui motto è: Programmare in JavaScript deve essere piacevole. jQuery prende compiti comuni e ripetitivi, estrae tutto il codice ridondante e li rende brevi, eleganti e comprensibili.

jQuery ha due principali vantaggi. Il primo è una API conveniente per manipolare le pagine web. In particolare, fornisce metodi potenti per selezionare gli elementi. Non si possono selezionare solo per ID o classi, jQuery consente di scrivere espressioni complesse, ad esempio, per selezionare elementi in base alle loro relazioni con altri elementi:

// Select every item within the list of people within the contacts element
$('#contacts ul.people li');

Con il tempo, il meccanismo di selezione si è trasformato in una libreria a sé stante Sizzle.

Il secondo vantaggio della libreria era che astraeva le differenze tra i browser. All'epoca era difficile scrivere codice che funzionasse in modo affidabile su tutti i browser.

La mancanza di standardizzazione significava che gli sviluppatori dovevano tenere conto delle numerose differenze tra i browser e dei casi limite. Dai un'occhiata a questo codice sorgente iniziale di jQuery e cerca jQuery.browser. Ecco uno dei tanti esempi:

// If Mozilla is used
if ( jQuery.browser == "mozilla" || jQuery.browser == "opera" ) {
        // Use the handy event callback
        jQuery.event.add( document, "DOMContentLoaded", jQuery.ready );

// If IE is used, use the excellent hack by Matthias Miller
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
} else if ( jQuery.browser == "msie" ) {

        // Only works if you document.write() it
        document.write("<scr" + "ipt id=__ie_init defer=true " + 
                "src=javascript:void(0)></script>");

        // Use the defer script hack
        var script = document.getElementById("__ie_init");
        script.onreadystatechange = function() {
                if ( this.readyState == "complete" )
                        jQuery.ready();
        };

        // Clear from memory
        script = null;

// If Safari  is used
} else if ( jQuery.browser == "safari" ) {
        // Continually check to see if the document.readyState is valid
        jQuery.safariTimer = setInterval(function(){
                // loaded and complete are both valid states
                if ( document.readyState == "loaded" || 
                        document.readyState == "complete" ) {

                        // If either one are found, remove the timer
                        clearInterval( jQuery.safariTimer );
                        jQuery.safariTimer = null;

                        // and execute any waiting functions
                        jQuery.ready();
                }
        }, 10);
}

Grazie a jQuery, gli sviluppatori potevano trasferire le preoccupazioni riguardo a tutte queste insidie sulle spalle del team che sviluppava la libreria.

In seguito, jQuery ha semplificato l'implementazione di tecnologie più complesse, come le animazioni e Ajax. La libreria è diventata di fatto un dipendente standard per i siti web. Oggi supporta una grande parte di Internet. W3Techs stima che il 74% dei siti oggi utilizzi jQuery.

Il controllo sullo sviluppo di jQuery è diventato anche più formalizzato. Nel 2011, il team ha creato il jQuery Board. E nel 2012, il jQuery Board si è trasformato nella jQuery Foundation.

Nel 2015, la jQuery Foundation si è unita alla Dojo Foundation, per creare la JS Foundation, che poi si è unita alla Node.js Foundation per 2019- creare l'OpenJS Foundation, nella quale jQuery era uno dei "progetti pionieristici

Circostanze mutate

Tuttavia, negli ultimi anni jQuery ha perso parte della sua popolarità. GitHub ha rimosso la libreria dal frontend del suo sito. Bootstrap v5 si libererà di jQuery, perché è il suo "principale dipendenza client per JavaScript standard" (attualmente di 30 KB, minificato e impacchettato). Diverse tendenze nello sviluppo web hanno indebolito la posizione di jQuery come strumento indispensabile.

Browser

Per vari motivi, le differenze e i limiti dei browser sono diventati meno rilevanti. In primo luogo, è migliorata la standardizzazione. I principali sviluppatori di browser (Apple, Google, Microsoft e Mozilla) stanno collaborando per sviluppare gli standard web nell'ambito di Web Hypertext Application Technology Working Group.
Anche se i browser differiscono ancora in diversi aspetti importanti, i fornitori hanno almeno uno strumento per trovare e creare una base comune invece di una guerra permanente tra di loro. Di conseguenza, le API dei browser hanno acquisito nuove possibilità. Ad esempio, Fetch API è in grado di sostituire le funzioni Ajax di jQuery:

// jQuery
$.getJSON('https://api.com/songs.json')
    .done(function (songs) {
        console.log(songs);
    })

// native
fetch('https://api.com/songs.json')
    .then(function (response) {
        return response.json();
    })
    .then(function (songs) {
        console.log(songs);
    });

Metodi querySelector e querySelectorAll duplicano i metodi di selezione di jQuery:

// jQuery
const fooDivs = $('.foo div');

// native
const fooDivs = document.querySelectorAll('.foo div');

Ora è possibile manipolare le classi degli elementi con classList:

// jQuery
$('#warning').toggleClass('visible');

// native
document.querySelector('#warning').classList.toggle('visible');

Sul sito Potresti non avere bisogno di jQuery sono state indicate altre situazioni in cui il codice jQuery può essere sostituito da codice nativo. Alcuni sviluppatori continuano ad affidarsi a jQuery perché semplicemente non conoscono le nuove API, ma quando le scoprono, iniziano a usarla meno.

Utilizzare le funzionalità native permette di migliorare le prestazioni delle pagine. Molti effetti di animazione di jQuery possono ora essere implementati in modo molto più efficiente attraverso il CSS.

La seconda ragione è che i browser vengono aggiornati molto più rapidamente rispetto al passato. La maggior parte di essi adotta una strategia di aggiornamento "evergreen", ad eccezione di Apple Safari. Possono aggiornarsi in background senza intervento dell'utente e non sono legati agli aggiornamenti del sistema operativo.

Questo significa che le nuove funzionalità dei browser e le correzioni dei bug vengono diffuse molto più rapidamente, e gli sviluppatori non devono aspettare che la quota di Can I Use raggiunga livelli accettabili. Possono utilizzare con sicurezza nuove funzionalità e API senza dover caricare jQuery o polyfill.

Il terzo motivo è che Internet Explorer sta gradualmente diventando obsoleto. IE è da tempo un incubo per gli sviluppatori web in tutto il mondo. I bug caratteristici erano molto diffusi e, poiché IE ha dominato nel 2000 e non ha utilizzato una strategia di aggiornamento “evergreen”, è ancora comune imbattersi nelle sue vecchie versioni.

Nel 2016, Microsoft ha accelerato il ritiro di IE dal mercato, sospendendo il supporto per la decima versione e le precedenti, limitandosi a supportare IE 11. Sempre più spesso, gli sviluppatori web possono permettersi il lusso di ignorare la compatibilità con IE.

Anche jQuery ha smesso di supportare IE 8 e versioni inferiori a partire da versione 2.0, rilasciata nel 2013. E sebbene in alcuni casi il supporto a IE sia ancora necessario, ad esempio sui siti web datati, queste situazioni stanno diventando sempre più rare.

Nuovi framework

Dalla nascita di jQuery, sono stati creati numerosi framework, tra cui i moderni leader React, Angular e Vue. Questi presentano due vantaggi significativi rispetto a jQuery.

In primo luogo, consentono di suddividere facilmente l'interfaccia utente in componenti. I framework sono progettati per gestire il rendering e l'aggiornamento della pagina. Al contrario, jQuery viene solitamente utilizzato solo per l'aggiornamento, demandando al server il compito di fornire la pagina iniziale.

D'altra parte, i componenti di React, Angular e Vue permettono di legare strettamente HTML, codice e persino CSS. Come suddividiamo la base di codice in molte funzioni e classi autonome, così la possibilità di dividere l'interfaccia in componenti riutilizzabili semplifica la costruzione e la manutenzione di siti complessi.

Il secondo vantaggio è che i framework più recenti seguono la paridima dichiarativa, in cui lo sviluppatore descrive come dovrebbe apparire l'interfaccia e il framework si occupa di apportare tutte le modifiche necessarie per raggiungere il risultato desiderato. Questo approccio contrasta con l'approccio imperativo, tipico del codice jQuery.

In jQuery si devono specificare esplicitamente i passi per apportare modifiche. In un framework dichiarativo, si dice: "In base a questi dati, l'interfaccia deve apparire in questo modo". Questo può semplificare notevolmente la scrittura di codice privo di bug.

Gli sviluppatori hanno adottato nuovi approcci nello sviluppo dei siti, il che ha ridotto la popolarità di jQuery.

Quando utilizzare jQuery?

Quando si usa si deve jQuery?

Se la complessità del progetto aumenta, è meglio iniziare con un'altra libreria o framework che consenta di gestire razionalmente la complessità. Ad esempio, suddividere l'interfaccia in componenti. L'uso di jQuery in tali siti inizialmente può sembrare accettabile, ma porterà rapidamente alla creazione di codice spaghetti, dove non si sarà certi di quale frammento influisca su quale parte della pagina.

Mi sono trovato in situazioni in cui, cercando di apportare qualsiasi modifica, si ha la sensazione di affrontare un compito difficile. Non puoi essere sicuro di non rompere nulla, perché i selettori jQuery dipendono dalla struttura HTML generata dal server.

Dall'altra parte dello spettro ci sono siti semplici che richiedono solo un po' di interattività o contenuti dinamici. In questi casi anche io non userei jQuery come impostazione predefinita, perché con le API native si possono ottenere risultati molto migliori.

Anche se avessi bisogno di qualcosa di più potente, cercherei librerie specializzate, per esempio, axios per Ajax o Animate.css per animazioni. Sarà più semplice che caricare l'intera jQuery per una funzionalità ridotta.

Penso che la migliore giustificazione per usare jQuery sia che offre funzionalità complete per il lavoro front-end di un sito. Invece di studiare diverse API native o librerie specializzate, puoi semplicemente leggere la documentazione di jQuery e diventare subito produttivo.

L'approccio imperativo non scala bene, ma è più facile da apprendere rispetto all'approccio dichiarativo di altre librerie. Per un sito con funzionalità chiaramente limitate, è meglio usare jQuery e lavorare serenamente: la libreria non richiede una compilazione complessa.

Inoltre, jQuery è utile nei casi in cui sei certo che il sito non si complicherà nel tempo e se non ti preoccupa la funzionalità nativa, che sicuramente richiederebbe più codice rispetto a jQuery.

Puoi anche usare questa libreria se hai bisogno di supporto per versioni precedenti di IE. Allora jQuery ti sarà utile come nei tempi in cui IE era il browser più popolare.

Uno sguardo al futuro

jQuery non scomparirà presto. Essa si sta sviluppando attivamente, e molti sviluppatori preferiscono utilizzare la sua API, anche quando sono disponibili metodi nativi. La libreria ha aiutato un'intera generazione di sviluppatori a creare siti web funzionanti su qualsiasi browser. E sebbene molte sue funzioni siano state sostituite da nuove librerie, framework e paradigmi, jQuery ha giocato un enorme ruolo positivo nella creazione del web moderno.

Se la funzionalità di jQuery non cambierà sostanzialmente, è probabile che nei prossimi anni l'uso della libreria continuerà a diminuire lentamente ma inesorabilmente. I nuovi siti web sono generalmente costruiti sin dall'inizio utilizzando framework più moderni, e gli scenari di utilizzo appropriati per jQuery stanno diventando sempre più rari.

A qualcuno non piace l'intensità con cui gli strumenti per lo sviluppo web diventano obsoleti, ma per me è una testimonianza di un progresso rapido. jQuery ci ha permesso di fare molte cose meglio. Lo stesso vale per i suoi successori.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster