Dezvoltatori Master John Resig

El ne-a adus jQuery, cea mai folosită bibliotecă JavaScript de pe planetă. Apoi ne-a adus Process.js, un port JavaScript al popularului limbaj de programare de vizualizare a datelor. Acum, John Resig se află într-o misiune de a revigora modul în care oamenii învață programarea ca decan al informaticii pentru Academia Khan. Omul nu se oprește niciodată (chiar nu dormește?), Dând înapoi comunității și, după ce nu a mai fost atins de ochii publicului timp de ceva timp, m-am prins pentru a afla ce sa întâmplat.


Q Ai luat o pauză de la lumina reflectoarelor. Unde ai fost?

În jurul meu :) Dar, mai serios, am decis să petrec mai mult timp în a face aplicații și de dezvoltare pe partea de server - ceva pe care nu am petrecut mult timp când lucram la jQuery full-time.


Q Sunteți încă implicați în proiectul jQuery, dar ați trecut de conducerea echipei de zi cu zi a lui Dave Methvin. Ceea ce a determinat asta?

Am petrecut mai puțin timp pe fixarea zgomotului de zi cu zi a jQuery și am vrut să mă asigur că proiectul va fi în mâinile bune când am început să lucrez la alte lucruri. Ei au făcut o treabă excelentă de a ține biblioteca într-o formă excelentă. E în mâinile bune!


Academia Khan pare să fi devenit o pasiune pentru tine. Care-i rolul tău acolo??


