Chrome Dev Summit 2014 - Polymer - Stato dell'Unione

I componenti Polymer e Web Components sono degli ultimi argomenti molto discussi e, poiché questo ecosistema è in rapida evoluzione, spesso può essere difficile per gli sviluppatori stare al passo con tutti gli ultimi cambiamenti.

Nel suo discorso al Chrome Dev Summit, Matt McNulty, engineering manager del team Polymer, ha spiegato cos'è Polymer e ha anche delineato la roadmap per Polymer 1.0.

Che cos'è Polymer?

Innanzitutto, cos'è esattamente Polymer?

Polymer è una libreria che ti aiuta a creare elementi e app dai componenti web. I componenti web sono una serie di nuovi standard all'avanguardia che consentono agli sviluppatori di estendere il vocabolario HTML con i propri elementi personalizzati.

Polymer aiuta gli sviluppatori a creare applicazioni più velocemente

Poiché i componenti web sono stati progettati come una nuova primitiva per il browser, sono molto potenti ma anche di livello molto basso e il loro utilizzo richiede una discreta quantità di codice.

Polymer rende più dolci i componenti web

Polymer semplifica l'utilizzo dei componenti web "ottimizzando" la sintassi. Riduce la quantità di codice boilerplate da scrivere e aggiunge uno stile dichiarativo, per cui la creazione di componenti web è facile come scrivere HTML.

L'esperimento sui polimeri

Polymer è stata avviata come un esperimento per vedere se era possibile eseguire il polyfill degli standard dei componenti web e ricevere feedback dagli sviluppatori prima della distribuzione di queste tecnologie in tutti i browser. Man mano che un numero sempre maggiore di sviluppatori ha iniziato a utilizzare Polymer, è passato da un semplice polyfill a un'effettiva libreria piena di funzionalità per la produttività (associazione di dati, osservatori delle modifiche degli attributi, ricerca automatica dei nodi e così via). Tutti gli esperimenti hanno dato risultati, quindi come abbiamo fatto?

La scheda del report Polymer richiede miglioramenti

Molti sviluppatori hanno dichiarato di apprezzare l'espressività e i guadagni in termini di produttività ottenuti con i componenti web in Polymer, ma hanno anche espresso delle preoccupazioni sulle prestazioni e sulla complessità generale.

Mette in evidenza una tensione naturale che Polymer ha sempre avuto da sempre: essere un esperimento per far progredire la piattaforma web, ma anche creare qualcosa di degno di produzione su cui gli sviluppatori possano fare affidamento.

Prossime modifiche

Il team di Polymer ha esaminato a fondo ogni funzionalità della libreria con l'obiettivo di creare una versione più snella e pronta per la produzione che gli sviluppatori possano utilizzare con fiducia.

Livelli

Il polimero è stato sottoposto a refactoring in una serie di strati. Le funzionalità principali sono rapide e snelle, mentre le funzionalità più avanzate possono essere attivate. Nella maggior parte dei casi d'uso, le funzionalità di base devono soddisfare le esigenze degli sviluppatori.

Il polimero è stato refactoring a strati

Associazione dei dati semplificata

Anche il sistema di associazione dei dati di Polymer è stato notevolmente ottimizzato per le prestazioni. Seguendo l'approccio a più livelli, l'associazione bidirezionale è ora attivabile, mentre per impostazione predefinita si tratta di associazioni unidirezionali. Inoltre, i tipi di proprietà pubblicati sono stati resi espliciti e una modifica della proprietà ora attiva un evento per aiutare gli elementi di librerie diverse a comunicare più facilmente.

L'associazione dei dati è stata semplificata

DOM ombra più snello

Il polyfill del DOM Shadow è un'opera di ingegneria straordinaria. È stata progettata per essere completa e conforme alle specifiche, il che è importante per testare a fondo la primitiva della piattaforma, ma sfortunatamente introduce una serie di colli di bottiglia delle prestazioni per le funzionalità che Polymer non utilizza.

La prossima release di Polymer avrà un approccio diverso, impiegando uno strato di shim che riempie solo ciò di cui Polymer ha bisogno.

Lo shim shadowdom è molto più veloce

Il polyfill esistente sarà attivo per i componenti web generici non Polymer.

Passaggio a webcomponents.org

Parlando di polyfill, anche questi stanno prendendo una nuova casa. Al momento molti sviluppatori sono confusi riguardo alla relazione tra Polymer e componenti web. Alcuni pensano che sia necessario utilizzare tutti i componenti Polymer per utilizzare i componenti web, mentre in realtà sono necessari solo i polyfill.

Per rendere più chiara questa distinzione, i polyfill vengono spostati sul sito webcomponents.org e ora sono stati rinominati webcomponents.js.

Polyfill passa a webcomponents.org

Lo scopo di questa mossa è aiutare altri autori di biblioteche a usufruire dei polyfill senza alcuna confusione. Il team di Polymer continuerà a contribuire ai polyfill, ma ci auguriamo che questo cambiamento li renda più una risorsa condivisa per la community.

Risultati

Quali sono i risultati di tutte queste modifiche?

Velocità

Su Chrome, Polymer è ora 5 volte più veloce e su Safari la velocità è 8 volte superiore.

Polymer è ora 8 volte più veloce in Safari

Dimensioni file

Anche la dimensione del file è stata ridotta dell'87%, passando da 123 kB a 15 kB (6 kB compressi).

Il polimero è ora più piccolo dell'87%

Roadmap

Nella prossima release ci saranno alcune modifiche che interrompono l'utilizzo dell'API, come indicato dal nuovo numero di versione (0.8), ma il team vuole chiarire che non si tratta di una riscrittura. Spostare il tuo progetto attuale da Polymer 0.5 a 0.8 dovrebbe essere abbastanza banale.

Il team di Polymer ha anche delineato una roadmap per fornire agli sviluppatori maggiore chiarezza sulle prossime release.

Roadmap Polymer, beta in q1, 1.0 in q2

L'anteprima 0.8 è ora disponibile come ramo su GitHub (sebbene sia ancora in fase di sviluppo molto attivo e la mancanza di documentazione). La versione beta ufficiale 0.9 è prevista per il primo trimestre del 2015, mentre la versione 1.0 è prevista per il secondo trimestre.

L'esperimento è terminato

In seguito a tutte le recenti modifiche a Polymer, il team responsabile sta gettando le basi affinché i componenti web diventino parte integrante dello stack di ogni sviluppatore. Se non hai mai utilizzato i componenti web, questo è il momento giusto per dare un'occhiata e acquisire familiarità con queste tecnologie trasformative. Se stai già utilizzando i componenti (e Polymer), il futuro sembra davvero roseo. Tieni d'occhio il blog di Polymer per tutti gli ultimi aggiornamenti e iscriviti alla mailing list di Polymer per domande o commenti. In bocca al lupo!