Maîtres développeurs Dylan Schiemann (Créateur Dojo)

Dylan Schiemann est l’une des personnalités les plus en vue du monde JavaScript et open-source. Dylan participe à des conférences partout dans le monde, soutient des projets open source avec la Fondation Dojo et, plus important encore, dirige le projet Dojo Toolkit. J'ai parlé à Dylan de ce qu'il fait aujourd'hui, de la sortie de Dojo 1.8, de ce que l'on peut voir dans Dojo 2.0 et de ses projets pour l'avenir..


Bonjour Dylan. Au cours des dix dernières années, vous avez occupé divers rôles dans le monde du développement Web: fondateur du Dojo Toolkit et de cometD, conférencier de conférence, promoteur de l'open source, etc. Sur quoi vous concentrez-vous ces jours-ci??

Nous sommes prêts à commencer à travailler sur la version 2.0, ce qui constituera un effort majeur..

Bonjour, David, ma plus grande passion est la construction d'objets, qu'il s'agisse de produits, de projets, d'équipes, etc. Je suis l'actuel responsable du projet Dojo Toolkit et président de la Fondation Dojo. Ces dernières années, je n'écrivais pas autant de code, mais cette année, je suis redevenu plus actif en contribuant au Dojo et en l'utilisant. Nous sommes très enthousiastes à propos de la version 1.8, avec d'innombrables heures d'effort pour améliorer la base de code et la documentation. Nous sommes prêts à commencer à travailler sur la version 2.0, ce qui constituera un effort majeur..

Je suis également PDG de SitePen, une société qui fournit des services professionnels (développement, conseil, formation et support) aux organisations développant d'excellentes applications Web JavaScript et HTML5. SitePen a une équipe incroyablement solide d'experts en Dojo et JavaScript, et je suis honoré chaque jour par le travail effectué par les équipes de SitePen et Dojo. Nous avons également récemment annoncé le lancement de dgrid, un composant de grille flexible léger et incroyable, à code source ouvert, construit sur Dojo et facile à utiliser avec d'autres kits d'outils. SitePen travaille également sur son premier produit spécifique à l'industrie que nous annoncerons plus tard cette année..


Peu de développeurs le savent, mais le Dojo Toolkit a présenté de nombreux utilitaires plus avancés que d’autres frameworks utilisent aujourd’hui, y compris Deferreds. Quelles sont les autres fonctionnalités avancées proposées par Dojo avant les autres frameworks??

Nous avons des reports et des promesses depuis plusieurs années.

Dojo a la réputation d'être à l'avant-garde en essayant de nouvelles choses. Comme vous l'avez mentionné, nous avons des différés et des promesses depuis plusieurs années. Notre prise en charge des graphiques vectoriels natifs remonte à 2005. Les concepts de programmation orientés aspect, pubsub côté client, stockage local, en temps réel, en temps réel, historique du navigateur, liaisons de magasin de données pour les widgets, etc., remontent aux versions de Dojo à partir de 2005 ou 2006. Plus récemment, nos efforts spécifiques aux mobiles ont mis l'accent sur l'amélioration des fonctionnalités les plus riches pour les appareils mobiles, telles que les grilles, la discussion en temps réel, les graphiques, les jauges, les interfaces 3D, etc..


La boîte à outils Dojo semble être la plus puissante des bibliothèques JavaScript. pourquoi n'est-il pas plus populaire parmi les masses de développement front-end? La "grande" courbe d'apprentissage de Dojo est-elle un mythe?

Depuis sa création, Dojo s'est attaché à repousser les limites du Web ouvert en fournissant une boîte à outils complète, mais modulaire, qui lui permet d'être productif avec JavaScript. Nous avons eu des douleurs de croissance parfois au cours de l'année. Par exemple, il fut un temps où le chargement de la configuration par défaut de Dojo était très lent, sans étapes claires pour le rendre plus rapide.

Pour le moment, nous sommes dans la meilleure position de notre histoire en termes de performances, de documentation solide et de facilité de démarrage..

Il est certes plus facile d’apprendre quelque chose de plus petit que d’en faire plus, mais nos utilisateurs assoiffés s’empressent de souligner qu’un peu plus d’apprentissage en amont leur fait gagner un nombre incalculable d’heures pour des tâches que Dojo facilite. Lorsque nous avons démarré Dojo, nous avions imaginé une communauté JavaScript permettant aux développeurs de travailler ensemble sans réinventer constamment la roue. Il ne s'agissait jamais d'une guerre de boîtes à outils, il s'agissait de créer la meilleure boîte à outils possible et de travailler dans un écosystème très ouvert auquel les entreprises pouvaient également faire confiance..


Au cours des dernières versions du Dojo Toolkit, de nombreuses fonctionnalités ont été ajoutées ou améliorées: le nouveau chargeur AMD, dojo / aspect et dojo / sur pour séparer la fonction et l'écoute d'événements natifs, dojo / touch pour l'écoute d'événements mobiles, etc. Quelles sont les nouvelles fonctionnalités disponibles dans Dojo 1.8??

