Master Dezvoltatori Dylan Schiemann (Dojo Creator)

Una dintre cele mai proeminente figuri din lumea JavaScript si open-source este Dylan Schiemann, si pentru un motiv bun. Dylan apare la conferințe din întreaga lume, susține proiecte open source cu Fundația Dojo și, cel mai important, conduce proiectul Dojo Toolkit. Am vorbit cu Dylan despre ceea ce face până astăzi, despre lansarea lui Dojo 1.8, despre ceea ce vedem în Dojo 2.0 și despre planurile sale pentru viitor.


Bună, Dylan. În decursul ultimului deceniu, ați avut o varietate de roluri în lumea dezvoltării web: fondator al Dojo Toolkit și cometD, speaker de conferințe, proponent open source etc. Ce concentrați în aceste zile?

Suntem gata să începem să lucrăm la 2.0, ceea ce va fi un efort major.

Bună, David, cea mai mare pasiune a mea este să construiesc lucruri, fie că sunt produse, proiecte, echipe, etc. Sunt curent proiectul Dojo Toolkit și președintele Fundației Dojo. În ultimii ani, nu scriam atât de multe coduri, dar în acest an am devenit din nou mai activ în ceea ce privește contribuțiile și utilizarea lui Dojo. Suntem foarte incantati de lansarea 1.8, cu nenumarate ore de efort in imbunatatirea bazei de cod si a documentatiei. Suntem gata să începem să lucrăm la 2.0, ceea ce va fi un efort major.

De asemenea, sunt CEO la SitePen, o companie care oferă servicii profesionale (dezvoltare, consultanță, instruire și suport) organizațiilor care construiesc aplicații Web bazate pe JavaScript și HTML5. SitePen are o echipă incredibil de puternică de experți Dojo și JavaScript și sunt umilită în fiecare zi prin munca făcută de echipele SitePen și Dojo. De asemenea, am anunțat de curând dgrid, o componentă incredibilă cu ușurință și flexibilă a grilei, care este construită pe Dojo și ușor de utilizat cu alte seturi de unelte. SitePen lucrează, de asemenea, la primul său produs specific industriei pe care îl vom anunța mai târziu în acest an.


Nu mulți dezvoltatori știu acest lucru, dar Dojo Toolkit a prezentat multe dintre utilitățile mai avansate pe care alte cadre le-au folosit astăzi, inclusiv Deferreds. Ce alte funcționalități avansate le-a lăudat Dojo înainte de alte cadre?

Am avut amânări și promisiuni de mai mulți ani.

Dojo are o reputație de a fi în fața curbei în încercarea de lucruri noi. După cum ați menționat, am avut Deferreds și promisiuni de mai mulți ani. Suportul pentru grafica vectorială nativă datează din 2005. Conceptele de programare orientate spre aspect, pubsub-ul clientului, stocarea în timp real, offline și local, istoricul browser-ului, legăturile de stocare a datelor pentru widget-uri și multe altele datează din versiunile Dojo 2005 sau 2006. Mai recent, eforturile noastre specifice pentru dispozitive mobile au subliniat faptul că împing cu adevărat capabilități mai mari la dispozitivele mobile, cum ar fi rețelele, chat-ul în timp real, diagrame, gabarite, interfețe 3D și multe altele.


Dojo Toolkit pare a fi cea mai puternică dintre librăriile JavaScript; de ce nu este mai popular în rândul maselor de dezvoltare front-end? Curba de învățare a lui Dojo este un mit?

Dojo a fost concentrat de la începuturile sale pe împingerea limitelor web deschis, prin furnizarea unui set complet, dar modular de instrumente pentru a fi productiv cu JavaScript. Am avut dureri tot mai mari pe parcursul anului. De exemplu, a existat o perioadă în care configurația implicită Dojo a fost foarte lentă pentru a fi încărcată, fără pași simpli pentru a face mai rapid.

În acest moment, suntem în cea mai bună poziție în ceea ce privește performanța, documentația solidă și ușurința de a începe.

Este cu siguranță mai ușor să înveți ceva mai mic decât ceva care face mai mult, dar utilizatorii nostri avid sunt rapid să sublinieze că un pic mai mult de învățare în față le salvează nenumărate ore pentru lucrurile pe care Dojo le face ușor. Când am început Dojo, ne-am imaginat o comunitate JavaScript în care dezvoltatorii ar putea să lucreze împreună și să nu reinventeze în mod constant roata. Nu a fost niciodată un război al uneltelor, a fost vorba despre crearea celui mai bun set de instrumente posibil și de a lucra într-un ecosistem foarte deschis pe care întreprinderile ar putea să aibă încredere.


În ultimele ediții ale Dojo Toolkit, au fost adăugate sau îmbunătățite numeroase caracteristici: noul încărcător AMD, dojo / aspect și dojo / pe pentru a separa funcția și ascultarea evenimentului nativ, dojo / touch pentru ascultarea de evenimente mobile etc. Ce caracteristici noi sunt disponibile în Dojo 1.8?

