Masterutviklere John Resig

Han tok oss med jQuery, det mest brukte JavaScript-biblioteket på planeten. Deretter tok han oss med Processing.js, en JavaScript-port av det populære datasignaliseringsprogrammeringsspråket. Nå er John Resig på oppdrag å revolusjonere måten folk lærer programmering som dekan for datavitenskap for Khan Academy. Mannen stopper aldri (sover han?) Gir tilbake til samfunnet, og etter å ha vært ute av det offentlige øye for en stund, tok jeg opp med ham for å finne ut hva han har vært opp til.


Q Du har tatt en hiatus fra rampelyset. Hvor har du vært?

Rundt :) Men enda mer seriøst bestemte jeg meg for å bruke mer tid på å gjøre applikasjon og server-side utvikling - noe jeg ikke brukte mye tid på da jeg jobbet med jQuery på heltid.


Q Du er fortsatt involvert i jQuery-prosjektet, men har overgått det daglige lederteamet til Dave Methvin. Hva spurte det?

Jeg brukte mindre tid på den daglige feilrettingen av jQuery og ønsket å sørge for at prosjektet skulle være i gode hender da jeg begynte å jobbe med andre ting. De har gjort en utmerket jobb med å holde biblioteket i god form. Det er i gode hender!


Q Khan Academy synes å ha blitt litt lidenskapelig for deg. Hva er din rolle der?