1.8 a une nouvelle API Ajax, dojo / demande, ce qui simplifie et fournit des extensions pour à peu près tout ce que je peux imaginer faire avec une requête HTTP depuis un navigateur ou depuis une application Node.js. Nous avons également introduit dojo / routeur, simplifier le routage entre les vues. Pour 1.8, cela fonctionne avec les modifications du hachage du navigateur pour assurer la compatibilité avec les navigateurs actuellement pris en charge et, pour 2.0, cela fonctionnera avec l'API d'historique HTML5..

dojox / mobile a reçu de nombreuses améliorations d'API et 26 nouveaux widgets. Il y a un nouveau widget Calendrier complet impressionnant, et bien sûr il y a dgrid. Notre implémentation et nos promesses de mises en œuvre ont également été considérablement améliorées. Cette version contient des centaines d'améliorations et de corrections de bugs qui en font une version très solide et stable, ainsi que la prise en charge de plates-formes sans navigateur, telles que Node.js. Et bien sûr, la documentation, en particulier l’API Viewer et le Reference Guide, est impressionnante..


Les performances sont toujours un facteur important lors de la maintenance d'une boîte à outils JavaScript. Qu'a fait l'équipe Dojo en matière de performance pour la version 1.8??

Nous avons travaillé dur pour affiner les modules qui n'étaient pas aussi rapides qu'ils le devraient et, dans la mesure du possible, nous avons réduit les dépendances des modules afin qu'ils ne requièrent que le code dont ils ont besoin. Nous avons également travaillé à améliorer nos outils de construction et notre documentation afin de créer facilement vos propres applications optimisées..


Avec la création de dojo / noeud, Quel rôle voyez-vous en ce qui concerne Dojo côté serveur??

Faire fonctionner Dojo côté serveur rend possible beaucoup de choses…

La Fondation Dojo dispose déjà d'un framework JavaScript assez impressionnant appelé Persevere, qui ressemble pour beaucoup à Dojo pour le côté serveur, avec prise en charge des magasins d'objets, des services RESTful, en temps réel, etc. Cependant, le fait de travailler avec Dojo côté serveur rend possible de nombreuses choses, telles que le test ou le rendu préalable des widgets dans un état initialisé côté serveur avant le rendu au client, qui est un projet GitHub récent..


Dojo a accumulé un peu de code au cours de la vie 1.x. Comment l'équipe de Dojo parvient-elle à maintenir les modules hérités?

Des milliers d'heures de précieuses contributions de la communauté et un processus ouvert et invitant pour s'impliquer et contribuer. En outre, des sociétés telles que SitePen et IBM apporteront des correctifs en fonction des demandes urgentes de leurs clients. Nous avons amélioré cette version en nous fixant des objectifs et en faisant participer plus de personnes, ce qui a été vraiment rafraîchissant. Nous avons beaucoup de contributeurs de longue date, mais aussi beaucoup de nouvelles personnes qui ont fait 1.8 incroyable.


À ce stade, il est prudent de supposer que Dojo a commencé la transition vers la version 2.0. Les modules ont été écrits au format AMD, un nouveau chargeur asynchrone a été construit et certaines des méthodes IO existantes (io / iframe, xhr, etc.) ont été consolidées. Pouvez-vous suggérer ce que nous verrons dans Dojo 2.0?

Nous allons commencer par nettoyer davantage nos API, en supprimant la prise en charge d'éléments obsolètes pour plusieurs versions, et en arriver à un point de départ simplifié. Nous examinerons également de manière approfondie les navigateurs et les plates-formes que nous devrions prendre en charge. C’est beaucoup plus facile maintenant avec la détection de fonctionnalités has.js intégrée, et il est très facile d’exclure des fonctionnalités de vos versions optimisées, mais nous souhaitons tout de même simplifier la mise à jour. maintenance de la boîte à outils aussi bien.

Fondamentalement, les fonctionnalités de Dojo seront toujours là, mais nous attendons de nombreuses nouveautés pour la prise en charge des navigateurs modernes et mobiles, ainsi qu'une refactorisation massive des API anciennes ou obsolètes..


Les dojo sont généralement à la pointe des avancées côté client, les reports et les promesses étant des exemples. Qu'est-ce que vous voyez venir dans le pipeline, et comment Dojo a-t-il l'intention de travailler avec ces technologies?

Une grande partie de DojoX sera scindée en projets distincts avec leurs propres cycles de publication..

