Huvudutvecklare Dylan Schiemann (Dojo Creator)

En av de mest framträdande siffrorna i JavaScript och open-source-världen är Dylan Schiemann, och med god anledning. Dylan visas på konferenser över hela världen, stöder open source-projekt med Dojo Foundation, och viktigast av allt leder projektet Dojo Toolkit. Jag pratade med Dylan om vad han står inför idag, utgivandet av Dojo 1.8, vad vi kan se i Dojo 2.0 och vad hans planer är för framtiden.


Hej dylan Under det senaste decenniet har du haft en rad roller i webbutvecklingsvärlden: grundare av Dojo Toolkit och cometD, konferenshögtalare, open source-förespråkare etc. Vad fokuserar du på dessa dagar?

Vi är redo att börja arbeta på 2,0, vilket kommer att vara en stor insats.

Hej, David, min största passion är att bygga saker, vare sig det är produkter, projekt, lag osv. Jag är nuvarande Dojo Toolkit-projektledare och president för Dojo-stiftelsen. Under senare år skrev jag inte så mycket kod, men i år har jag blivit mer aktiv igen för att bidra till och använda Dojo. Vi är mycket glada över 1.8-utgåvan, med otaliga ansträngningar för att förbättra kodbasen och dokumentationen. Vi är redo att börja arbeta på 2,0, vilket kommer att vara en stor insats.

Jag är också VD på SitePen, ett företag som erbjuder professionella tjänster (utveckling, rådgivning, utbildning och support) till organisationer som bygger bra JavaScript och HTML5-baserade webbapps. SitePen har ett otroligt starkt team av Dojo- och JavaScript-experter, och jag är ödmjuk varje dag av det arbete som utförs av SitePen och Dojo-lagen. Vi meddelade också nyligen dgrid, en otrolig öppen källkod lätt, flexibel nätkomponent som är byggd på Dojo och lätt att använda med andra verktygssatser. SitePen arbetar också med sin första branschspecifika produkt som vi kommer att meddela senare i år.


Det är inte många utvecklare som vet det, men Dojo Toolkit har presenterat många av de mer avancerade verktyg som andra ramverk har använt idag, inklusive uppskjutna. Vilken annan avancerad funktionalitet har Dojo prydat inför andra ramar?

Vi har haft uppskjutningar och löften i flera år.

Dojo har rykte för att vara före kurvan för att försöka nya saker. Som du nämnde har vi haft uppskjutningar och löften i flera år. Vårt stöd för inbyggd vektorgrafik går tillbaka till 2005. Aspektorienterade programmeringskoncept, pubsub på klientsidan, realtid, offline och lokal lagring, webbläsarhistorik, datalagringsbindningar för widgets och mer alla går tillbaka till versioner av Dojo från 2005 eller 2006. På senare tid har våra mobilspecifika insatser understrukit att verkligen driva rikare möjligheter till mobila enheter, såsom nät, chat i realtid, diagram, mätare, 3-D-gränssnitt och mer.


Dojo Toolkit verkar vara den mest kraftfulla av JavaScript-biblioteken; varför är det inte mer populärt bland de främsta utvecklingsmassorna? Är Dojos "stora" inlärningskurva en myt?

Dojo har varit fokuserat sedan starten på att driva gränserna för den öppna webben, genom att tillhandahålla en komplett men ändå modulär verktygssats för att vara produktiv med JavaScript. Vi har haft växande smärtor ibland över året. Det var till exempel en tid då standard Dojo-konfigurationen var väldigt långsam att ladda, utan klara steg för att göra det snabbare.

Vid den här tiden har vi någonsin haft det bästa stället för prestanda, solid dokumentation och enkel att komma igång.

Det är verkligen lättare att lära sig något som är mindre än någonting som gör mer, men våra ivriga användare är snabbt påpekade att lite mer lärande framåt sparar dem otaliga timmar för saker som Dojo gör enkelt. När vi började Dojo föreställde vi oss en JavaScript-gemenskap där utvecklare kunde arbeta tillsammans och inte ständigt återuppfinna hjulet. Det handlade aldrig om ett verktygskrig, det handlade om att skapa det bästa verktyget som möjligt och arbetade i ett mycket öppet ekosystem som företagen också kunde lita på.


Under de senaste utgåvorna av Dojo Toolkit har många funktioner lagts till eller förbättrats: den nya AMD-lastaren, dojo / aspekt och dojo / på Att separera funktion och inbyggd händelse att lyssna, dojo / beröring för mobil händelse lyssna, etc. Vilka nya funktioner finns tillgängliga i Dojo 1.8?

