Master Developers Dylan Schiemann (Dojo Creator)

Een van de meest prominente figuren in de JavaScript en open-source wereld is Dylan Schiemann, en met een goede reden. Dylan verschijnt op conferenties over de hele wereld, ondersteunt opensourceprojecten met de Dojo Foundation en, het belangrijkste, leidt het Dojo Toolkit-project. Ik sprak met Dylan over wat hij vandaag doet, de release van Dojo 1.8, wat we kunnen zien in Dojo 2.0, en wat zijn plannen zijn voor de toekomst.


Hallo, Dylan. In het afgelopen decennium heb je verschillende rollen gehad in de wereld van webontwikkeling: oprichter van de Dojo Toolkit en cometD, spreker voor conferenties, open source proponent, etc. Waar ben je tegenwoordig op gericht??

We zijn klaar om te gaan werken aan 2.0, wat een grote inspanning zal zijn.

Hallo, David, mijn grootste passie is dingen bouwen, of het nu producten, projecten, teams, etc. zijn. Ik ben de Dojo Toolkit projectleider en voorzitter van de Dojo Foundation. De laatste jaren schreef ik niet zoveel code, maar dit jaar ben ik weer actiever geworden in het maken van bijdragen aan en het gebruiken van Dojo. We zijn erg enthousiast over de release 1.8, met talloze uren inspanningen om de codebasis en documentatie te verbeteren. We zijn klaar om te gaan werken aan 2.0, wat een grote inspanning zal zijn.

Ik ben ook de CEO van SitePen, een bedrijf dat professionele services (ontwikkeling, consulting, training en ondersteuning) levert aan organisaties die geweldige JavaScript- en HTML5-gebaseerde webapps bouwen. SitePen heeft een ongelooflijk sterk team van Dojo- en JavaScript-experts en ik word elke dag vernederd door het werk van de SitePen- en Dojo-teams. We hebben onlangs ook dgrid aangekondigd, een ongelooflijke open-source lichtgewicht, flexibel rasteronderdeel dat is gebouwd op Dojo en gemakkelijk te gebruiken is met andere toolkits. SitePen werkt ook aan haar eerste branchespecifieke product dat we later dit jaar zullen aankondigen.


Niet veel ontwikkelaars weten dit, maar de Dojo Toolkit heeft veel van de meer geavanceerde hulpprogramma's die andere frameworks vandaag hebben gebruikt, inclusief Deferreds. Welke andere geavanceerde functionaliteit heeft Dojo pocht vóór andere kaders?

We hebben een aantal jaren uitstel en beloftes gehad.

Dojo heeft de reputatie vooruit te lopen in het uitproberen van nieuwe dingen. Zoals u al zei, hebben we al verschillende jaren uitstel en beloftes gehad. Onze ondersteuning voor native vectorafbeeldingen gaat terug tot 2005. Aspect-georiënteerde programmeerconcepten, client-side pubsub, real-time, offline en lokale opslag, browsergeschiedenis, databaserinks voor widgets en meer dateren allemaal uit versies van Dojo van 2005 of 2006. Meer recent hebben onze mobielspecifieke inspanningen benadrukt dat echt rijkere mogelijkheden naar mobiele apparaten worden geduwd, zoals rasters, realtime chat, grafieken, meters, 3D-interfaces en meer.


De Dojo Toolkit lijkt de krachtigste van de JavaScript-bibliotheken te zijn; waarom is het niet populairder bij de front-end ontwikkelingsmassa's? Is de "grote" leercurve van Dojo een mythe?

Dojo is vanaf het begin gefocust op het verleggen van de grenzen van het open web door een complete, maar toch modulaire toolkit te bieden om productief te zijn met JavaScript. We hebben het hele jaar door groeipijnen gehad. Er was bijvoorbeeld een tijd dat de standaard Dojo-configuratie erg traag was om te laden, zonder duidelijke stappen om het sneller te maken.

Op dit moment zijn we in onze beste positie ooit met betrekking tot prestaties, solide documentatie en het gemak om aan de slag te gaan.

Het is zeker gemakkelijker om iets te leren dat kleiner is dan iets dat meer doet, maar onze enthousiaste gebruikers wijzen er al snel op dat een beetje meer voorkennis hen talloze uren bespaart voor dingen die Dojo gemakkelijk maakt. Toen we Dojo startten, stelden we ons een JavaScript-community voor waarin ontwikkelaars zouden kunnen samenwerken en niet constant het wiel opnieuw uitvinden. Het ging nooit om een ​​toolkit-oorlog, het ging om het creëren van de best mogelijke toolkit en het werken in een zeer open ecosysteem waar bedrijven ook op konden vertrouwen.


In de afgelopen releases van de Dojo Toolkit zijn talloze functies toegevoegd of verbeterd: de nieuwe AMD-lader, dojo / aspect en dojo / op om functie en native luisteren van gebeurtenissen te scheiden, dojo / touch voor luisteren naar mobiele evenementen, enz. Welke nieuwe functies zijn beschikbaar in Dojo 1.8?

