Il creatore di Vue.js Evan You pesa sulla discussione sul framework JavaScript di WordPress

Pubblicato: 2017-06-06
credito fotografico: JSConf Cina

La scorsa settimana i principali contributori di WordPress hanno ristretto le loro considerazioni per un nuovo framework JavaScript a React e Vue. Poiché il core team ha una conoscenza più collettiva del lavoro con React, ha contattato sviluppatori con diverse esperienze nell'utilizzo di altri framework in un contesto WordPress.

Una delle principali preoccupazioni che i contributori hanno riguardo a Vue è la longevità del progetto. Ho chiesto al creatore di Vue Evan You se poteva approfondire l'argomento per fornire ai contributori di WordPress una migliore comprensione del progetto, in particolare per quanto riguarda i suoi sforzi per coltivare manutentori aggiuntivi per aiutare a condividere il carico di manutenzione.

"Penso che sia importante guardare al track record: Vue è in circolazione da quasi 4 anni e tutto il lavoro è stato svolto in pubblico su GitHub, quindi chiunque può andare a controllare la cronologia della manutenzione", ha detto. "Sebbene sia stato in gran parte sviluppato da me, l'attuale manutenzione è molto più guidata dalla comunità. Abbiamo membri del core team attivi che valutano la maggior parte dei problemi e una percentuale sempre maggiore di problemi risolti dai PR della community. Quindi, sì, stavo già lavorando per coltivare manutentori aggiuntivi e continuerò a farlo".

Attualmente ricevi $ 10.000 al mese da donazioni ricorrenti di Patreon che finanziano i suoi sforzi a tempo pieno lavorando su Vue. In precedenza ha lavorato anche presso Google e Meteor. Durante la sua permanenza in Google, alcuni dei progetti su cui hai lavorato utilizzavano Angular, che secondo lui trovava troppo pesante per i suoi casi d'uso in quel momento. Ha creato Vue.js per essere un'implementazione più leggera dei concetti che gli piacevano di Angular.

Di recente hai anche affermato che ha imparato molto dalla community di React, che ha influenzato alcune delle sue decisioni tecniche in Vue 2.

"In primo luogo, Vue 2 utilizza lo stesso modello di rendering basato su Virtual DOM sottostante, che è stato introdotto per la prima volta da React", ha affermato. “L'introduzione di un DOM virtuale ha consentito a Vue di esporre il potere della composizione vdom pur mantenendo l'accessibilità.

“La comunità di React è anche molto attiva quando vengono esplorati nuovi domini problematici, ad esempio la gestione dello stato e la gestione dei CSS. Ci sono molte soluzioni concorrenti e molte ispirazioni quando stavo implementando soluzioni ufficiali per Vue”.

Evan You affronta le idee sbagliate dei collaboratori principali di WordPress su Vue.js

Hai detto che ha seguito le discussioni dei contributori di WordPress su React vs Vue ma non avrebbe offerto un'opinione su quale sia una scelta migliore per il progetto.

"La mia risposta sarebbe ovviamente parziale, e onestamente non sono nei panni del core team del WP, quindi non ho abbastanza prospettiva per fare una scelta", hai detto. "Tuttavia, posso fornire un feedback su alcune delle questioni discusse nella speranza di aiutarli a prendere una decisione più informata".

Hai lasciato un commento sulle più recenti note di riunione Javascript con chiarimenti su alcuni malintesi su Vue.js. Hai affrontato il punto relativo a "abbracciare JavaScript nel linguaggio", poiché alcuni collaboratori ritengono che il linguaggio di creazione di modelli di Vue oscuri il JavaScript sottostante.

"Penso che 'abbracciare il linguaggio JavaScript' sia un'altra primitiva di React che non vediamo in Vue", ha detto Andrew Duthie durante l'ultimo incontro.

