Maîtres développeurs John Resig

Il nous a apporté jQuery, la bibliothèque JavaScript la plus utilisée sur la planète. Puis il nous a apporté Processing.js, un portage JavaScript du langage de programmation de visualisation de données populaire. John Resig a pour mission de réorganiser la façon dont les gens apprennent à programmer en tant que doyen de l'informatique à la Khan Academy. L'homme ne s'arrête jamais (est-ce qu'il dort même?) Redonnant à la communauté, et après avoir été à l'abri des regards du public pendant un certain temps, je l'ai rattrapé pour savoir ce qu'il avait préparé..


Q Vous avez fait une pause des feux de la rampe. Où tu as été?

Environ :) Mais plus sérieusement, j’ai décidé de consacrer plus de temps au développement d’applications et au côté serveur - une chose sur laquelle je n’avais pas passé beaucoup de temps lorsque je travaillais à plein temps sur jQuery.


Q Vous êtes toujours impliqué dans le projet jQuery mais vous avez confié la direction quotidienne de l'équipe de base à Dave Methvin. Qu'est-ce qui a poussé ça?

Je passais moins de temps à la résolution de bugs quotidiens de jQuery et je voulais m'assurer que le projet serait entre de bonnes mains lorsque je commencerais à travailler sur d'autres choses. Ils ont fait un excellent travail pour maintenir la bibliothèque en bon état. C'est entre de bonnes mains!


La Q Khan Academy semble être devenue une passion pour vous. Quel est votre rôle là-bas?


J'ai travaillé sur plusieurs projets différents. J'ai créé le framework que nous utilisons pour construire des exercices (disponible sur Github https://github.com/khan/khan-exercises), j'ai contribué à la création de l'application iPad de la Khan Academy, à la création de la plate-forme Computer Science, et je travaille actuellement à l'internationalisation du logiciel. site, le rendant disponible dans de nombreuses langues aux personnes du monde entier.


Q Comment pensez-vous que Khan Academy fait une différence, en particulier en ce qui concerne le programme d'informatique que vous construisez? À qui s'adresse-t-il et comment allez-vous toucher ce public??

J'ai décidé de passer plus de temps à faire du développement d'applications et côté serveur.

Je suis vraiment excité par le travail que nous faisons à la Khan Academy. Nous nous sommes efforcés de trouver des moyens d’enseigner les bases de la programmation à ceux qui n’ont jamais programmé. De plus, nous trouvons des moyens d’intégrer l’enseignement de l’informatique à notre programme de mathématiques et de sciences existant, en liant tous les éléments entre eux..

Cela a beaucoup de sens et offre un moyen cohérent d’apprendre que les autres plates-formes de programmation n’ont pas. Comprendre l'algèbre est une condition préalable essentielle à la compréhension des variables, par exemple. Comprendre la trigonométrie est important pour le travail graphique. Combiner tout cela ensemble a beaucoup de sens. Au moins pour le moment, nous visons principalement notre public actuel de la maternelle à la 12e année. Jusqu'à présent, nous avons eu environ 2,9 millions d'utilisateurs de la plate-forme depuis son lancement en août 2012..


Q Où voyez-vous l'équilibre entre le système éducatif traditionnel et la Khan Academy (comment peuvent-ils travailler ensemble pour améliorer l'éducation)??

Je suis vraiment excité par le travail que nous faisons à la Khan Academy.

Au moins pour le moment, la Khan Academy cible principalement du matériel davantage destiné aux personnes plus jeunes (pré-universitaire). De nombreux étudiants utilisent ce matériel en complément de leurs travaux existants, voire en classe (selon l’école). Nous avons constaté d’excellents résultats dans les écoles qui utilisent Khan Academy dans leur programme d’enseignement, incitant les élèves à utiliser le matériel en classe et consommant à la fois les vidéos et les exercices à leur propre rythme. En ce sens, Khan Academy est en réalité très différente de la plupart des autres solutions éducatives existantes (ne se concentrant pas sur les cours universitaires, par exemple) et remplit un créneau incroyablement précieux..


Q Le programme CS initial que vous créez est axé sur l'enseignement des principes de programmation à l'aide du langage JavaScript (ce qui semble évident). Où prévoyez-vous de le prendre à l'avenir?

