WordPress esplora un approccio indipendente dal framework JavaScript per costruire blocchi di Gutenberg

Pubblicato: 2017-09-23
credito fotografico: found_drama La città dei pirati di E. – (licenza)

La discussione sulla selezione del framework JavaScript di WordPress continua nel canale #core-js Slack prima della riunione della prossima settimana. Uno degli argomenti più recenti è la possibilità del rendering a blocchi indipendente dal framework per Gutenberg, che consentirebbe agli sviluppatori di estendere il nuovo editor utilizzando qualsiasi libreria JS che preferiscano. Ciò significa che i blocchi Gutenberg, colloquialmente denominati "Gutenblocks", potrebbero essere costruiti con Vue, React, Preact, Angular o qualsiasi cosa lo sviluppatore si senta a proprio agio nell'usare.

I sostenitori di questa idea sostengono che perseguire un approccio più flessibile rende meno critica la decisione del framework JS di base di WordPress. Mentre rispondeva alle domande sul canale #core-js, Gary Pendergast ha spiegato come si potrebbe costruire Gutenberg per mantenere la separazione.

"Non sto davvero scherzando quando dico che questa decisione non ha importanza, anche per le persone che contribuiscono a Gutenberg", ha detto Pendergast. “In #2463, la libreria è trattata interamente come una libreria di utilità, proprio come usiamo lodash, per esempio. Esegue una manciata di attività e può essere rimosso e sostituito in modo relativamente semplice con qualcosa di completamente diverso, senza alcuna interruzione per il resto della base di codice. Per le persone che contribuiscono a Gutenberg, stanno contribuendo nello stile di codifica Gutenberg, non nello stile di qualunque libreria importiamo".

Alla domanda su una sequenza temporale per quando verrà presa la decisione e quali fattori vengono presi in considerazione, Pendergast ha risposto che non esiste una sequenza temporale e che coloro che sono interessati a partecipare dovrebbero scrivere un blog sulle loro esperienze e scrivere esempi di cose che possono costruire con i framework JS che hanno familiarità con.

"Non c'è né una tabella di marcia, né una sequenza temporale, né è necessario che ci siano", ha detto Pendergast. “Come ha detto Matt, in realtà è solo una decisione tecnica: la decisione importante per la comunità più ampia è stata quella di scegliere 'non Reagire'. Sfortunatamente, questa decisione è stata sproporzionata e pesantemente confusa con "con quale libreria JS sarò in grado di creare i miei plug-in?" e a volte "a quali pratiche della libreria JS assomiglieranno i blocchi di Gutenberg?", nessuno dei quali è correlato. I tweet e i post che la trattano come una corsa di cavalli non sono utili in questo modo".

Pendergast ha affermato che qualsiasi libreria selezionata "continuerà a essere racchiusa dall'elemento WordPress, la libreria sottostante non verrà esposta". Il team di Gutenberg sta lavorando per rimuovere tutte le dipendenze della libreria dai suoi componenti in modo che gli sviluppatori di plugin possano utilizzare qualsiasi libreria scelgano.

Tuttavia, altri membri della comunità non sono così ansiosi di relegare la libreria JS selezionata per il core a una semplice decisione tecnica o libreria di utilità.

"La maggior parte degli sviluppatori capisce che i loro plugin non sono vincolati dal framework scelto per core/Gutenberg", ha affermato Kevin Hoffman. «Ma ciò non sminuisce il significato della decisione. Se vogliamo incoraggiare più contributori, saremmo ben serviti a scegliere un quadro in cui una maggioranza significativa si senta capace e sicura di sé. Se questa maggioranza è là fuori a sviluppare plug-in con un framework e deve impararne un altro per contribuire al core, stiamo limitando il numero di potenziali contributori".

Peter Booker sostiene che, non importa quanto sia elegante la separazione di Gutenberg, avere una comprensione decente della libreria scelta per il core influisce sulla capacità degli sviluppatori di risolvere profondamente determinati problemi.

"Non credo che dovremmo essere così sprezzanti nei confronti della scelta come una decisione tecnica minore", ha detto Booker. “Capire come funzionano PHP, JavaScript e Backbone (tra le altre cose) è essenziale per poter eseguire correttamente il debug dei problemi con WordPress. Il framework JS scelto per Gutenberg avrà un impatto su molte persone, anche se non siamo i contributori principali. Sarà una conoscenza essenziale per essere in grado di risolvere completamente i problemi. Questa è una decisione che avrà un impatto su molte più persone oltre al solo team di Gutenberg".

