Masterutviklere Dylan Schiemann (Dojo Creator)

En av de mest fremtredende tallene i JavaScript og open-source verden er Dylan Schiemann, og med god grunn. Dylan vises på konferanser over hele verden, støtter open source-prosjekter med Dojo Foundation, og viktigst av alt, leder Dojo Toolkit-prosjektet. Jeg snakket med Dylan om hva han har til i dag, utgivelsen av Dojo 1.8, hva vi kan se i Dojo 2.0, og hva hans planer er for fremtiden.


Hei, Dylan. I løpet av det siste tiåret har du hatt en rekke roller i webutviklingsverdenen: grunnleggeren av Dojo Toolkit og cometD, konferansens høyttaler, åpen kildefordeler osv. Hva fokuserer du i disse dager??

Vi er klare til å begynne å jobbe på 2,0, som vil være en stor innsats.

Hei, David, min største lidenskap er å bygge ting, enten det er produkter, prosjekter, lag, etc. Jeg er nåværende Dojo Toolkit prosjektledelsen og president for Dojo-stiftelsen. I de senere år har jeg ikke skrevet så mye kode, men i år har jeg blitt mer aktiv igjen i å bidra til og bruke Dojo. Vi er veldig glade for 1.8-utgivelsen, med utallige arbeidstimer til å forbedre kodebase og dokumentasjon. Vi er klare til å begynne å jobbe på 2,0, som vil være en stor innsats.

Jeg er også administrerende direktør på SitePen, et selskap som tilbyr profesjonelle tjenester (utvikling, rådgivning, opplæring og support) til organisasjoner som bygger gode JavaScript- og HTML5-baserte webapper. SitePen har et utrolig sterkt team av Dojo- og JavaScript-eksperter, og jeg blir ydmyket hver dag av arbeidet fra SitePen og Dojo-teamene. Vi har også nylig annonsert dgrid, en utrolig åpen kildekode lettvekt, fleksibel nettkomponent som er bygget på Dojo og enkel å bruke med andre toolkits. SitePen jobber også med sitt første bransjespesifikke produkt som vi vil kunngjøre senere i år.


Ikke mange utviklere vet dette, men Dojo Toolkit har omtalt mange av de mer avanserte verktøyene som andre rammer har brukt i dag, inkludert utsatt. Hvilken annen avansert funksjonalitet har Dojo skryt for andre rammer?

Vi har hatt Utsettelser og løfter i flere år.

Dojo har et rykte for å være foran kurven i å prøve nye ting. Som du har nevnt, har vi hatt utsettelser og løfter i flere år. Vår støtte til innfødt vektorgrafikk går tilbake til 2005. Aspektorienterte programmeringsbegreper, klient-side pubsub, sanntid, offline og lokal lagring, nettleserhistorikk, databutikkbinder for widgets og mer alle går tilbake til versjoner av Dojo fra 2005 eller 2006. I nyere tid har vår mobilspesifikke innsats lagt vekt på å skape rikere muligheter til mobile enheter, for eksempel nett, chat i sanntid, diagrammer, målinger, 3-D-grensesnitt og mer.


Dojo Toolkit synes å være den kraftigste av JavaScript-bibliotekene; hvorfor er det ikke mer populært blant utviklingsmassene i fronten? Er Dojos "store" læringskurve en myte?

Dojo har vært fokusert siden starten på å skyve grensene for den åpne nettet, ved å tilby en komplett, men modulær verktøykasse for å være produktiv med JavaScript. Vi har hatt økende smerter til tider i løpet av året. For eksempel var det en tid da standard Dojo-konfigurasjonen var veldig sakte å laste, uten klare skritt for å gjøre det raskere.

På dette tidspunktet er vi i beste posisjon noensinne når det gjelder ytelse, solid dokumentasjon og enkel å komme i gang.

Det er absolutt lettere å lære noe som er mindre enn noe som gjør mer, men våre ivrige brukere er raske på å påpeke at litt mer læring opp foran sparer dem utallige timer for ting som Dojo gjør det enkelt. Da vi startet Dojo, forestilte vi et JavaScript-fellesskap hvor utviklere kunne jobbe sammen og ikke gjenoppfinne hjulet hele tiden. Det handlet aldri om en verktøyskrig, det handlet om å skape det beste verktøysettet som mulig, og jobbet i et veldig åpent økosystem som bedrifter også kunne stole på.


I løpet av de siste utgivelsene av Dojo Toolkit har mange funksjoner blitt lagt til eller forbedret: den nye AMD-lasteren, dojo / aspektet og dojo / på å skille funksjon og innfødt hendelse lytte, dojo / berørings for mobilhendelse lytter, etc. Hvilke nye funksjoner er tilgjengelige i Dojo 1.8?