1.8 heeft een nieuwe Ajax API, dojo / verzoek, dat vereenvoudigt en biedt uitbreidingen voor vrijwel alles wat ik me kan voorstellen met een HTTP-verzoek van een browser, of vanuit een Node.js-toepassing. We hebben ook geïntroduceerd dojo / Router, om de routing tussen weergaven te vereenvoudigen. Voor 1.8 werkt het met veranderingen in de browserhash voor compatibiliteit met momenteel ondersteunde browsers, en voor 2.0 werkt het met de HTML5-geschiedenis-API.

dojox / mobile heeft uitgebreide API-verfijningen en 26 nieuwe widgets ontvangen. Er is een indrukwekkende nieuwe volledige kalenderwidget en natuurlijk is er degrid. Onze parser en beloften implementaties hebben ook uitgebreide verbeteringen ondergaan. Deze versie bevat honderden verfijningen en bugfixes die dit een zeer solide en stabiele release maken, evenals ondersteuning voor niet-browserplatforms, zoals Node.js. En natuurlijk zijn de documentatie, in het bijzonder de API Viewer en de Reference Guide, indrukwekkend.


Prestaties zijn altijd een belangrijke factor bij het onderhouden van een JavaScript-toolkit. Wat heeft het Dojo-team gedaan op het gebied van prestaties voor de 1.8-release??

We hebben hard gewerkt om modules te verfijnen die niet zo snel waren als ze zouden moeten zijn, en waar mogelijk hebben we de afhankelijkheden van modules verminderd, zodat ze alleen code nodig hebben die ze nodig hebben. We hebben ook gewerkt aan het verbeteren van onze ontwikkeltools en documentatie, zodat u eenvoudig uw eigen geoptimaliseerde applicaties kunt maken.


Met de oprichting van dojo / knooppunt, welke rol zie je Dojo hebben aan de serverkant?

Door Dojo aan de serverkant te laten werken, zijn veel dingen mogelijk ...

De Dojo Foundation heeft al een behoorlijk indrukwekkend JavaScript-framework aan de serverkant, Persevere genaamd, dat voor velen als Dojo is voor de server, met ondersteuning voor objectwinkels, RESTful-services, realtime en meer. Dojo-werk aan de serverzijde maakt echter veel dingen mogelijk, zoals testen of vooraf weergeven van widgets in een geïnitialiseerde status op de server voordat deze wordt gerenderd aan de client, wat een recent GitHub-project is.


Dojo heeft behoorlijk wat code verzameld over de 1.x-levensduur. Hoe weet het Dojo-team zelfs legacy-modules te onderhouden??

Duizenden uren gewaardeerde bijdragen van de gemeenschap en een open en uitnodigend proces om betrokken te raken en bij te dragen. Ook zullen bedrijven zoals SitePen en IBM oplossingen maken op basis van dringende verzoeken van hun klanten. We hebben deze release beter gehad met het stellen van doelen en het betrekken van meer mensen, wat echt verfrissend was. We hebben veel oud-medewerkers, maar ook veel nieuwe mensen die 1,8 geweldig hebben gemaakt.


Op dit punt is het veilig om aan te nemen dat Dojo de overgang naar 2.0 is begonnen. Modules zijn geschreven in AMD-indeling, er is een nieuwe async-lader gebouwd en enkele van de oudere IO-methoden (io / iframe, xhr, enz.) Zijn geconsolideerd. Kun je een hint geven naar wat we in Dojo 2.0 te zien zullen krijgen??

We beginnen met het opruimen van onze API's verder, het verwijderen van ondersteuning voor dingen die zijn verouderd voor verschillende releases, en komen gewoon bij een vereenvoudigd startpunt. We zullen ook eens goed bekijken welke browsers en platforms we zouden moeten ondersteunen ... het is nu veel gemakkelijker met de ingebouwde feature-detectie van has.js, en het is heel eenvoudig om functies uit te sluiten van uw geoptimaliseerde builds, maar we willen nog steeds de onderhoud van de toolkit ook.

Kortom, de geweldige functies van Dojo zullen er nog steeds zijn, maar we verwachten dat veel nieuwe ontwikkelingen moderne en mobiele browsers ondersteunen, evenals een enorme herziening van oude of oude API's.


Dojo bevindt zich meestal op de grens van client-side-vooruitgang, waarbij Deferreds en Promises voorbeelden zijn. Wat zie je in de pijplijn komen en hoe wil Dojo met deze technologieën werken??

Veel van DojoX zal worden opgesplitst in afzonderlijke projecten met hun eigen releasecycli.