Quali sono le implicazioni di fornire un approccio flessibile e indipendente dal framework per la creazione di Gutenblock?

Jason Bahl ha chiesto se qualcuno ha provato a mescolare React, Preact, Vue e Angular in un'unica app per vedere se è "una ricetta per una performance da incubo". Ha proposto uno scenario di esempio in cui Gravity Forms crea Gutenblock basati su Vue, Yoast ha blocchi basati su React, WooCommerce costruisce blocchi con Preact e un altro plugin utilizza Ember.

"Sembra bello essere flessibili e consentire alle persone di usare qualsiasi cosa, ma anche come se potesse portare a molte divisioni sulle migliori pratiche e potenzialmente problemi di prestazioni", ha detto Bahl. "Vedremo apparire tutorial su come costruire Gutenblock in Vue, React, Preact, Ember, Vanilla JS, ecc., che sarebbe bello da vedere, ma anche confuso e potenzialmente causa di ulteriori divisioni nella comunità e delle migliori pratiche accettate . La flessibilità è buona fino a un certo punto, ma anche un'opinione forte a un certo livello è buona".

Carl Hancock, co-fondatore di Gravity Forms, sostiene che offrire un approccio indipendente dal framework alla creazione di Gutenblock avrà poca influenza sugli sviluppatori che stanno estendendo il progetto. La decisione non può essere resa meno critica offrendo maggiore flessibilità, perché gli sviluppatori adotteranno inevitabilmente qualsiasi cosa utilizzi il core di WordPress.

"Le persone finiranno per adottare qualsiasi cosa usi di base per la maggior parte, nonostante gli arcobaleni e le farfalle che alcuni sostengono in relazione alla creazione di un livello di astrazione in modo che gli sviluppatori di plugin/temi possano usare quello che vogliono", ha detto Hancock. "Il che significa che, per quanto complesso il framework di base finirà per essere, avrà un impatto diretto sulla barriera all'ingresso per gli sviluppatori di plugin e temi. Quella barriera all'ingresso è stata storicamente bassa fino ad oggi e ha contribuito direttamente alla crescita di WordPress come CMS self-hosted. Alzare drammaticamente quella barriera all'ingresso non è necessariamente una cosa negativa. Ad esempio, Gravity Forms utilizzerà Preact, Vue, qualunque cosa, perché abbiamo la forza lavoro e le competenze per farlo quando finalmente potremo decidere di farlo una volta che il core avrà preso la sua decisione.

Opportunità di WordPress per far avanzare il Web

WordPress attualmente alimenta il 28% di tutti i siti Web, secondo W3 Techs, e qualunque framework scelga avrà un impatto importante su quale libreria molti sviluppatori decidono di apprendere per estendere il software e far avanzare la propria carriera.

Matias Ventura, uno dei responsabili tecnici del progetto Gutenberg, ha incoraggiato i partecipanti alla discussione a guardare al quadro più ampio e cogliere l'opportunità di lavorare insieme e collaborare a una soluzione per WordPress che farà avanzare il web. Gli sforzi del team per collaborare con i rappresentanti di strutture concorrenti si distinguono in un ecosistema generalmente frammentato e litigioso.

"Sono entusiasta dell'opportunità che abbiamo di far avanzare lo sviluppo web in termini di rappresentazione dell'interfaccia utente JavaScript, in un modo simile a come WordPress è stato una forza trainante per gli standard web nell'ultimo decennio", ha affermato Ventura. “Questo è anche il punto in cui vedo che abbiamo una responsabilità come progetto, poiché le persone continueranno a imparare lo sviluppo web attraverso WP. Molte persone sono state introdotte a PHP tramite WordPress, inizialmente solo interagendo con le funzioni e le API di WP, per poi immergersi un po' più a fondo nel linguaggio secondo necessità. Vedo che il nostro nucleo rimane vicino a JS, il linguaggio, poiché offre lo strumento più significativo per l'apprendimento, che abbraccia tutti i framework e le librerie".

Ventura ha assicurato ai partecipanti alla discussione in corso che il team di Gutenberg sta ascoltando e lavorando per una soluzione che farà avanzare il web.

"Siamo assolutamente consapevoli che il modo in cui costruiamo e ciò che offriamo attraverso Gutenberg influenzerà la comunità degli sviluppatori e non lo stiamo prendendo alla leggera, anzi, al contrario", ha affermato Ventura. "Ho parlato con Evan (Vue) e Jason (Preact) perché invece di organizzare un concorso 'scegli il tuo framework', questa sembra un'opportunità per collaborare e portare avanti il ​​web."