Master Developers Dylan Schiemann (Dojo Creator)

Una delle figure più importanti nel mondo JavaScript e open source è Dylan Schiemann, e per una buona ragione. Dylan è presente a conferenze in tutto il mondo, supporta progetti open source con la Dojo Foundation e, soprattutto, guida il progetto Dojo Toolkit. Ho parlato con Dylan di quello che sta facendo oggi, del rilascio di Dojo 1.8, di quello che possiamo vedere in Dojo 2.0 e di quali sono i suoi piani per il futuro.


Ciao, Dylan. Negli ultimi dieci anni, hai avuto una varietà di ruoli nel mondo dello sviluppo web: fondatore del Dojo Toolkit e cometD, relatore della conferenza, sostenitore dell'open source, ecc. Cosa ti stai concentrando in questi giorni?

Siamo pronti per iniziare a lavorare su 2.0, il che sarà uno sforzo importante.

Ciao, David, la mia più grande passione è costruire cose, sia che si tratti di prodotti, progetti, team, ecc. Sono attualmente il capo del progetto Dojo Toolkit e presidente della Dojo Foundation. Negli ultimi anni, non stavo scrivendo più codice, ma quest'anno sono diventato più attivo nel dare contributi e usare Dojo. Siamo molto entusiasti della versione 1.8, con innumerevoli ore di sforzi per migliorare la base di codice e la documentazione. Siamo pronti per iniziare a lavorare su 2.0, il che sarà uno sforzo importante.

Sono anche l'amministratore delegato di SitePen, una società che fornisce servizi professionali (sviluppo, consulenza, formazione e supporto) alle organizzazioni che creano grandi applicazioni web basate su JavaScript e HTML5. SitePen ha un team incredibilmente forte di esperti di Dojo e JavaScript, e sono umiliato ogni giorno dal lavoro svolto dai team di SitePen e Dojo. Abbiamo anche annunciato di recente dgrid, un incredibile componente di griglia flessibile e open source basato su Dojo e facile da usare con altri toolkit. SitePen sta anche lavorando al suo primo prodotto specifico per settore che annunceremo entro la fine dell'anno.


Non molti sviluppatori lo sanno, ma Dojo Toolkit ha presentato molte delle utility più avanzate che altri framework hanno utilizzato oggi, tra cui Deferred. Quali altre funzionalità avanzate ha vantato Dojo prima di altri framework?

Abbiamo avuto differiti e promesse per diversi anni.

Dojo ha la reputazione di essere in testa alla curva nel provare cose nuove. Come hai detto, abbiamo avuto rinvii e promesse per diversi anni. Il nostro supporto per la grafica vettoriale nativa risale al 2005. I concetti di programmazione orientata all'aspetto, il pubub sul lato client, l'archiviazione in tempo reale, offline e locale, la cronologia del browser, i collegamenti degli archivi dati per i widget e molti altri risalgono alle versioni di Dojo da 2005 o 2006. Più recentemente, i nostri sforzi specifici per i dispositivi mobili hanno enfatizzato davvero spingendo le funzionalità più avanzate sui dispositivi mobili, come griglie, chat in tempo reale, grafici, indicatori, interfacce 3D e altro ancora.


Dojo Toolkit sembra essere il più potente delle librerie JavaScript; perché non è più popolare tra le masse di sviluppo front-end? La "grande" curva di apprendimento del Dojo è un mito?

Dojo è stato focalizzato sin dal suo inizio nello spingere i limiti del web aperto, fornendo un kit di strumenti completo, ma modulare per essere produttivo con JavaScript. Abbiamo avuto dolori crescenti a volte durante l'anno. Ad esempio, c'era un momento in cui la configurazione Dojo predefinita era molto lenta da caricare, senza passaggi chiari per renderlo più veloce.

A questo punto siamo nella posizione migliore in assoluto per quanto riguarda prestazioni, documentazione solida e facilità di avvio.

È sicuramente più facile imparare qualcosa che è più piccolo di qualcosa che fa di più, ma i nostri accaniti utenti si affrettano a sottolineare che un po 'più di apprendimento in anticipo li salva innumerevoli ore per cose che Dojo rende facile. Quando abbiamo avviato Dojo, abbiamo immaginato una community JavaScript in cui gli sviluppatori potevano lavorare insieme e non reinventare costantemente la ruota. Non si trattava mai di una guerra per gli strumenti, si trattava di creare il miglior toolkit possibile e di lavorare in un ecosistema molto aperto di cui le aziende potevano anche fidarsi.


Negli ultimi rilasci del Dojo Toolkit, sono state aggiunte o migliorate numerose funzionalità: il nuovo caricatore AMD, dojo / aspetto e dojo / a per separare la funzione e l'ascolto degli eventi nativi, dojo / touch per l'ascolto di eventi mobili, ecc. Quali nuove funzionalità sono disponibili in Dojo 1.8?

