Chrome Dev Summit 2014 - Polymer - Stato dell'Unione

I polimeri e i componenti web sono argomenti molto attuali negli ultimi tempi e, poiché questo ecosistema si sta evolvendo rapidamente, spesso può essere difficile per gli sviluppatori rimanere 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 di Polymer 1.0.

Che cos'è Polymer?

Innanzitutto, che cos'è esattamente Polymer?

Polymer è una libreria che ti aiuta a creare elementi e app a partire dai componenti web. I componenti web rappresentano 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 progettati per essere una primitiva per il browser, significa che sono molto potenti ma anche di livello molto basso e che l'utilizzo di questi componenti richiede una buona parte di codice.

Il polimero rende più dolci i componenti web

Polymer semplifica il lavoro dei componenti web mediante "sugaring" della sintassi. Riduce la quantità di codice boilerplate necessario per scrivere e aggiunge uno stile dichiarativo, in modo che la creazione di componenti web sia facile quanto scrivere HTML.

L'esperimento sui polimeri

Polymer è nato come esperimento per vedere se fosse possibile eseguire il polyfill degli standard dei componenti web e ricevere feedback dagli sviluppatori prima che queste tecnologie fossero disponibili in tutti i browser. Man mano che altri sviluppatori hanno iniziato a utilizzare Polymer, l'azienda è passata da essere semplici polyfill a una vera e propria libreria ricca di funzionalità per la produttività (associazione di dati, osservatori delle modifiche degli attributi, rilevamento automatico dei nodi e così via). Ma tutti gli esperimenti hanno dato dei risultati. Come siamo andati?

La scheda del report Polymer richiede miglioramenti

Sebbene molti sviluppatori abbiano affermato di apprezzare l'espressività e i vantaggi in termini di produttività ottenuti lavorando con i componenti web in Polymer, hanno anche espresso dubbi sulle prestazioni e sulla complessità generale.

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

Prossime modifiche

Il team di Polymer ha esaminato attentamente ogni funzionalità della libreria con l'obiettivo di realizzare una versione più snella e pronta per la produzione che gli sviluppatori possano usare con sicurezza.

Livelli

Il polimero è stato trasformato in una serie di strati. Le funzionalità principali sono veloci e snelle, mentre le funzioni più avanzate possono essere attivate. Nella maggior parte dei casi d'uso, le funzionalità principali devono coprire le esigenze degli sviluppatori.

Il polimero è stato trasformato in strati

Associazione dati semplificata

Il sistema di associazione dei dati di Polymer è stato inoltre ottimizzato in modo significativo per le prestazioni. Seguendo l'approccio a più livelli, l'associazione bidirezionale è ora attiva, con l'impostazione predefinita le associazioni unidirezionale. Inoltre, i tipi di proprietà pubblicate sono stati resi espliciti e la modifica di una proprietà ora attiva un evento per facilitare la comunicazione tra gli elementi di librerie diverse.

L'associazione di dati è stata semplificata

DOM Leaner Shadow

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

La prossima versione di Polymer avrà un approccio diverso, impiegando uno strato a spessore che riempie solo il Polymer necessario.

L'ombra dello shim è molto più veloce

Il polyfill esistente continuerà a essere attivo per i componenti web generici non contenenti polimeri.

Passaggio a webcomponents.org

A proposito di polyfill, anche questi stanno cambiando casa. Al momento molti sviluppatori sono confusi sulla relazione tra Polymer e i componenti web. Alcuni pensano che sia necessario usare tutto Polymer per usare i componenti web, mentre in realtà servono solo i polyfill.

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

Polyfill in trasferimento su webcomponents.org

Questo spostamento è stato pensato per aiutare altri autori di biblioteche a sfruttare i polyfill senza confusione. Il team di Polymer continuerà a contribuire ai polyfill, ma la speranza è 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, mentre su Safari la velocità è 8 volte superiore.

Polymer è ora 8 volte più veloce in Safari

Dimensioni file

Anche le dimensioni dei file sono state ridotte dell'87%, passando da 123 kB a 15 kB (6 kB compressi con gzip).

Ora il polimero è più piccolo dell'87%

Roadmap

Nella prossima release ci saranno alcune modifiche che provocano un errore dell'API, indicate 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 inoltre delineato una roadmap per fornire agli sviluppatori maggiore chiarezza sulle prossime release.

Roadmap polimeri, beta in T1, 1.0 in T2

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

L'esperimento è terminato

Con tutti i recenti cambiamenti in 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 già utilizzi i componenti (e Polymer), il futuro ti sembrerà 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 per la pirateria informatica!