1.8 har en ny Ajax API, dojo / forespørsel, som forenkler og gir utvidelser til stort sett alt jeg kan forestille meg å gjøre med en HTTP-forespørsel fra en nettleser, eller fra en Node.js-applikasjon. Vi har også introdusert dojo / Router, for å forenkle ruting mellom visninger. For 1.8 fungerer det med endringer i nettleserens hash for kompatibilitet med støttede nettlesere, og for 2.0 vil den fungere sammen med HTML5-historikk-API.

dojox / mobil har mottatt omfattende API-forbedringer og 26 nye widgets. Det er en imponerende ny full kalender widget, og selvfølgelig er det dgrid. Våre parser og løfter implementeringer har også fått omfattende forbedringer. Denne utgivelsen har hundrevis av raffinementer og feilrettinger som gjør dette til en veldig solid og stabil utgave, samt støtte for ikke-nettleserplattformer, som Node.js. Og selvfølgelig er dokumentasjonen, spesielt API Viewer og Reference Guide, imponerende.


Ytelse er alltid en viktig faktor når du opprettholder et JavaScript-verktøy. Hva har Dojo-laget gjort i prestasjonsområdet for 1,8-utgaven?

Vi har jobbet hardt for å finjustere moduler som ikke var så fort som de burde være, og hvor det er mulig, har vi redusert avhengighetene til moduler, slik at de bare trenger kode de trenger. Vi har også jobbet for å forbedre våre byggverktøy og dokumentasjon, slik at det er enkelt å lage dine egne optimaliserte applikasjoner.


Med etableringen av dojo / noden, hvilken rolle ser du Dojo har på server siden?

Å ha Dojo arbeid på server-siden gjør mange ting mulig ...

Dojo-stiftelsen har allerede en ganske imponerende server-side JavaScript-rammeverk, kalt Persevere, som for mange er som Dojo for server-siden, med støtte for objektbutikker, RESTful tjenester, sanntid og mer. Men å ha Dojo-arbeid på server-siden gjør mange ting mulig, for eksempel testing eller forhåndsvisning av widgets til en initialisert tilstand på server-siden før de gjøres til klienten, som er et nylig GitHub-prosjekt.


Dojo har samlet ganske mye kode over 1.x levetid. Hvordan klarer Dojo-teamet å opprettholde selv eldre moduler?

Tusenvis av timer med verdifulle bidrag fra samfunnet, og en åpen og innbydende prosess for å bli involvert og bidra. Også selskaper som SitePen og IBM vil foreta reparasjoner basert på haster forespørsler fra sine kunder. Vi har vært bedre denne utgivelsen med å sette mål, og få flere involvert, noe som har vært veldig forfriskende. Vi har mange langsiktige bidragsytere, men også mange nye mennesker som har gjort 1,8 fantastisk.


På dette punktet er det trygt å anta at Dojo har startet overgangen til 2.0. Modulene er skrevet i AMD-format, en ny async-loader er bygget, og noen av de eldre IO-metodene (io / iframe, xhr, etc.) er blitt konsolidert. Kan du hint på hva vi vil se i Dojo 2.0?

Vi starter med å rydde opp våre APIer ytterligere, fjerne støtte for ting som har blitt avskrevet for flere utgivelser, og bare få et forenklet startpunkt. Vi vil også ta en hard titt på hvilke nettlesere og plattformer vi burde støtte ... det er mye enklere nå med has.js-funksjonen deteksjon innebygd, og det er veldig enkelt å ekskludere funksjoner fra dine optimerte bygg, men vi vil fortsatt forenkle vedlikehold av verktøyet også.

I utgangspunktet vil de store funksjonene til Dojo fortsatt være der, men vi forventer mange nye fremskritt for å støtte moderne og mobile nettlesere, samt en massiv refactoring av gamle eller foreldede APIer.


Dojo er vanligvis på blødende kanten av klientsiden fremskritt, utsatt og løfter som eksempler. Hva ser du ned i rørledningen, og hvordan planlegger Dojo å jobbe med disse teknologiene?

Mye av DojoX vil bli splittet i separate prosjekter med egne utgivelsessykluser.