1.8 are un nou Ajax API, dojo / cerere, care simplifică și oferă extensii pentru tot ceea ce îmi pot imagina cu o cerere HTTP de la un browser sau dintr-o aplicație Node.js. De asemenea, am introdus dojo / Router, pentru a simplifica rutarea între vizualizări. Pentru versiunea 1.8, funcționează cu modificările în hash-ul browserului pentru compatibilitatea cu browserele acceptate în prezent și, pentru 2.0, va funcționa cu API-ul istoric HTML5.

dojox / mobil a primit extensii extensii API și 26 de widget-uri noi. Există un impresionant nou widget pentru Calendar, și, bineînțeles, există și dgrid. Parserul nostru și promisiunile implementărilor au primit, de asemenea, îmbunătățiri ample. Această versiune are sute de rafinări și corecții de erori care fac ca aceasta să fie o versiune foarte solidă și stabilă, precum și suport pentru platforme non-browser, cum ar fi Node.js. Desigur, documentația, în special ghidul de vizualizare API și ghidul de referință, sunt impresionante.


Performanța este întotdeauna un factor important atunci când mențineți un set de instrumente JavaScript. Ce a făcut echipa Dojo în zona de performanță pentru versiunea 1.8?

Am muncit din greu pentru a rafina modulele care nu au fost la fel de repede cum ar fi acestea și, ori de câte ori a fost posibil, am redus dependențele modulelor, astfel încât acestea necesită numai codul de care au nevoie. De asemenea, am îmbunătățit instrumentele și documentele de construcție, astfel încât să puteți crea propriile aplicații optimizate.


Cu crearea lui dojo / nod, ce rol vedeți pe Dojo pe partea de server?

Dacă lucrezi Dojo pe partea de server face multe lucruri posibile ...

Fundația Dojo are deja un cadru JavaScript destul de impresionant, numit Persevere, care, pentru mulți, este ca Dojo pentru server, cu suport pentru magazine de obiecte, servicii RESTful, în timp real și multe altele. Dar lucrul cu Dojo pe partea de server face multe lucruri posibile, cum ar fi testarea sau pre-redarea widget-urilor intr-o stare initializata pe partea de server inainte de redare catre client, ceea ce este un recent proiect GitHub.


Dojo a acumulat un pic de cod peste durata de viață 1.x. Cum reușește echipa Dojo să mențină și module moștenite?

Mii de ore de contribuții evaluate de comunitate și un proces deschis și invitativ de implicare și contribuție. De asemenea, companii precum SitePen și IBM vor face remedii pe baza cererilor urgente ale clienților lor. Am fost mai bine această versiune cu stabilirea de obiective, și de a implica mai multe persoane, care a fost foarte răcoritoare. Avem mulți contribuitori pe termen lung, dar și o mulțime de oameni noi care au făcut 1,8 uimitoare.


În acest moment, este sigur să presupunem că Dojo a început tranziția spre 2.0. Modulele au fost scrise în format AMD, a fost construit un nou încărcător de asincron și au fost consolidate unele dintre metodele IO vechi (io / iframe, xhr etc.). Puteți sugera ce vom vedea în Dojo 2.0?

Vom începe prin curățarea mai departe a API-urilor noastre, eliminând suportul pentru lucruri care au fost depreciate pentru mai multe versiuni și doar ajungeți la un punct de pornire simplificat. De asemenea, vom analiza cu exactitate browserele și platformele pe care ar trebui să le sprijinim ... este mult mai ușor acum cu detectarea caracteristicilor has.js încorporate și este foarte ușor să excludeți caracteristicile de la construirile optimizate, dar totuși dorim să simplificăm întreținerea setului de instrumente.

Practic, marile trăsături ale lui Dojo vor fi în continuare acolo, dar așteptăm multe progrese noi în sprijinul browserelor moderne și mobile, precum și o refacere masivă a API vechi sau vechi.


Dojo este, de obicei, pe marginea sângerare a progreselor din partea clientului, Deferreds și Promises fiind exemple. Ce vedeți pe calea conductei și cum planifică Dojo să lucreze cu aceste tehnologii?

O mare parte din DojoX vor fi împărțite în proiecte separate cu propriile cicluri de eliberare.

Cred că o mare parte din ceea ce am făcut recent a fost în jurul productivității dezvoltatorilor și a mentenabilității bazei dvs. de cod. De exemplu, AMD rezolvă multe probleme pe care le au echipele cu gestionarea bazelor lor de cod sau pentru crearea unor module disparate care să funcționeze împreună. Cred că vom vedea o transformare destul de masivă a modului în care widget-urile se creează, pentru ca lucrurile să funcționeze mai mult ca lucrările dgrid. O mare parte din DojoX vor fi împărțite în proiecte separate cu propriile cicluri de eliberare. De acolo, devine mai ușor să strângeți mai mult în browser și să obțineți mai mult din aplicațiile noastre. Deci, vom începe să vedem suport pentru funcții precum API-ul fișierului JavaScript HTML5 sau modalități mai bune de a gestiona spațiul de stocare local. Mă aștept ca lucrul cu magazinele de obiecte și cererile să se ocupe perfect de capacitățile locale, offline și de la distanță, și totuși să ofere cârlige pentru a personaliza după cum este necesar. Dojo a fost întotdeauna cu privire la furnizarea de caracteristici extraordinare, cu cât mai multe puncte de extensie posibil pentru a face ușor să funcționeze așa cum aveți nevoie.