Ik denk dat veel van wat we recentelijk hebben gedaan de ontwikkelaarproductiviteit en onderhoudbaarheid van je codebasis was. AMD lost bijvoorbeeld veel problemen op die teams hebben met het beheren van hun codebases, of het samenstellen van ongelijksoortige modules. Ik geloof dat we een vrij grote transformatie zullen zien van de manier waarop widgets worden gemaakt, om dingen te laten werken zoals degrid-werken. Veel van DojoX zal worden opgesplitst in afzonderlijke projecten met hun eigen releasecycli. Vanaf daar wordt het gemakkelijker om meer in de browser te knijpen en meer uit onze apps te halen. We zullen dus ondersteuning gaan zien voor functies zoals de HTML5 JavaScript File API, of betere manieren om lokale opslag te beheren. Ik verwacht dat het werken met objectarchieven en verzoeken naadloos zal werken met de lokale, offline en externe mogelijkheden en toch haken bieden om naar wens aan te passen. Dojo is altijd al geweest om geweldige functies te bieden, met zo veel mogelijk uitbreidingspunten om het gemakkelijk te laten werken zoals je het nodig hebt.

Ik denk ook dat we nog steeds te maken hebben met veel prestatiebeperkingen van webbrowsers.

Oorspronkelijke vectorgrafieken of diagrammen met zeer grote gegevenssets crawlen bijvoorbeeld in de modernste browsers, dus ik verwacht dat we meer fixes zullen zien om naadloos samen te werken met grotere gegevenssets.

Heel erg zoals virtuele paging goed met netcomponenten heeft gewerkt, hebben wij meer oplossingen aan andere beperkingen op het platform nodig.


Dojo's officiële "plugin repository", DojoX, host talrijke sub-projecten op ondernemingsniveau, inclusief dojox / mobile, dojox / gfx, en meer. Wat is het lange termijnplan voor DojoX? Zal het binnen de officiële Dojo-repository blijven, of zal het Dojo-team zijn eigen plug-in-smederij maken??

We hebben momenteel een vroeg pakketbeheersysteem, cpm genaamd, met een lijst met beschikbare pakketten op http://packages.dojofoundation.org/. dgrid is het populairste Dojo-pakket dat vandaag beschikbaar is. DojoX zal waarschijnlijk worden gesplitst, waarbij sommige functies naar Dojo of Dijit gaan en andere functies, zoals gfx en grafieken, hun eigen topniveau-pakketten worden. Ze zullen nog steeds beschikbaar zijn onder dezelfde licentie als Dojo, en grote releases zullen tools hebben om eenvoudig populaire pakketten te combineren in handige builds, maar ze zullen een veel eenvoudigere tijd hebben die vaker vrijkomt dan Dojo.


SitePen heeft een ongelooflijke rasterwidget voor Dojo gemaakt, genaamd dgrid. Wat was de motivatie om dgrid te maken, en waar is dgrid in zijn ontwikkelingscyclus?

Het is echt stabieler dan alle widgets van Dojo-rasters vandaag

Enkele jaren geleden brachten we de originele DataGrid naar Dojo door de ontwikkelaars van de populairste externe widget daadwerkelijk te betalen om deze bij te dragen aan de Dojo Foundation. SitePen, Mozilla en een handvol anderen hebben geld bijgedragen om dit mogelijk te maken. Na jaren van iteraties en de opkomst van mobiele browsers, was het tijd voor een frisse, van de grond af herschrijving die goed zou werken op mobiel en desktop, ongelooflijk modulair zou zijn en zou werken met de nieuwste API's en functies. Dit werd degrid. Hoewel we het nog steeds een bèta noemen, is het echt stabieler dan alle dojo-rasterwidgets van vandaag en we ontdekken dat een grote verscheidenheid aan bedrijven het al in de productie gebruikt. We ondersteunen ook de stijlconventies voor ThemeRoller van jQuery, dus het is vrij eenvoudig om dgrid te gebruiken in een jQuery-app zonder enige andere Dojo, als dat jouw voorkeur is.


Ten slotte zijn open source-projecten altijd op zoek naar goede ontwikkelaars om te helpen. Hoe kunnen Nettuts + -lezers met Dojo aan de slag gaan, en hoe kunnen ze beginnen een bijdrage te leveren aan het project?

Begin met onze uitstekende tutorialseries http://dojotoolkit.org/documentation/ die nu wordt bijgewerkt voor 1.8. Meld je aan voor onze mailinglijst en stel vragen op http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest. Probeer dingen uit, geef ons feedback (op elke documentatiepagina staat een link om feedback te geven op die pagina.) We hebben bijna 1000 documentatieproblemen gerepareerd die dit jaar alleen al op deze manier zijn gerapporteerd), bestandsfouten of tickets, online een licentieovereenkomst voor bijdragers ondertekenen (http://dojofoundation.org/about/claForm), en begin met bijdragen op gebieden die u het meest interesseren.

We hebben een wekelijkse IRC-bijeenkomst op irc.freenode.net # dojo-vergadering om 14:00 uur Pacific time op woensdag, of je kunt ons op andere momenten vinden op #dojo.

En natuurlijk het SitePen-blog, of onze workshops of ondersteunende diensten als u meteen hulp nodig heeft.


Het vonnis? Dylan, SitePen en vooral de Dojo Toolkit doen grote dingen in de open-sourcecommunity. De functies en het momentum van Dojo Toolkit kunnen niet worden genegeerd en ontwikkelaars die super krachtige web-apps willen maken, moeten niet verder zoeken dan de Dojo Toolkit.