Jeg har jobbet med en rekke forskjellige prosjekter. Jeg opprettet rammen som vi bruker til å bygge øvelser (tilgjengelig på Github https://github.com/khan/khan-exercises), bidro til å bygge Khan Academy iPad-applikasjonen, skapt Computer Science-plattformen, og jobber nå med å internasjonalisere nettsted, noe som gjør den tilgjengelig på mange språk til mennesker over hele verden.


Q Hvordan tror du at Khan Academy gjør en forskjell, spesielt når det gjelder datavitenskapens læreplan du bygger? Hvem er det målrettet og hvordan kommer du ut til det publikum?

Jeg bestemte meg for å bruke mer tid på å gjøre applikasjon og server-side utvikling.

Jeg er veldig spent på det arbeidet vi gjør på Khan Academy. Vi har jobbet for å finne måter å lære grunnleggende programmering til de som aldri har blitt programmert før. I tillegg finner vi måter å integrere datavitenskapsutdanning med vår eksisterende matematikk og naturvitenskapelig læreplan - binde alle brikkene sammen.

Dette gir mye mening og gir en sammenhengende måte å lære på at andre programmeringsplattformer ikke har. Forståelse av algrebra er en viktig forutsetning for å forstå variabler, for eksempel. Forståelse av trigonometri er viktig for å gjøre grafikkarbeid. Kombinere alt dette sammen gir mye fornuft. I hvert fall akkurat nå målretter vi primært vårt eksisterende K-12-publikum. Så langt har vi hatt ca. 2,9m brukere av plattformen siden vi lanserte den i august 2012.


Q Hvor ser du balansen mellom det tradisjonelle utdanningssystemet og Khan Academy (dvs. hvordan kan de jobbe sammen for bedre utdanning)?

Jeg er veldig spent på det arbeidet vi gjør på Khan Academy.

I det minste for øyeblikket er Khan Academy primært rettet mot materiale som er mer rettet mot folk i en yngre alder (førskole). Mange studenter bruker materialet som et supplement til deres eksisterende arbeid - eller som en del av en klasse (avhengig av skolen). Vi har sett gode resultater fra skolene som bruker Khan Academy som en del av læreplanen, får elevene til å bruke materialet i klassen og konsumerer både videoene og øvelsene i eget tempo. På denne måten er Khan Academy faktisk svært forskjellig fra mange av de andre utdanningsløsninger der ute (ikke med fokus på høyskolekurs, for eksempel) og fyller en utrolig verdifull nisje.


Q Den opprinnelige CS-læreplanen du bygger er fokusert på å undervise programmeringsprinsipper ved hjelp av JavaScript-språket (som virker åpenbart). Hvor har du tenkt å ta det i fremtiden?

Vi bruker JavaScript og Processing.js og et programmeringsmiljø i sanntid for å gi studentene en enkel måte å komme i gang med og samhandle med koden. Vi har nylig funnet måter å få studentene til å samarbeide på hverandres arbeid. Da vi lanserte, inkluderte vi muligheten for at elevene "fork" hverandres kode. Vi har lagt til på noen måter å gjøre disse gaffelene lett oppdagelige, noe som har resultert i at en rekke studenter bygger av hverandres arbeid. Det er fascinerende å se det pågår!


Q Jeg husker at du nevner at du jobber litt med internasjonalisering. Er det for Khan? Har det vært utfordrende / givende? Hva er hindringene du har møtt??

Jeg har jobbet på i18n for to prosjekter: den ene er et sideprosjekt og det andre er Khan Academy-nettstedet. Det har vært ganske utfordrende; Vi har et stort nettsted med mange biter av originalt innhold som trenger oversettelse. Å få alle de bevegelige brikkene organisert og gitt noe skjul av ordre er definitivt ganske vanskelig. Heldigvis er det mange verktøy som allerede hjelper med dette (for eksempel bruker vi Jed.js biblioteket til å gjøre noe pluraliseringsarbeid på klientsiden).


Q jQuery er blitt det mest brukte JavaScript-biblioteket på Internett. Hvordan føles det?

Ganske utrolig! Det er så flott å se at mange mennesker får nytte av å bruke den. Det er utrolig at selv med nye nettlesere og APIer, er vi fortsatt ikke i ferd med å ha en helt tilsynelatende utviklingsserfaring for nettlesere. Den kommer nærmere, og jQuery hjelper helt med det, men jeg gleder meg til den dagen da vi har en virkelig enhetlig, brukervennlig, utviklings API.


Q Jeg skal stille deg det samme spørsmålet jeg spurte Dave. Det har vært litt sniping på jQuery i det siste til det punktet hvor noen i samfunnet ser ned på utviklere som bruker biblioteket. Hva tar du på dette?

Åh, det er alltid sniping. Jeg tror det er en tendens til at folk ser dårlig skrevet kode som representativ for all kode skrevet med bibliotek eller språk, og det er åpenbart bare ikke så.

Et spesielt vanskelig problem er at siden jQuery-bruken er så allestedsnærværende betyr det at nesten alle bruker det på en eller annen måte - inkludert folk som ikke vet hvordan man skal programmere i det hele tatt, og bare kopiere-lime koden sammen uten å bry seg om hvordan det fungerer. Den beste måten vi kan bekjempe dette på er å forsøke å gi bedre pedagogisk materiale til de som ønsker å bli bedre programmerere, som det nye jQuery Learning Center


Q JavaScript-utvikling har utviklet seg ganske mye siden du først lanserte jQuery. Hva er de tingene du ønsker at du ville hatt når du først sparket av prosjektet?

Å, Selectors API, absolutt (Selectors API er det som gir oss querySelectorAll og lar oss spørre om DOM noder ved hjelp av CSS selectors). Amusingly, det faktum at jQuery populariserte bruken av CSS-selektorer for å finne DOM-noder, er det som oppmuntret standardiseringen til å begynne med. Det er en kylling-og-egg-situasjon :)


Q Langs disse linjene, hva er trender i front-end-utvikling som du ser og vil anbefale utviklere å holde øye med?

Som noen som skriver mye JavaScript, har jeg brukt mer tid på Node.js og PhantomJS. Disse miljøene gir deg muligheten til å skrive JavaScript på server-siden og gjøre alle typer skripting og programforfattering. Det er veldig gøy å kunne skrive JavaScript og få det til å fungere på både klienten og serveren (for eksempel å kunne dele logikk for et klient-server-spill).


Vi har sett gode resultater fra skolene som bruker Khan Academy som en del av læreplanen deres.

Q Du har vært ganske vokal om skiftene i leserommet. Hva tar du på nåværende nettlesere og konkurransen mellom dem?