1.8 ha una nuova API Ajax, dojo / richiesta, che semplifica e fornisce estensioni per praticamente tutto ciò che posso immaginare di fare con una richiesta HTTP da un browser o da un'applicazione Node.js. Abbiamo anche introdotto dojo / Router, semplificare il routing tra le viste. Per 1.8, funziona con le modifiche dell'hash del browser per la compatibilità con i browser attualmente supportati e, per 2.0, funzionerà con l'API della cronologia HTML5.

dojox / cellulare ha ricevuto numerosi perfezionamenti API e 26 nuovi widget. C'è un nuovo impressionante widget di Calendar completo e, naturalmente, c'è dgrid. Anche le nostre implementazioni di parser e promesse hanno ricevuto notevoli miglioramenti. Questa versione ha centinaia di perfezionamenti e correzioni di bug che rendono questa versione molto solida e stabile, oltre al supporto per piattaforme non-browser, come Node.js. E ovviamente la documentazione, in particolare il Visualizzatore API e la Guida di riferimento, sono impressionanti.


Le prestazioni sono sempre un fattore importante quando si mantiene un toolkit JavaScript. Cosa ha fatto il team Dojo nell'area delle prestazioni per la versione 1.8?

Abbiamo lavorato sodo per perfezionare i moduli che non erano veloci come dovrebbero e, laddove possibile, abbiamo ridotto le dipendenze dei moduli in modo che richiedessero solo il codice di cui hanno bisogno. Abbiamo anche lavorato per migliorare i nostri strumenti di sviluppo e la documentazione, così è facile creare le tue applicazioni ottimizzate.


Con la creazione di dojo / nodo, che ruolo vedi Dojo sul lato server??

Avere Dojo sul lato server rende possibili molte cose ...

La Dojo Foundation ha già un impressionante framework JavaScript sul lato server, chiamato Persevere, che, per molti, è come Dojo per il lato server, con supporto per gli archivi di oggetti, i servizi RESTful, in tempo reale e altro. Ma avere Dojo sul lato server rende possibili molte cose, come test, o pre-rendering dei widget in uno stato inizializzato sul lato server prima del rendering al client, che è un recente progetto GitHub.


Dojo ha accumulato un bel po 'di codice durante la vita 1.x. In che modo il team Dojo riesce a gestire anche moduli legacy?

Migliaia di ore di preziosi contributi dalla comunità e un processo aperto e invitante per essere coinvolti e contribuire. Inoltre, aziende come SitePen e IBM eseguiranno correzioni basate su richieste urgenti da parte dei loro clienti. Siamo stati più bravi in ​​questa release con gli obiettivi di definizione e coinvolgere più persone, il che è stato davvero rinfrescante. Abbiamo molti contributori di lunga data, ma anche molte nuove persone che hanno reso 1,8 incredibili.


A questo punto, è sicuro che Dojo abbia iniziato la transizione verso 2.0. I moduli sono stati scritti in formato AMD, è stato creato un nuovo caricatore asincrono e alcuni dei metodi IO legacy (io / iframe, xhr, ecc.) Sono stati consolidati. Puoi suggerire cosa vedremo in Dojo 2.0?

Inizieremo ripulendo ulteriormente le nostre API, rimuovendo il supporto per elementi deprecati per diverse versioni e arrivando a un punto di partenza semplificato. Daremo anche un'occhiata ai browser e alle piattaforme che dovremmo supportare ... ora è molto più semplice con il rilevamento delle funzioni has.js integrato ed è davvero facile escludere funzionalità dalle build ottimizzate, ma vogliamo comunque semplificare manutenzione del toolkit pure.

Fondamentalmente, le grandi funzionalità di Dojo ci saranno ancora, ma ci aspettiamo molti nuovi progressi per supportare i browser moderni e mobili, oltre a un enorme refactoring di API vecchie o obsolete.


Il Dojo di solito si trova sul lato sanguinante degli avanzamenti del lato client, Deferreds e Promises sono esempi. Cosa vedi scendendo lungo la pipeline e come Dojo ha intenzione di lavorare con quelle tecnologie?

Gran parte di DojoX verrà suddivisa in progetti separati con i loro cicli di rilascio.