1.8 har ett nytt Ajax API, dojo / förfrågan, vilket förenklar och ger förlängningar för stort sett allt jag kan tänka mig att göra med en HTTP-begäran från en webbläsare eller från en Node.js-applikation. Vi har också introducerat dojo / Router, för att förenkla routing mellan visningar. För 1.8 fungerar det med ändringar i webbläsarens hash för kompatibilitet med nuvarande webbläsare, och för 2.0 kommer den att fungera med API för HTML5-historia.

dojox / mobil har fått omfattande API-förfiningar och 26 nya widgets. Det finns en imponerande ny fullständig kalender widget, och det finns naturligtvis dgrid. Våra parser och löften implementeringar har också fått omfattande förbättringar. Den här utgåvan har hundratals förbättringar och buggfixar som gör det till en väldigt solid och stabil utgåva, samt stöd för plattformar utan webbläsare, som Node.js. Och naturligtvis är dokumentationen, i synnerhet API Viewer och Reference Guide, imponerande.


Prestanda är alltid en viktig faktor när du underhåller en JavaScript-verktygssats. Vad har Dojo-laget gjort i prestationsområdet för 1,8-utgåvan?

Vi har arbetat hårt för att förfina moduler som inte var så snabba som de borde vara, och där det är möjligt har vi minskat beroende av moduler så att de bara behöver kod som de behöver. Vi har också arbetat för att förbättra våra byggverktyg och dokumentation så att det är enkelt att skapa egna optimerade applikationer.


Med skapandet av dojo / nod, vilken roll ser du Dojo har på serverns sida?

Att ha Dojo arbete på servern gör många saker möjligt ...

Dojo-stiftelsen har redan en ganska imponerande JavaScript-ram för server-sidan, kallad Persevere, som för många är som Dojo för serverns sida, med stöd för objektaffärer, RESTful tjänster, realtid och mer. Men att ha Dojo-arbete på serverns sida gör det möjligt att göra många saker, t ex testning eller förhandsgranskning av widgets till ett initialiserat tillstånd på serverns sida innan de görs till kunden, vilket är ett nyligen GitHub-projekt.


Dojo har ackumulerat ganska lite kod över 1.x livslängden. Hur lyckas Dojo-teamet att behålla ännu äldre moduler?

Tusentals timmar av värderade bidrag från samhället, och en öppen och inbjudande process för att engagera sig och bidra. Företag som SitePen och IBM kommer också att göra korrigeringar baserade på brådskande förfrågningar från sina kunder. Vi har varit bättre med den här utgåvan med att ställa in mål och få fler involverade, vilket har blivit väldigt uppfriskande. Vi har många långa bidragsgivare, men också många nya människor som har gjort 1,8 fantastiska.


Vid denna tidpunkt är det säkert att anta att Dojo har börjat övergången till 2,0. Moduler har skrivits i AMD-format, en ny async-loader har byggts, och några av de gamla IO-metoderna (io / iframe, xhr, etc.) har konsoliderats. Kan du ange vad vi ska se i Dojo 2.0?

Vi börjar med att städa upp våra API: er ytterligare, ta bort stöd för saker som har avlägsnats för flera utgåvor och bara komma till en förenklad utgångspunkt. Vi ska också ta en titt på vilka webbläsare och plattformar vi borde stödja ... det är mycket lättare nu med has.js-funktionen detektering inbyggd och det är verkligen enkelt att utesluta funktioner från dina optimerade byggnader, men vi vill fortfarande förenkla underhåll av verktygssatsen också.

I grund och botten kommer de stora funktionerna i Dojo fortfarande att finnas där, men vi förväntar oss många nya framsteg för att stödja moderna och mobila webbläsare, samt en massiv refactoring av gamla eller gamla API.


Dojo är vanligtvis på den blödande kanten av kundsidans framsteg, uppskjutna och löften som exempel. Vad ser du ner på rörledningen, och hur planerar Dojo att arbeta med den här tekniken?

Mycket av DojoX delas upp i separata projekt med egna frigöringscykler.