Jeg tror det største tilfellet med nettlesere i de siste årene er skiftet til en hurtigutgivelses-syklus, som ble spilt av Chrome-teamet og deretter tatt opp av Firefox-teamet. Å ha utgivelser som kommer ut hver tredje måned i stedet for hvert år (eller hvert annet år) endrer helt nye innretninger og brukes av utviklere. Enhver nettleser som ønsker å forbli konkurransedyktige, må følge med på denne breakneck-utviklingsplanen. Ellers vil de sikkert ligge bak.


Q Karen McGrane fortalte nylig på en konferanse at 31% av amerikanske internettbrukere bare bruker mobil for Internett-tilgang. Hva er tankene dine om den nåværende tilstanden til mobile nettlesere, spesielt når det gjelder å levere utdanningsmaterialer til Khan?

Å øke tilgangen for flere mennesker (og med en god nettleser!) Er virkelig en seier for alle. Vi har ikke rettet mot dette eksplisitt på Khan Academy, men det er et fantastisk prosjekt kalt KA Lite som prøver å få dette til å skje.


Q For flere år siden snakket vi om konseptet med å inkludere JavaScript-biblioteker direkte i nettleseren for å forbedre ytelsen (lik primer caches). Tror du fortsatt det er noe som skal vurderes?

Jeg tror fortsatt det er mulig, men det er vanskelig å si hvor mye fordel det ville være å gjøre det. Hvis koden allerede var forhåndskompilert til bytekode og bare ventet i minnet, så tenker jeg på at det ville være noen fine oppgraderinger. Når det er sagt, satser jeg på at fartsfrekvensene ville være mindre enn de som ble gitt av ytelsesforbedringer til DOM generelt.


Q Din bok, Hemmeligheter til JavaScript Ninja, er endelig ute etter fire år! Fortell oss om den reisen, og hvis du tror boka er fortsatt relevant fire år på.

Det har sikkert vært en reise! Jeg skrev hoveddelen av innholdet i løpet av 2008-2010, og medforfatteren min, Bear Bibeault, har jobbet med den over 2011-2012. Jeg tror det er fortsatt svært relevant for moderne utvikling.

Første halvdel av boken dekker beste praksis og noen av de vanskeligste aspektene ved moderne JavaScript-utvikling. Den andre halvdelen dekker DOM og alt du trenger å vite for å skrive kryss-nettleserkode. Disse to emnene er fortsatt en stadig til stede i JavaScript-utviklingen i dag, og skal hjelpe alle fra mellomliggende til avanserte utviklere.


Q Vil du noensinne skrive en bok igjen?

Sannsynligvis ikke! I det minste ikke en tradisjonell trykt bok. Jeg er ivrig etter å gjøre mer blogging og artikkelskriving. Hvis jeg noen gang skriver en annen bok, vil det definitivt være selvutgitt og sannsynlig i ebook-only form.


Q Du bor nå i New York. Ser du noen forskjeller i utviklerfellesskapet mellom Boston og NYC??

Jeg elsker New York. Jeg har møtt et bredt spekter av utviklere her, og jeg har blitt overrasket over hvor sterk fellesskapet er her med massevis av møter, forelesninger, hack-a-tons og andre arrangementer som skjer. Mens jeg bare har vært her for kort tid, føles det som om samfunnet bare vokser sterkere.


Å ha utgivelser som kommer ut hver tredje måned i stedet for hvert år, endrer helt hvordan nye funksjoner blir introdusert og brukt av utviklere.

Q På et personlig nivå har du tatt opp en ny hobby. Vil du fortelle oss om det?

Sikkert! Jeg har brukt mer tid på å utforske kunst og har blitt fascinert med en kunstform spesielt: Japanese Woodblock Printing. Dette var en kunstform i Japan som ble popularisert fra tidlig på 1700-tallet til slutten av 1800-tallet (og fortsetter videre til i dag, men som en nisje).

Utskriftene skildrer den utrolige verden av samurai, warlods, guder, skjønnheter og natur. De er ekstremt levende og ser overraskende moderne ut. Jeg har satt mine programmeringsferdigheter til å bruke og har utviklet et verktøy for forskere som samler utskrifter fra en rekke museer rundt om i verden, og gjør dem bilde søkbare: http://ukiyo-e.org/ Jeg har fått en veldig positivt svar fra en rekke lærde, som har vært mest givende.