Am lucrat la mai multe proiecte diferite. Am creat cadrul pe care îl folosim pentru construirea exercițiilor (disponibil pe Github https://github.com/khan/khan-exercises), am ajutat la construirea aplicației iPad pentru Academia Khan, am creat platforma Computer Science și acum lucrez la internaționalizarea site-ul, făcându-l disponibil în mai multe limbi oamenilor din întreaga lume.


Q Cum credeți că Academia Khan face o diferență, mai ales atunci când vine vorba de curriculum-ul de informatică pe care îl construiți? Cine se orientează și cum ajungeți la publicul respectiv?

Am decis să petrec mai mult timp în a face aplicații și la dezvoltarea de servere.

Sunt foarte încântat de munca pe care o facem la Academia Khan. Ne-am străduit să găsim modalități de predare a programelor de bază pentru cei care nu au fost programați niciodată înainte. În plus, găsim modalități de integrare a educației în domeniul informaticii cu curriculumul nostru de matematică și știință existent, care leagă toate piesele împreună.

Acest lucru are mult sens și oferă un mod de învățare coerent, pe care alte platforme de programare nu îl au. Înțelegerea algrebrei este o condiție prealabilă importantă pentru înțelegerea variabilelor, de exemplu. Înțelegerea trigonometriei este importantă pentru munca grafică. Combinarea tuturor acestor lucruri are un sens. Cel puțin acum, țintim în primul rând publicul nostru K-12 existent. Până acum, am avut aproximativ 2,9 milioane de utilizatori ai platformei de când am lansat-o în august 2012.


Q Unde vedeți echilibrul între sistemul educațional tradițional și Academia Khan (adică cum pot lucra împreună pentru o educație mai bună)?

Sunt foarte încântat de munca pe care o facem la Academia Khan.

Cel puțin în acest moment, Academia Khan vizează în primul rând materiale care sunt mai orientate spre persoanele de vârstă mai mică (pre-colegiu). Mulți studenți folosesc materialul ca supliment la munca existentă - sau chiar ca parte a unei clase (în funcție de școală). Am văzut câteva rezultate excelente din școlile care folosesc Academia Khan ca parte a curriculumului lor, oferindu-le elevilor să folosească materialul în clasă și consumând atât clipurile video cât și exercițiile în propriul ritm. În acest fel, Academia Khan este de fapt foarte diferită de multe dintre celelalte soluții educaționale de acolo (nu se concentrează pe cursurile de facultate, de exemplu) și completează o nișă incredibil de valoroasă.


Q Curriculum-ul inițial pe care-l construiți se axează pe predarea principiilor de programare utilizând limbajul JavaScript (ceea ce pare evident). Unde intenționați să o luați în viitor??

Utilizăm JavaScript și Process.js și un mediu de programare în timp real pentru a oferi studenților o modalitate ușoară de a începe și de a interacționa cu codul. Recent am găsit modalități prin care elevii să colaboreze pentru munca reciprocă. Când am lansat, am inclus abilitatea studenților de a-și "ruga" codul celuilalt. Am adăugat, în unele moduri, ca aceste furculițe să poată fi ușor de descoperit, ceea ce a dus la un număr de studenți care se bazează pe munca celuilalt. Este fascinant să vezi cum este în desfășurare!


Îmi amintesc că menționați că faceți destul de mult în jurul internaționalizării. Este asta pentru Khan? A fost provocator / recompensator? Care sunt obstacolele pe care le-ați întâlnit?

Am lucrat la i18n pentru două proiecte: unul este un proiect lateral, iar celălalt este site-ul Academiei Khan. A fost destul de dificilă; avem un site mare cu multe piese de conținut originale care au nevoie de traducere. Noțiuni de bază toate piesele în mișcare organizate și dat unele aparență de ordine este cu siguranta destul de dificil. Din fericire, există o mulțime de instrumente care ajută deja la aceste lucruri (de exemplu, folosim biblioteca Jed.js pentru a face unele lucrări de pluralizare pe partea clientului).


Q jQuery a devenit cea mai răspândită bibliotecă JavaScript de pe Internet. Cum simți asta??

Destul de tare! Este atât de grozav să vezi atât de mulți oameni care beneficiază de folosire. Este uimitor faptul că, chiar și în cazul noilor browsere și API-uri, nu suntem încă în punctul de a avea o experiență de dezvoltare cu browser încrucișat. Se apropie și jQuery ne ajută absolut, dar aștept cu nerăbdare ziua în care avem un API cu adevărat unificat și ușor de folosit.


Îți voi pune aceeași întrebare la întrebat pe Dave. În ultimul timp, a existat un pic de sniping la jQuery până la punctul în care unii din comunitate privesc în jos dezvoltatorii care folosesc biblioteca. Care-i treaba ta??

Oh, există întotdeauna sniping. Cred că există o tendință ca oamenii să vadă codul prost scris ca reprezentant al întregului cod scrise cu o bibliotecă sau o limbă, și asta evident că nu este așa.

O problemă deosebit de dificilă este că, de vreme ce utilizarea jQuery este atât de omniprezentă, înseamnă că aproape toată lumea o folosește într-un fel - inclusiv oameni care nu știu cum să programeze deloc și doar să copieze și să lipsească codul împreună fără să aibă grijă cum funcționează. Cel mai bun mod de a combate acest lucru este să încercăm să oferim materiale educaționale mai bune celor care doresc să devină programatori mai buni, cum ar fi noul centru de învățare jQuery


Q Dezvoltarea JavaScript a evoluat destul de mult de când ați lansat prima dată jQuery. Care ar fi fost lucrurile pe care le-ați fi dorit atunci când ați început proiectul?

Apelul Selectors API, absolut (selectorul API este ceea ce ne dă querySelectorAll și ne permite să interogăm nodurile DOM folosind selectori CSS). Din fericire, faptul că jQuery a popularizat utilizarea selectorilor CSS pentru a găsi nodurile DOM este ceea ce a încurajat standardizarea sa pentru început. Este o situație de pui și ou :)


Q De-a lungul acestor linii, care sunt tendințele în dezvoltarea de front-end pe care le vedeți și le-ar recomanda dezvoltatorilor să țină cont?

Ca cineva care scrie o mulțime de JavaScript, am petrecut mai mult timp cu Node.js și PhantomJS. Aceste medii vă oferă posibilitatea de a scrie JavaScript pe partea de server și de a face tot felul de scripting și de scriere a aplicațiilor. Este foarte distractiv să puteți scrie JavaScript și să lucrați atât pe client cât și pe server (de exemplu, posibilitatea de a partaja logica pentru un joc client-server).


Am văzut câteva rezultate extraordinare din școlile care folosesc Academia Khan ca parte a curriculumului lor.

Ai fost destul de vocal cu privire la schimbările din spațiul browser-ului. Care este părerea dvs. privind starea actuală a browserelor și concurența dintre ele?