Jag tror att mycket av det vi har gjort nyligen har funnits kring produktiviteten och hållbarheten hos din kodbas. AMD löser till exempel många problem som lag har med att hantera sina kodbaser, eller att olika moduler fungerar tillsammans. Jag tror att vi får se en ganska stor omvandling av hur widgets skapas, för att få saker att fungera mer som dgrid works. Mycket av DojoX delas upp i separata projekt med egna frigöringscykler. Därifrån blir det lättare att klämma mer in i webbläsaren och få mer från våra appar. Så vi börjar se stöd för funktioner som HTML5 JavaScript File API, eller bättre sätt att hantera lokal lagring. Jag förväntar mig att arbeta med objektaffärer och förfrågningar kommer att hantera lokalt, offline och fjärranslutningsfunktioner, och ändå ge krokar anpassning efter behov. Dojo har alltid handlat om att ge bra funktioner, med så många förlängningspunkter som möjligt för att enkelt få det att fungera som du behöver.

Jag tror också att vi fortfarande använder många prestanda begränsningar av webbläsare.

Till exempel krypterar inbyggd vektorgrafik eller diagram med mycket stora dataset på även de mest moderna webbläsarna, så jag förväntar mig att vi får se fler korrigeringar för att fungera sömlöst med större dataset.

Såsom virtuell personsökning har fungerat bra med nätkomponenter behöver vi fler lösningar till andra begränsningar på plattformen.


Dojos officiella "plugin repository", DojoX, är värd för många företagsnivåprojekt, inkluderar dojox / mobil, dojox / gfx, och mer. Vad är den långsiktiga planen för DojoX? Kommer det att ligga inom det officiella Dojo-arkivet, eller kommer Dojo-laget att skapa en egen plugin-smedja?

Vi har för närvarande ett tidigt pakethanteringssystem, kallat cpm, med en lista över tillgängliga paket på http://packages.dojofoundation.org/. dgrid är det mest populära Dojo-paketet som finns tillgängligt idag. DojoX kommer sannolikt att delas upp, med vissa funktioner som går in i Dojo eller Dijit, och andra funktioner, som gfx och kartläggning, blir deras egna toppnivåpaket. De kommer fortfarande att finnas tillgängliga under samma licens som Dojo, och stora utgåvor kommer att ha verktyg för att enkelt kombinera populära paket till praktiska byggnader, men de kommer att få en mycket lättare tid att släppa oftare än Dojo.


SitePen har skapat en otrolig grid widget för Dojo, kallad dgrid. Vad var motivationen för att skapa dgrid, och var är dgrid i sin utvecklingslivcykel?

Det är verkligen stabilare än vad som helst av Dojo grid widgets idag

För flera år sedan tog vi den ursprungliga DataGrid in i Dojo genom att faktiskt betala utvecklarna av den populäraste tredjeparts widgeten för att bidra till Dojo Foundation. SitePen, Mozilla och en handfull andra bidrog med pengar för att detta ska ske. Efter flera år av iterationer och framkomsten av mobila webbläsare var det dags för en fräsch, från grunden omskrivning som skulle fungera bra på mobil och skrivbord, vara otroligt modulär och arbeta med alla de senaste API: erna och funktionerna. Detta blev dgrid. Medan vi fortfarande kallar det för en beta, är det verkligen stabilare än något av Dojo-gridverktygen idag, och vi hittar ett brett utbud av företag som redan använder det i produktion. Vi stöder också jQuery's ThemeRoller-stylingkonventioner, så det är ganska enkelt att använda dgrid i en jQuery-app utan någon annan Dojo, om det är din preferens.


Slutligen letar öppna källprojekt alltid efter bra utvecklare att hjälpa till. Hur kan Webuts + -läsare börja använda Dojo, och hur kan de börja bidra till projektet?

Börja med vår utmärkta handledningsserie http://dojotoolkit.org/documentation/ som uppdateras för 1.8 nu. Anmäl dig till vår adresslista och fråga frågor http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest. Prova saker, ge oss feedback (på varje dokumentationssida finns det en länk för att ge feedback på den sidan. Vi har fastställt nästan 1000 dokumentationsproblem som rapporterats så här ensam i år), filbuggar eller biljetter, signera ett bidragslicensavtal på nätet (http://dojofoundation.org/about/claForm), och börja bidra till områden som intresserar dig mest.

Vi har ett veckovis IRC-möte på irc.freenode.net # dojo-möte kl 14:00 på Pacific på onsdagar, eller du kan hitta oss på #dojo vid andra tillfällen.

Och naturligtvis SitePen-bloggen, eller våra workshops eller supporttjänster om du behöver hjälp direkt.


Domen? Dylan, SitePen, och viktigast av allt, Dojo Toolkit, gör stora saker i open source-samhället. Dojo Toolkit särdrag och momentum är omöjliga att ignorera, och utvecklare som vill skapa superdrivna webbapps bör inte se längre ut än Dojo Toolkit.