La tua risposta confronta l'uso di modelli da parte di Vue come "zucchero di sintassi per la rappresentazione della vista sopra l'HTML" con quello che crede essere un utilizzo simile nel caso di JSX come rappresentazione della vista sopra JavaScript:

La crescente ricchezza dell'interfaccia utente NON richiede di inserire tutto in JavaScript. D'altra parte, solo perché Vue utilizza i modelli per impostazione predefinita non significa che consenta alle persone di cavarsela senza imparare correttamente JavaScript.

I modelli di Vue sono compilati in funzioni di rendering JavaScript sotto il cofano e sono in realtà più vicini a JavaScript che ai tradizionali modelli di stringhe. È solo uno strato di zucchero sintattico sopra la rappresentazione DOM virtuale sottostante. Pensa a JSX come zucchero di sintassi per la rappresentazione della vista su JS; I modelli Vue sono zucchero di sintassi per la rappresentazione della vista sopra l'HTML.

JSX/Raw JS offre maggiore flessibilità quando è necessario applicare la manipolazione diretta dei nodi Virtual DOM, ecco perché Vue supporta anche le funzioni di rendering. Ma questo non sta mettendo due paradigmi opposti sotto la stessa tenda: sta semplicemente consentendo all'utente di saltare lo strato di zucchero della sintassi per un maggiore controllo.

Hai detto che l'idea alla base della creazione di modelli oltre alle funzioni di rendering è quella di fornire "una migliore accessibilità", una preoccupazione condivisa da molti altri sostenitori di WordPress che adottano Vue.

"Gli utenti che sono più a loro agio con HTML e hanno casi d'uso più semplici potrebbero utilizzare il modello, mentre gli utenti che hanno già familiarità con le funzioni JSX/render possono sfruttare tutta la potenza di JS", ha affermato. "Questo si adatterebbe abbastanza bene per l'uso del core WP: gli utenti della comunità che si preoccupano dell'accessibilità hanno un momento più facile per iniziare, mentre il team principale ha accesso alle funzioni JSX/render per casi d'uso avanzati".

Hai anche affrontato la preoccupazione della longevità offrendo maggiori informazioni sui processi di sviluppo di Vue. Ha confermato che l'attuale codebase è in gran parte sviluppato da lui solo, ma la manutenzione è distribuita in un team principale con membri in tutto il mondo.

"Altri contributori hanno conteggi di commit inferiori perché i loro contributi sono tutti inviati sotto forma di PR e utilizziamo la funzione 'Squash and commit' su GitHub in modo che ogni PR risulti in un solo commit per il contributore", hai detto. “Abbiamo unito quasi 500 PR nel solo repository principale e molti altri in tutta l'organizzazione. Anche altri repository nell'ambito dell'organizzazione vuejs, ad esempio vuex, vue-router, vuejs.org, sono in gran parte gestiti da membri del team dedicati".

Hai anche offerto chiarimenti su questioni di stabilità e compatibilità futura, poiché i contributori di WordPress hanno presentato preoccupazioni in merito alle modifiche all'interruzione del linguaggio dei modelli in Vue 2.0.

"Questo richiede alcuni chiarimenti: il versionamento di Vue segue rigorosamente semver", hai detto. "L'unica volta in cui sono state apportate modifiche all'API dopo la 1.0 è stato il bump 2.0. La sintassi del modello fa parte dell'API, quindi non si interromperà e, tra un aumento e l'altro della versione principale, ci impegniamo a garantire la compatibilità con le versioni precedenti dell'API al 100%. Prendiamo molto sul serio la stabilità, così come la nostra community e gli utenti in produzione, inclusi GitLab, Vice e alcune delle più grandi società Internet in Cina".

Poiché molti contributori principali di WordPress si sono sviluppati per anni su React, il contributo di You offre uno sguardo più dettagliato e approfondito a Vue che i contributori hanno chiesto durante vari round di feedback. La discussione continuerà nelle prossime settimane ei contributori intendono includere l'argomento al vertice dei contributori di WordCamp Europe.