Cred că cel mai mare lucru pe care l-ar putea întâmpla browserele în ultimii ani este trecerea la un ciclu de lansare rapidă, susținut de echipa Chrome și apoi preluat de echipa Firefox. Emisiile care ies la fiecare trei luni în loc de fiecare an (sau la fiecare an) schimbă complet modul în care noile caracteristici sunt introduse și folosite de dezvoltatori. Orice browser care dorește să rămână competitiv va fi nevoit să țină pasul cu acest program de dezvoltare rapidă; în caz contrar, cu siguranță vor rămâne în urmă.


Q Karen McGrane a declarat recent la o conferință că 31% dintre utilizatorii de internet american utilizează numai dispozitive mobile pentru acces la Internet. Care sunt gândurile tale despre starea actuală a browserelor mobile, mai ales când vine vorba de furnizarea de materiale educaționale pentru Khan?

Creșterea accesului pentru mai mulți oameni (și cu un browser bun!) Este într-adevăr o victorie pentru toți. Nu am țintit acest lucru în mod explicit la Academia Khan, dar există un proiect minunat numit KA Lite care încearcă să facă acest lucru.


În urmă cu câțiva ani, am vorbit despre conceptul de a include direct bibliotecile JavaScript în browser pentru a îmbunătăți performanța (similar cu cache-urile primate). Tot crezi că e ceva de luat în considerare?

Încă mai cred că este posibil, dar e greu de spus cât de mult ar fi beneficiul de a face asta. Dacă codul era deja precompilat în bytecode și aștepta doar în memorie, atunci mi-aș fi imaginat că vor fi niște șmecheri frumoase. Acestea fiind spuse, pariez că accelerațiile vor fi mai mici decât cele oferite de îmbunătățirile de performanță ale DOM.


Cartea ta, Secretele Ninja JavaScript, este în cele din urmă după patru ani! Spuneți-ne despre călătoria respectivă și dacă credeți că cartea este încă relevantă după patru ani.

Cu siguranta a fost o calatorie! Am scris cea mai mare parte a conținutului în perioada 2008-2010, iar coautorul meu, Bear Bibeault, a lucrat asupra lui în perioada 2011-2012. Cred că este încă extrem de relevant pentru dezvoltarea modernă.

Prima jumătate a cărții se referă la cele mai bune practici și la unele aspecte mai complicate ale dezvoltării JavaScript moderne. A doua jumătate acoperă DOM și tot ceea ce trebuie să știți pentru a scrie codul browserului încrucișat. Aceste două subiecte sunt încă o parte permanentă a dezvoltării JavaScript astăzi și ar trebui să ajute toată lumea de la intermediari la dezvoltatori avansați.


Îți vei scrie vreodată o carte?

Probabil ca nu! Cel puțin nu o carte tipărită tradițională. Sunt dornic să fac mai multe bloguri și scrierea de articole. Dacă scriu vreodată o altă carte, ea va fi cu siguranță publicată pe sine și probabil în formă electronică.


Q Acum locuiți în New York. Vedeți diferențe în comunitatea de dezvoltatori dintre Boston și NYC?

Îl iubesc pe New York. Am întâlnit o gamă largă de dezvoltatori aici și am fost surprins de cât de puternică este comunitatea aici cu multe întâlniri, prelegeri, hack-a-thoni și alte evenimente care se petrec. În timp ce am fost aici doar pentru o perioadă scurtă de timp, simt că comunitatea devine din ce în ce mai puternică.


Dispozitivele care ies la fiecare trei luni în loc de fiecare an schimbă complet modul în care noile caracteristici sunt introduse și utilizate de către dezvoltatori.

Q La nivel personal, ați luat un nou hobby. Vrei să ne spui despre asta?

Lucru sigur! Am petrecut mai mult timp explorând arta și am devenit fascinat de o formă de artă în special: imprimarea japoneză Woodblock. Aceasta a fost o formă de artă în Japonia, care a fost popularizată de la începutul anilor 1700 până la sfârșitul anilor 1800 (și continuând până în prezent, deși ca o nișă).

Imprimeurile descriu lumea incredibilă a samurailor, a războinicilor, a zeilor, a frumuseților și a naturii. Sunt extrem de vii și arată uimitor de modern. Mi-am pus abilitățile de programare să utilizez și am dezvoltat un instrument pentru cercetători care agregă amprentele dintr-un număr de muzee din întreaga lume și le face să poată fi căutate: http://ukiyo-e.org/ Am primit un răspuns foarte pozitiv de la un număr de cercetători, care a fost cel mai plin de satisfacții.

Cod