Ci ha portato jQuery, la libreria JavaScript più utilizzata sul pianeta. Poi ci ha portato Processing.js, una porta JavaScript del popolare linguaggio di programmazione della visualizzazione dei dati. Ora, John Resig è in missione per rinnovare il modo in cui le persone imparano a programmare come Preside di Informatica per Khan Academy. L'uomo non si ferma mai (non ha nemmeno dormito?) Restituendo alla comunità, e dopo essere stato fuori dagli occhi del pubblico per un po 'di tempo, l'ho raggiunto per scoprire cosa stava facendo.
Intorno :) Ma più seriamente, ho deciso di dedicare più tempo allo sviluppo di applicazioni e server-side - qualcosa su cui non ho dedicato molto tempo a quando lavoravo a jQuery a tempo pieno.
Stavo passando meno tempo a correggere i bug giorno per giorno di jQuery e volevo assicurarmi che il progetto sarebbe stato in buone mani mentre cominciavo a lavorare su altre cose. Stanno facendo un ottimo lavoro nel mantenere la biblioteca in ottima forma. È in buone mani!
Ho lavorato su diversi progetti. Ho creato il framework che usiamo per gli esercizi di costruzione (disponibile su Github https://github.com/khan/khan-exercises), ho contribuito a creare l'applicazione per iPad Khan Academy, ho creato la piattaforma Computer Science e sto lavorando all'internazionalizzazione del sito, rendendolo disponibile in molte lingue alle persone di tutto il mondo.
Ho deciso di dedicare più tempo allo sviluppo di applicazioni e server.
Sono davvero entusiasta del lavoro che stiamo svolgendo alla Khan Academy. Abbiamo lavorato per trovare modi di insegnare le basi della programmazione a quelli che non hai mai programmato prima. Inoltre stiamo trovando modi per integrare l'educazione informatica con il nostro curriculum matematico e scientifico esistente, legando insieme tutti i pezzi.
Questo ha molto senso e fornisce un modo coesivo di apprendimento che altre piattaforme di programmazione non hanno. Comprendere l'algrebra è un prerequisito importante per comprendere le variabili, ad esempio. Capire la trigonometria è importante per fare lavori grafici. La combinazione di tutto questo ha molto senso. Almeno in questo momento, miriamo principalmente al nostro pubblico K-12 esistente. Finora abbiamo avuto circa 2,9 milioni di utenti della piattaforma da quando l'abbiamo lanciata nell'agosto 2012.
Sono davvero entusiasta del lavoro che stiamo svolgendo alla Khan Academy.
Almeno al momento, Khan Academy si rivolge principalmente a materiale più orientato verso le persone di età inferiore (pre-college). Molti studenti usano il materiale come supplemento al loro lavoro esistente o anche come parte di una classe (a seconda della scuola). Abbiamo visto alcuni grandi risultati da parte delle scuole che usano Khan Academy come parte del loro curriculum, facendo in modo che gli studenti usino il materiale in classe e consumando sia i video che gli esercizi al loro ritmo. In questo modo, Khan Academy è in realtà molto diversa da molte altre soluzioni educative (non si concentra sui corsi universitari, ad esempio) e sta riempendo una nicchia di grande valore.
Utilizziamo JavaScript e Processing.js e un ambiente di programmazione in tempo reale per offrire agli studenti un modo semplice per iniziare e interagire con il codice. Recentemente abbiamo trovato modi per convincere gli studenti a collaborare a vicenda. Quando abbiamo lanciato, abbiamo incluso la possibilità per gli studenti di "forgiare" il codice degli altri. Abbiamo aggiunto in qualche modo la possibilità di rendere queste forche facilmente individuabili, il che ha portato a un certo numero di studenti che si costruiscono a vicenda. È affascinante vederlo in atto!
Ho lavorato su i18n per due progetti: uno è un progetto parallelo e l'altro è il sito Khan Academy. È stato abbastanza impegnativo; abbiamo un sito grande con molti pezzi di contenuti originali che devono essere tradotti. Mettere tutti i pezzi in movimento organizzati e dati una parvenza di ordine è decisamente abbastanza complicato. Per fortuna, ci sono molti strumenti che aiutano già con questa roba (per esempio stiamo usando la libreria Jed.js per fare lavori di pluralizzazione sul lato client).
Abbastanza bello! È così bello vedere così tante persone trarre beneficio dall'usarlo. È incredibile che, anche con i nuovi browser e le nuove API, non siamo ancora al punto di avere un'esperienza di sviluppo cross-browser del tutto ineguagliata. Si sta avvicinando e jQuery ci aiuta assolutamente, ma non vedo l'ora che sia disponibile un'API di sviluppo veramente unificata e di facile utilizzo.
Oh, c'è sempre un cecchino. Penso che ci sia una tendenza per le persone a vedere il codice scritto male come rappresentante di tutto il codice scritto con una libreria o una lingua, e ovviamente non è così.
Un problema particolarmente delicato è che, dal momento che l'utilizzo di jQuery è così onnipresente, significa che quasi tutti lo usano in qualche modo, comprese persone che non sanno come programmare e basta copiare e incollare il codice insieme senza preoccuparsi di come funziona. Il modo migliore per combattere questo è cercare di fornire materiali didattici migliori a coloro che vogliono diventare programmatori migliori, come il nuovo jQuery Learning Center
Oh, l'API Selectors, assolutamente (l'API Selectors è ciò che ci dà querySelectorAll
e ci permette di interrogare per i nodi DOM usando selettori CSS). Divertente, il fatto che jQuery abbia reso popolare l'uso dei selettori CSS per trovare i nodi DOM è ciò che ha incoraggiato la sua standardizzazione per cominciare. È una situazione di pollo e uova :)
Come qualcuno che scrive molto JavaScript, ho passato più tempo con Node.js e PhantomJS. Questi ambienti ti danno la possibilità di scrivere JavaScript sul lato server e fare ogni sorta di script e creazione di applicazioni. È davvero divertente poter scrivere JavaScript e farlo funzionare sia sul client che sul server (ad esempio, essere in grado di condividere la logica per un gioco client-server).
Abbiamo visto alcuni grandi risultati delle scuole che usano Khan Academy come parte del loro curriculum.
Penso che la cosa più grande che accada ai browser negli ultimi anni è il passaggio a un ciclo di rilascio rapido, sostenuto dal team di Chrome e poi ripreso dal team di Firefox. Le versioni che escono ogni tre mesi anziché ogni anno (o ogni altro anno) cambiano completamente il modo in cui le nuove funzionalità vengono introdotte e utilizzate dagli sviluppatori. Qualsiasi browser che desideri rimanere competitivo dovrà tenere il passo con questo faticoso programma di sviluppo; altrimenti, rimarranno sicuramente indietro.
Aumentare l'accesso per più persone (e con un buon browser!) È davvero una vittoria per tutti. Non abbiamo preso di mira questo esplicitamente alla Khan Academy, ma c'è un fantastico progetto chiamato KA Lite che sta tentando di farlo accadere.
Continuo a pensare che sia possibile, ma è difficile dire quanti benefici ci sarebbero nel farlo. Se il codice era già precompilato in bytecode e stava solo aspettando in memoria, allora immagino che ci sarebbero stati dei bei speed-up. Detto questo, scommetto che gli aumenti di velocità sarebbero inferiori a quelli forniti dai miglioramenti delle prestazioni del DOM in generale.
Certamente è stato un viaggio! Ho scritto la maggior parte dei contenuti nel 2008-2010 e il mio co-autore, Bear Bibeault, ci ha lavorato per il periodo 2011-2012. Penso che sia ancora eccezionalmente rilevante per lo sviluppo moderno.
La prima metà del libro tratta le migliori pratiche e alcuni degli aspetti più complicati del moderno sviluppo di JavaScript. La seconda metà copre il DOM e tutto ciò che è necessario sapere per scrivere codice cross-browser. Questi due argomenti sono ancora una parte sempre presente nello sviluppo di JavaScript e dovrebbero aiutare tutti gli sviluppatori di livello intermedio ad avanzato.
Probabilmente no! Almeno non un libro stampato tradizionale. Sono desideroso di fare più blog e articoli. Se mai scriverò un altro libro, sarà sicuramente auto-pubblicato e probabilmente in formato solo ebook.
Sto amando New York. Ho incontrato una vasta gamma di sviluppatori qui, e sono rimasto sorpreso da quanto sia forte la community qui con tonnellate di meetup, conferenze, hack-a-thons e altri eventi in corso. Mentre sono qui da poco tempo, sembra che la community stia solo diventando più forte.
Le versioni che escono ogni tre mesi invece di ogni anno cambiano completamente il modo in cui le nuove funzionalità vengono introdotte e utilizzate dagli sviluppatori.
Cosa certa! Ho passato più tempo ad esplorare l'arte e sono rimasto affascinato da una forma d'arte in particolare: la stampa giapponese su legno. Questa era una forma d'arte in Giappone che fu popolare dagli inizi del 1700 fino alla fine del 1800 (e continuando fino ai giorni nostri, anche se come una nicchia).
Le stampe raffigurano l'incredibile mondo di samurai, warlods, dei, bellezze e natura. Sono estremamente vivaci e sembrano sorprendentemente moderni. Ho usato le mie capacità di programmazione e ho sviluppato uno strumento per i ricercatori che aggrega le stampe di numerosi musei in tutto il mondo e li rende ricercabili per le immagini: http://ukiyo-e.org/ Ho ottenuto un risposta molto positiva da un certo numero di studiosi, che è stata la più gratificante.