Penso che molto di ciò che abbiamo fatto di recente sia stato incentrato sulla produttività degli sviluppatori e sulla manutenibilità del tuo codice base. Ad esempio, AMD risolve molti problemi che i team hanno nella gestione delle proprie basi di codice o che fa lavorare insieme moduli disparati. Credo che vedremo una trasformazione piuttosto massiccia del modo in cui i widget vengono creati, per far sì che le cose funzionino più come lavori dgridi. Gran parte di DojoX verrà suddivisa in progetti separati con i loro cicli di rilascio. Da lì, diventa più facile spremere di più nel browser e ottenere di più dalle nostre app. Quindi inizieremo a vedere il supporto per funzionalità come l'API del file JavaScript HTML5 o i modi migliori per gestire l'archiviazione locale. Mi aspetto che il lavoro con gli archivi degli oggetti e le richieste gestirà senza problemi funzionalità locali, offline e remote, e tuttavia fornirà hook da personalizzare secondo necessità. Dojo ha sempre offerto funzionalità eccezionali, con il maggior numero possibile di punti di estensione per farlo funzionare facilmente nel modo in cui ne hai bisogno.

Penso inoltre che stiamo ancora imbattendo in molti limiti di prestazioni dei browser web.

Ad esempio, grafici vettoriali nativi o grafici con set di dati molto grandi si spostano anche nei browser più moderni, quindi mi aspetto che vedremo più correzioni per funzionare senza problemi con insiemi di dati più grandi.

Proprio come il paging virtuale ha funzionato bene con i componenti della griglia, abbiamo bisogno di più soluzioni ad altre limitazioni sulla piattaforma.


Il "repository plugin" ufficiale DojoX, DojoX, ospita numerosi sottoprogetti a livello aziendale, include dojox / cellulare, dojox / gfx, e altro ancora. Qual è il piano a lungo termine per DojoX? Rimarrà all'interno del repository Dojo ufficiale, o il team Dojo creerà la propria fucina di plugin?

Al momento disponiamo di un sistema di gestione dei pacchetti precoce, denominato cpm, con un elenco di pacchetti disponibili su http://packages.dojofoundation.org/. dgrid è il pacchetto Dojo più popolare disponibile oggi. DojoX sarà probabilmente suddiviso, con alcune funzionalità che si spostano in Dojo o Dijit e altre funzionalità, come gfx e charting, che diventano i loro pacchetti di livello superiore. Saranno comunque disponibili sotto la stessa licenza di Dojo, e le versioni principali avranno strumenti per combinare facilmente pacchetti popolari in build convenienti, ma avranno un tempo molto più facile da rilasciare più frequentemente di Dojo.


SitePen ha creato un incredibile widget di griglia per Dojo, chiamato dgrid. Qual è stata la motivazione per creare dgrid, e dove è dgrid nel suo ciclo di sviluppo?

Oggi è davvero più stabile di tutti i widget della griglia Dojo

Diversi anni fa, abbiamo portato il DataGrid originale in Dojo pagando in realtà gli sviluppatori del più popolare widget di terze parti per contribuire alla Dojo Foundation. SitePen, Mozilla e una manciata di altri hanno contribuito con denaro per far sì che ciò accada. Dopo anni di iterazioni e l'emergere di browser per dispositivi mobili, era giunto il momento di una nuova riscrittura da zero che avrebbe funzionato bene su dispositivi mobili e desktop, essere incredibilmente modulari e lavorare con tutte le ultime API e funzionalità. Questo è diventato dgrido. Anche se la chiamiamo ancora una versione beta, oggi è molto più stabile di tutti i widget della griglia Dojo e stiamo trovando un'ampia varietà di aziende che la stanno già utilizzando in produzione. Supportiamo anche le convenzioni di stile di ThemeRoller di jQuery, quindi è abbastanza facile usare dgrid all'interno di un'app jQuery senza nessun altro Dojo, se questa è la tua preferenza.


Infine, i progetti open source sono sempre alla ricerca di validi sviluppatori per aiutare. In che modo i lettori di Nettuts + possono iniziare a utilizzare Dojo e come possono iniziare a contribuire al progetto?

Inizia con la nostra eccellente serie di tutorial http://dojotoolkit.org/documentation/ che viene aggiornata per la versione 1.8. Iscriviti alla nostra mailing list e poni domande http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest. Prova le cose, dacci un feedback (su ogni pagina di documentazione, c'è un link per fornire un feedback su quella pagina Abbiamo risolto quasi 1000 problemi di documentazione segnalati in questo modo da solo quest'anno), bug di file o ticket, firmare un accordo di licenza di contributore online (http://dojofoundation.org/about/claForm) e inizia a contribuire nelle aree che ti interessano di più.

Abbiamo un incontro IRC settimanale su irc.freenode.net # dojo-meeting alle 14:00 ora del Pacifico il mercoledì, oppure ci puoi trovare su #dojo altre volte.

E naturalmente il blog SitePen, oi nostri workshop o servizi di supporto se hai bisogno di aiuto subito.


Il verdetto? Dylan, SitePen e, soprattutto, Dojo Toolkit, stanno facendo grandi cose nella comunità open source. È impossibile ignorare il set di funzionalità e lo slancio di Dojo Toolkit e gli sviluppatori che cercano di creare applicazioni web superpotenti non dovrebbero guardare oltre il Dojo Toolkit.