Nous utilisons JavaScript et Processing.js et un environnement de programmation en temps réel pour donner aux étudiants un moyen simple de se familiariser avec le code. Nous avons récemment trouvé des moyens de faire collaborer les étudiants aux travaux de leurs collègues. Lors de notre lancement, nous avons inclus la possibilité pour les étudiants de se "bichonner" le code les uns des autres. Nous avons ajouté à certains égards que ces fourchettes pouvaient être facilement découvertes, ce qui a permis à un certain nombre d’élèves de s’appuyer mutuellement sur leur travail. C'est fascinant de le voir en cours!


Q Je me souviens que vous ayez mentionné que vous travailliez beaucoup sur l'internationalisation. Est-ce que c'est pour Khan? At-il été difficile / enrichissant? Quels sont les obstacles que vous avez rencontrés?

J'ai travaillé sur i18n pour deux projets: l'un est un projet parallèle et l'autre, le site de la Khan Academy. Cela a été assez difficile. Nous avons un grand site avec de nombreux éléments de contenu original qui doivent être traduits. Organiser toutes les pièces en mouvement et leur donner un semblant d’ordre est tout à fait délicat. Heureusement, de nombreux outils aident déjà avec ce genre de choses (par exemple, nous utilisons la bibliothèque Jed.js pour effectuer un travail de pluralisation côté client).


Q jQuery est devenue la bibliothèque JavaScript la plus utilisée sur Internet. Comment ça se sent?

Assez impressionnant! C’est formidable de voir autant de personnes tirer profit de son utilisation. Il est étonnant de constater que même avec les nouveaux navigateurs et API, nous ne sommes toujours pas sur le point de vivre une expérience de développement inter-navigateurs totalement simple. Cela se rapproche et jQuery aide absolument à cela, mais je suis impatient de voir le jour où nous aurons une API de développement vraiment unifiée et facile à utiliser..


Q Je vais vous poser la même question que j'ai posée à Dave. JQuery a récemment été critiqué au point que certains membres de la communauté méprisent les développeurs qui utilisent la bibliothèque. Quel est votre avis là-dessus?

Oh, il y a toujours des snipings. Je pense que les gens ont tendance à considérer le code mal écrit comme représentatif de tout code écrit avec une bibliothèque ou un langage, ce qui est évidemment moins vrai..

Un problème particulièrement délicat est que, puisque l'utilisation de jQuery est si omniprésente, cela signifie que presque tout le monde l'utilise d'une manière ou d'une autre, y compris les personnes qui ne savent pas du tout programmer et copier-coller du code sans se soucier de son fonctionnement. Le meilleur moyen de lutter contre cela est d'essayer de fournir un meilleur matériel pédagogique à ceux qui souhaitent devenir de meilleurs programmeurs, comme le nouveau centre d'apprentissage jQuery.


Q Le développement de JavaScript a beaucoup évolué depuis la publication de jQuery. Quelles sont les choses que vous souhaiteriez avoir lorsque vous avez lancé le projet pour la première fois??

Oh, l’API des sélecteurs, absolument (l’API des sélecteurs est ce qui nous donne querySelectorAll et nous permet d’interroger des nœuds DOM à l’aide de sélecteurs CSS). Chose amusante, le fait que jQuery ait popularisé l'utilisation des sélecteurs CSS pour trouver des nœuds DOM est ce qui a encouragé sa standardisation pour commencer. C'est une situation poule et œuf :)


Q Dans le même ordre d’idées, quelles sont les tendances du développement front-end que vous observez et recommandons aux développeurs de garder un œil sur?