Jeg tror at mye av det vi har gjort nylig har vært rundt utviklerens produktivitet og vedlikehold av kodebase. For eksempel løser AMD mange problemer lagene har med å administrere sine kodebaser, eller at ulike moduler fungerer sammen. Jeg tror vi vil se en ganske enorm forandring av måten widgets blir opprettet, for å få ting til å fungere mer som dgrid-verk. Mye av DojoX vil bli splittet i separate prosjekter med egne utgivelsessykluser. Derfra blir det lettere å presse mer inn i nettleseren, og få mer fra appene våre. Så vi begynner å se støtte for funksjoner som HTML5 JavaScript File API, eller bedre måter å administrere lokal lagring på. Jeg forventer at det å arbeide med objektforretninger og forespørsler vil håndtere lokalt, offline og eksternt evner, og likevel gi kroker til å tilpasse etter behov. Dojo har alltid vært i ferd med å gi gode funksjoner, med så mange utvidelsespunkter som mulig for å få det til å fungere slik du trenger det.

Jeg tror også at vi fortsatt kjører inn i mange ytelsesbegrensninger av nettlesere.

For eksempel kryper innfødt vektorgrafikk eller diagrammer med svært store datasett på selv de mest moderne nettleserne, så jeg forventer at vi får se flere reparasjoner for å fungere sømløst med større datasett.

I likhet med virtuell personsøking har det vært bra med gridkomponenter, trenger vi flere løsninger til andre begrensninger på plattformen.


Dojos offisielle "plugin repository", DojoX, er vert for en rekke underprosjekter på bedriftenivå, inkluderer dojox / mobil, dojox / gfx, og mer. Hva er den langsiktige planen for DojoX? Blir det innenfor det offisielle Dojo-depotet, eller vil Dojo-teamet lage sin egen plugin smidighet?

Vi har for øyeblikket et tidlig pakkehåndteringssystem, kalt cpm, med en liste over tilgjengelige pakker på http://packages.dojofoundation.org/. dgrid er den mest populære Dojo-pakken tilgjengelig i dag. DojoX vil sannsynligvis bli delt, med noen funksjoner som går inn i Dojo eller Dijit, og andre funksjoner, som gfx og kartlegging, blir deres egne toppnivåpakker. De vil fortsatt være tilgjengelige under samme lisens som Dojo, og store utgivelser vil ha verktøy for enkelt å kombinere populære pakker til praktiske bygg, men de vil få en mye enklere tid å slippe oftere enn Dojo.


SitePen har laget en utrolig grid-widget for Dojo, kalt dgrid. Hva var motivasjonen for å skape dgrid, og hvor er dgrid i utviklingslivet?

Det er virkelig mer stabilt enn noen av Dojo grid widgets i dag

For flere år siden tok vi den opprinnelige DataGrid til Dojo ved å betale utviklerne av den mest populære tredjeparts widgeten for å bidra til Dojo-stiftelsen. SitePen, Mozilla, og en håndfull andre bidro med penger for å få dette til å skje. Etter flere år med iterasjoner, og fremkomsten av mobile nettlesere, var det tid for en frisk, fra grunnen omskriving som ville fungere godt på mobil og skrivebord, være utrolig modulær, og jobbe med alle de nyeste APIene og funksjonene. Dette ble dgrid. Mens vi fremdeles kaller det en beta, er det virkelig stabilere enn noen av Dojo-grid-modulene i dag, og vi finner et bredt utvalg av selskaper som allerede bruker det i produksjon. Vi støtter også jQuery's ThemeRoller-stilkonvensjoner, så det er ganske enkelt å bruke dgrid i en jQuery-app uten noen andre Dojo, hvis det er din preferanse.


Til slutt, åpen kildekode prosjekter er alltid på jakt etter gode utviklere for å hjelpe. Hvordan kan Nettuts + lesere begynne å bruke Dojo, og hvordan kan de begynne å bidra til prosjektet?

Start med vår gode opplæringsserie http://dojotoolkit.org/documentation/ som blir oppdatert for 1.8 nå. Registrer deg på vår mailingliste og still spørsmål http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest. Prøv ut ting, gi oss tilbakemelding (på hver dokumentasjonsside er det en link for å gi tilbakemelding på den siden. Vi har løst nesten 1000 dokumentasjonsproblemer som er rapportert på denne måten alene i år), filbugs eller billetter, signere en lisensavtale for innhold på nettet (http://dojofoundation.org/about/claForm), og begynn å bidra på områder som interesserer deg mest.

Vi har et ukentlig IRC-møte på irc.freenode.net # dojo-møtet klokken 14 på Pacific på onsdager, eller du kan finne oss på #dojo andre ganger.

Og selvfølgelig SitePen bloggen, eller våre workshops eller støttetjenester hvis du trenger hjelp med en gang.


Dommen? Dylan, SitePen, og viktigst, Dojo Toolkit, gjør store ting i open source-samfunnet. Dojo Toolkits funksjonssett og momentum er umulig å ignorere, og utviklere som ønsker å lage superdrevne webapplikasjoner, bør ikke se lenger enn Dojo Toolkit.