De asemenea, cred că încă mai avem multe limitări de performanță ale browserelor web.

De exemplu, graficele vectoriale native sau graficele cu seturi de date foarte mari accesează cu crawlere chiar și cele mai moderne browsere, așa că mă aștept să vedem mai multe soluții pentru a funcționa fără probleme cu seturi de date mai mari.

La fel ca virtual paging-ul a funcționat bine cu componentele rețelei, avem nevoie de mai multe soluții la alte limitări ale platformei.


Portofoliul oficial Dojo, DojoX, găzduiește numeroase subproiecte la nivel de întreprindere, include dojox / mobil, dojox / GFX, și altele. Care este planul pe termen lung pentru DojoX? Va rămâne în depozitul oficial Dojo, sau echipa Dojo va crea propriul plug-in forjat?

În prezent, avem un sistem de gestionare rapidă a pachetelor, numit cpm, cu o listă de pachete disponibile la http://packages.dojofoundation.org/. dgrid este cel mai popular pachet Dojo disponibil astăzi. DojoX va fi probabil împărțit, cu unele caracteristici care se mută în Dojo sau Dijit, și alte caracteristici, cum ar fi gfx și grafice, devenind propriile lor pachete de nivel superior. Acestea vor fi în continuare disponibile sub aceleași licențe ca și Dojo, iar versiunile importante vor avea instrumente care să combine cu ușurință pachetele populare în versiuni convenabile, dar vor avea un timp mult mai ușor de eliberat mai des decât Dojo.


SitePen a creat un widget incredibil de grid pentru Dojo, numit dgrid. Care a fost motivația pentru crearea dgrid, și unde este dgrid în dezvoltarea lui lifcycle?

Este într-adevăr mai stabilă decât oricare dintre widget-urile de la Dojo de astăzi

Cu câțiva ani în urmă, am adus originalul DataGrid în Dojo plătindu-i, de fapt, dezvoltatorilor celui mai popular widget terță parte pentru ao contribui la Fundația Dojo. SitePen, Mozilla și o mână de alții au contribuit cu numerar pentru a face acest lucru să se întâmple. După ani de iterații și apariția de browsere mobile, a venit vremea pentru o rescriere proaspătă, de la sol, care ar funcționa bine pe mobile și pe desktop, va fi incredibil de modulară și va funcționa cu toate cele mai recente API-uri și caracteristici. Acest lucru a devenit dgrid. În timp ce o numim în continuare beta, este mult mai stabilă decât oricare dintre widget-urile de la Dojo, și găsim o mare varietate de companii care o folosesc deja în producție. De asemenea, acceptăm convențiile stilului jQuery ThemeRoller, deci este destul de ușor de utilizat dgrid în interiorul unei aplicații jQuery fără alte Dojo, dacă aceasta este preferința dvs..


În cele din urmă, proiectele open source caută mereu dezvoltatori buni pentru a ajuta. Cum pot citi cititorii Nettuts + să înceapă să utilizeze Dojo și cum pot contribui la proiect?

Începeți cu seria noastră de tutori excelent http://dojotoolkit.org/documentation/, care este actualizată pentru 1.8 acum. Înscrieți-vă pentru lista noastră de discuții și adresați-vă întrebărilor http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest. Încercați lucrurile, oferiți-ne feedback (pe fiecare pagină de documentație, există un link pentru a oferi feedback pe acea pagină, am redactat aproape 1000 de probleme de documentare raportate în acest fel singur în acest an), fișiere sau bilete, (http://dojofoundation.org/about/claForm) și începeți să contribuiți în domeniile care vă interesează cel mai mult.

Avem o întâlnire săptămânală IRC pe irc.freenode.net # dojo-întâlnire la ora 14:00 ora Pacificului miercurea, sau ne puteți găsi pe #dojo în alte momente.

Și, bineînțeles, blogul SitePen sau atelierele noastre sau serviciile de asistență dacă aveți nevoie de ajutor imediat.


Verdictul? Dylan, SitePen și, cel mai important, Dojo Toolkit, fac lucruri mari în comunitatea open source. Setul de caracteristici Dojo Toolkit și impulsul sunt imposibil de ignorat, iar dezvoltatorii care doresc să creeze aplicații web super-alimentate nu ar trebui să caute mai departe decât Dojo Toolkit.

Cod