En tant que personne qui écrit beaucoup de JavaScript, je passe plus de temps avec Node.js et PhantomJS. Ces environnements vous permettent d'écrire du code JavaScript côté serveur et d'effectuer toutes sortes de scripts et de création d'applications. C'est vraiment amusant de pouvoir écrire du JavaScript et de le faire fonctionner à la fois sur le client et sur le serveur (par exemple, pouvoir partager la logique d'un jeu client-serveur)..


Nous avons constaté de très bons résultats dans les écoles qui utilisent Khan Academy dans le cadre de leur programme..

Q Vous avez parlé assez clairement des changements dans l’espace du navigateur. Que pensez-vous de l'état actuel des navigateurs et de la concurrence entre eux??

Je pense que la chose la plus importante qui soit arrivée aux navigateurs ces dernières années est le passage à un cycle de publication rapide, préconisé par l'équipe de Chrome et repris par l'équipe de Firefox. Le fait de publier des communiqués tous les trois mois au lieu de tous les ans (ou tous les deux ans) change complètement la manière dont les nouvelles fonctionnalités sont introduites et utilisées par les développeurs. Tout navigateur souhaitant rester compétitif devra suivre ce calendrier de développement vertigineux; sinon, ils seront sûrement à la traîne.


Q Karen McGrane a récemment déclaré lors d'une conférence que 31% des internautes américains utilisaient uniquement le mobile pour accéder à Internet. Que pensez-vous de l’état actuel des navigateurs mobiles, notamment en ce qui concerne la fourniture de matériel pédagogique à Khan??

Augmenter le nombre d’accès pour plus de gens (et avec un bon navigateur!) Est vraiment une victoire pour tous. Nous n'avons pas ciblé cela explicitement à la Khan Academy, mais il y a un projet génial appelé KA Lite qui tente de rendre cela possible..


Q Il y a plusieurs années, nous avons parlé du concept d'inclusion directe de bibliothèques JavaScript dans le navigateur pour améliorer les performances (similaire aux caches apprêtés). Pensez-vous toujours que c'est quelque chose à considérer?

Je pense toujours que c'est possible, mais il est difficile de dire quel serait l'avantage de le faire. Si le code était déjà pré-compilé en bytecode et attendait en mémoire, alors j'imagine qu'il y aurait de belles accélérations. Cela étant dit, je parie que les accélérations seraient inférieures à celles fournies par les améliorations des performances globales des DOM..


Q Votre livre, Les secrets du JavaScript Ninja, est enfin disponible au bout de quatre ans! Parlez-nous de ce voyage et si vous pensez que le livre est toujours d'actualité quatre ans plus tard.

Ce fut certainement un voyage! J'ai écrit l'essentiel du contenu de 2008-2010, et mon co-auteur, Bear Bibeault, y a travaillé de 2011 à 2012. Je pense que cela reste exceptionnellement pertinent pour le développement moderne.

La première moitié du livre couvre les meilleures pratiques et certains des aspects les plus délicats du développement JavaScript moderne. La seconde moitié couvre le DOM et tout ce que vous devez savoir pour écrire du code inter-navigateurs. Ces deux sujets font toujours partie du développement de JavaScript aujourd'hui et devraient aider tout le monde, des développeurs de niveau intermédiaire à avancé..


Q Voulez-vous jamais écrire un livre à nouveau?

Probablement pas! Du moins pas un livre imprimé traditionnel. Je suis désireux de faire plus de blogs et d'écriture d'articles. Si jamais j'écris un autre livre, il sera certainement auto-publié et probablement sous forme de livre électronique uniquement..


Q Vous vivez maintenant à New York. Voyez-vous des différences dans la communauté des développeurs entre Boston et New York??

J'adore New York. J'ai rencontré un grand nombre de développeurs ici et j'ai été surpris de la force de la communauté avec des tonnes de rencontres, de conférences, de hack-a-thons et autres événements. Bien que je sois ici depuis peu de temps, il me semble que cette communauté ne fait que se renforcer.


Le fait de publier des versions tous les trois mois au lieu de chaque année change complètement la manière dont les nouvelles fonctionnalités sont introduites et utilisées par les développeurs..

Q Sur le plan personnel, vous avez adopté un nouveau passe-temps. Voulez-vous nous en parler?

Chose sûre! Je passe plus de temps à explorer l'art et je suis fasciné par une forme d'art en particulier: l'impression sur bois japonaise. Au Japon, il s’agit d’une forme d’art qui a été popularisée du début des années 1700 à la fin des années 1800 (et se poursuit jusqu’à nos jours, même si elle constitue un créneau).

Les gravures représentent le monde incroyable des samouraïs, des warlods, des dieux, des beautés et de la nature. Ils sont extrêmement vives et étonnamment modernes. Je mets à profit mes compétences en programmation et j'ai développé un outil pour les chercheurs qui regroupe les impressions de nombreux musées du monde entier et les rend consultables à l'aide d'images: http://ukiyo-e.org/ réponse très positive d'un certain nombre de chercheurs, ce qui a été très enrichissant.