Je pense qu'une grande partie de ce que nous avons fait récemment concerne la productivité des développeurs et la maintenabilité de votre base de code. Par exemple, AMD résout de nombreux problèmes rencontrés par les équipes lors de la gestion de leurs bases de code ou de la mise en synergie de modules disparates. Je pense que nous assisterons à une transformation assez massive de la manière dont les widgets sont créés, pour que les choses fonctionnent plus comme des travaux dgrid. Une grande partie de DojoX sera scindée en projets distincts avec leurs propres cycles de publication. À partir de là, il devient plus facile d’intégrer davantage de contenu dans le navigateur et d’obtenir davantage de nos applications. Nous allons donc commencer à voir un support pour des fonctionnalités telles que l'API de fichier HTML5 HTML5 ou de meilleures façons de gérer le stockage local. Je m'attends à ce que l'utilisation de librairies et de requêtes permette de gérer de manière transparente les fonctionnalités locales, hors connexion et distantes, tout en offrant des points d'ancrage à personnaliser. Dojo a toujours eu pour objectif de fournir des fonctionnalités exceptionnelles, avec le plus grand nombre de points d’extension possible pour le faire fonctionner comme vous le souhaitez..

Je pense aussi que nous rencontrons encore de nombreuses limitations de performances des navigateurs Web..

Par exemple, des graphiques vectoriels natifs ou des graphiques avec de très grands ensembles de données s’intègrent même dans les navigateurs les plus modernes. Je pense donc que de plus en plus de solutions fonctionneront de manière transparente avec des ensembles de données plus volumineux..

Tout comme la radiomessagerie virtuelle a bien fonctionné avec les composants de réseau, nous avons besoin de plus de solutions aux autres limitations de la plate-forme..


Le "référentiel de plug-ins" officiel de Dojo, DojoX, héberge de nombreux sous-projets d'entreprise, notamment dojox / mobile, dojox / gfx, et plus. Quel est le plan à long terme pour DojoX? Restera-t-il dans le référentiel officiel Dojo ou l'équipe de Dojo créera-t-elle son propre plugin??

Nous avons actuellement un système de gestion de paquets précoce, appelé cpm, avec une liste des paquets disponibles sur http://packages.dojofoundation.org/. dgrid est le package Dojo le plus populaire disponible à ce jour. DojoX sera probablement divisé, certaines fonctionnalités passant à Dojo ou à Dijit, et d’autres, telles que gfx et graphiques, deviendront leurs propres packages de niveau supérieur. Elles seront toujours disponibles sous les mêmes licences que Dojo, et les versions majeures disposeront d’outils permettant de combiner facilement les packages les plus répandus en des versions pratiques, mais elles seront beaucoup plus faciles à publier plus fréquemment que Dojo..


SitePen a créé un incroyable widget de grille pour Dojo, appelé dgrid. Quelle était la motivation pour créer dgrid, et où se situe dgrid dans son cycle de développement?

Il est vraiment plus stable qu'aucun des widgets de la grille Dojo aujourd'hui

Il y a plusieurs années, nous avons importé le DataGrid d'origine dans Dojo en payant les développeurs du widget tiers le plus populaire pour le contribuer à la Fondation Dojo. SitePen, Mozilla et une poignée d'autres ont contribué financièrement à cet objectif. Après des années d'itérations et l'émergence de navigateurs mobiles, le moment était venu de procéder à une nouvelle réécriture intégrale qui fonctionnerait bien sur mobile et sur le bureau, serait incroyablement modulaire et fonctionnerait avec les dernières API et fonctionnalités. Ceci est devenu dgrid. Bien que nous l'appelions toujours une version bêta, il est vraiment plus stable que n'importe lequel des widgets de grille Dojo aujourd'hui, et nous constatons qu'un grand nombre d'entreprises l'utilisent déjà en production. Nous prenons également en charge les conventions de style ThemeRoller de jQuery. Il est donc assez facile d’utiliser dgrid dans une application jQuery sans autre Dojo, si tel est votre choix..


Enfin, les projets open source sont toujours à la recherche de bons développeurs pour les aider. Comment les lecteurs de Nettuts + peuvent-ils commencer à utiliser Dojo et comment peuvent-ils commencer à contribuer au projet??

Commencez par notre excellente série de tutoriels http://dojotoolkit.org/documentation/ qui est mise à jour pour la version 1.8 maintenant. Inscrivez-vous à notre liste de diffusion et posez des questions à l'adresse http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest. Essayez des solutions, faites-nous part de vos commentaires (sur chaque page de documentation, vous trouverez un lien permettant de commenter cette page. Nous avons corrigé près de 1000 problèmes de documentation signalés uniquement cette année), archiver des bogues ou des tickets, signer un contrat de licence de contributeur en ligne. (http://dojofoundation.org/about/claForm) et commencez à contribuer dans les domaines qui vous intéressent le plus.

Nous organisons une réunion hebdomadaire de l'IRC le irc.freenode.net # réunion du dojo à 14 heures, heure du Pacifique, le mercredi, ou vous pouvez nous trouver sur #dojo à d'autres moments..

Et bien sûr, le blog SitePen, nos ateliers ou nos services d'assistance si vous avez besoin d'aide immédiatement.


Le verdict? Dylan, SitePen et, plus important encore, la boîte à outils Dojo, font de grandes choses au sein de la communauté open source. Il est impossible d'ignorer l'ensemble des fonctionnalités et la dynamique de Dojo Toolkit, et les développeurs qui cherchent à créer des applications Web super puissantes ne devraient pas chercher plus loin que Dojo Toolkit..