Transcripción para John Resig: Building jQuery
- 0:14-Verás, comencé a trabajar en JQuery en 2005. Antes de eso JQuery sólo era una colección
- 0:22de herramientas que había escrito. Surgió principalmente porque estaba creando varios
- 0:28recursos y sitios web en esa época y esperaba encontrar ciertas utilerías que hicieran más
- 0:35sencillo mi desarrollo. Parte de esto era que se trabajaba con las incompatibilidades de
- 0:41los navegadores que existían en ese momento, ya sabes, estaban Internet Explorer y Firefox. Era
- 0:49muy complicado intentar desarrollar frente a todos estos diferentes navegadores de manera simultánea,
- 0:54ese era un tema, pero otro tema era que yo sentía que las herramientas preexistentes para
- 1:00desarrolladores, especialmente las herramientas para desarrollo de JavaScript podrían ser mejores.
- 1:08La biblioteca más popular entonces era Prototype, una biblioteca para JavaScript,
- 1:14y a esta se unió el 'framework' de Ruby-On-Rails. Así que era popular y estaba despegando con Rails,
- 1:21y realmente encontré que esa biblioteca era extremadamente informativa. Esa fue
- 1:27la primera vez que vi una biblioteca para JavaScript escrita de una forma amable,
- 1:32limpia y bien orientada a objetos donde tienes todos estos paradigmas funcionales incorporados.
- 1:39No me había percatado de que JavaScript podía ser tan bonito y elegante, y una vez que vi esto
- 1:45realmente me inspiró a querer construir algo aún mejor, y me di cuenta de que Prototype se enfocaba
- 1:52principalmente en el lenguaje JavaScript cuando no había muchas herramientas que se enfocarán
- 1:57en el lenguaje JavaScript dentro del navegador. Específicamente que manipularan html en el dom,
- 2:04así que había una laguna y existía esta brecha de usabilidad y fue entonces que comencé a construir
- 2:11diferentes herramientas y bibliotecas, y al final todas estas se unieron en una sola biblioteca que
- 2:18terminé llamando Gateway. Originalmente se iba a llamar JSelect, pero ese dominio estaba tomado y
- 2:26terminé llamándola JQuery. Y finalmente la lancé en enero del 2006. Debo decir que en
- 2:34ese momento yo estaba en la universidad, hice todo esto mientras estaba en la universidad y
- 2:40todas estas cosas en las que estaba trabajando eran solo algunos proyectos alternos que tenía.
- 2:45Y JQuery se desprendió de todos ellos. Ahora no existe ninguno de esos proyectos
- 2:50alternos, JQuery es el único que aún vive. El patrón de selectores surgió, por lo menos de
- 2:56lo que yo vi, de una biblioteca escrita por Simon Wilson un desarrollador del Reino Unido. Él creó
- 3:03este método en el que podías obtener elementos por selector, si la memoria no me falla,
- 3:08y te permitía simplemente ejecutar un selector CSS y encontrar algunos elementos, pero era muy
- 3:16muy primitivo. Sólo podías hacer las consultas más básicas y no soportaba las versiones 2 y 3 de CSS.
- 3:25Entonces, una de las cosas que yo quería era una mejor versión de esa biblioteca, una versión más
- 3:32completa, además quería hacer el proceso de adjuntar eventos en la página, porque cuando
- 3:37estás construyendo una aplicación interactiva en JavaScript necesitas esperar a que el usuario haga
- 3:43ciertas cosas, y yo quería optimizar totalmente el proceso de encontrar un elemento y adjuntarle
- 3:48un evento, y esto era de lo que inicialmente se trataba JQuery. Fue hasta después cuando
- 3:54comencé a agregarle otras cosas como poder tener por ejemplo animaciones y después de lanzarlo
- 4:00fue que le agregué Ajax y otras cosas, y lo hice porque otras personas así lo querían. Yo no estaba
- 4:07utilizando eso personalmente, realmente me inspiré en otros desarrolladores y en sus bibliotecas que
- 4:13no eran totalmente perfectas, y yo quería que fuera un poco mejor para que todo encajara.
- 4:18-¿Y cómo fue la evolución desde que creaste algo, y lo lanzaste,
- 4:23hasta que tomó vida propia? Porque no le llevo demasiado tiempo para que tomara vida propia.
- 4:30-Yo siento que tomó bastante tiempo para que tomara vida propia, principalmente porque,
- 4:36como sabes, lo lance en enero de 2006 y una de las primeras decisiones de diseño que tomé,
- 4:43creo que un par de decisiones que tomé desde el principio, ayudaron mucho. Una fue que proporcioné
- 4:50una arquitectura de 'plugins' explícita para que la gente pudiera escribir plugins
- 4:55y agregarlos a la biblioteca de JQuery y pudiera beneficiarse completamente de este framework. La
- 5:02otra decisión que tomé fue que desde el primer día que salió yo tenía documentación escrita,
- 5:08es decir me senté a repasar y documentar cada método y su funcionamiento, y ofrecí
- 5:15algunos ejemplos, y esto es interesante porque de enero del 2006, cuando lancé la biblioteca,
- 5:24a enero del 2007 JQuery era la única biblioteca para JavaScript que tenía documentación.
- 5:32Todas las demás eran del tipo 'lea el código fuente' o 'siga a un control de revisión' o
- 5:39cosas así y eso siempre me sorprendió. Bueno, creo que es simplemente un efecto secundario
- 5:45de los desarrolladores: quieres escribir el código y no quieres hacer la parte aburrida
- 5:51y escribir documentos. Así que, por lo menos en lo que respecta al crecimiento de la biblioteca,
- 5:57tomé muchas decisiones en el transcurso de esta historia que no se relacionan con el código, y una
- 6:04de las cosas que siempre enfatizo es que, cuando estás tratando de gestionar un buen proyecto,
- 6:09especialmente un buen proyecto de código abierto, el código es sólo una pequeña porción de toda
- 6:14la ecuación. Tienes que invertir mucho tiempo y mucho esfuerzo en hacer algo que la gente quiera
- 6:19aprender. Que sea fácil aprender y que, una vez que lo aprendan, no se sientan frustrados y lo
- 6:26abandonen. Tienes todo este camino en el que debes asegurarte de que, en cada paso, la gente esté
- 6:33contenta satisfecha y está aprendiendo, y esto normalmente involucra hacer cosas como garantizar
- 6:39que tu sitio web sea claro, que lo que sea que estás ofreciendo sea fácil de descargar, que la
- 6:47documentación sea clara, que tienes una buena guía de inicio, pero, además, que tengas una comunidad
- 6:54en torno a esto. La primera persona que invite al equipo de JQuery, porque hasta este punto
- 7:01sólo estaba yo, entonces la siguiente persona que entró, fue, de hecho, alguien que me ayudó a
- 7:06manejar la comunidad, y no otro desarrollador per se. Aunque era un desarrollador. Y la razón por la
- 7:14que lo hice así fue porque quería asegurarme de que si alguien tenía un problema, donde fuera,
- 7:19sus necesidades fueran tomadas en cuenta y que nosotros podremos ayudarlo y arreglar
- 7:25cualquier problema que tuviera. Así que éramos extremadamente proactivos en arreglar temas del
- 7:32navegador, en encontrar en general problemas en la biblioteca. Y desde el verano de 2006 hasta
- 7:42finales de ese mismo año yo estaba en eCombinator, la aceleradora de empresas emergentes dirigida por
- 7:50Paul Graham y compañía. Ellos estaban en Boston, así que me mudé a Boston con unos
- 7:56amigos. Intentamos crear una empresa emergente que terminó fracasando, bueno, no logramos obtener
- 8:02suficientes fondos y no pudo despegar. Cuando terminamos con la empresa me uní a Mozilla y ahí
- 8:09trabajé principalmente, durante muchos años, como evangelista de JavaScript. Mi trabajo era promover
- 8:16JavaScript y hacer que la gente entendiera lo que vendría en las especificaciones, herramientas y
- 8:22este tipo de cosas. Pero, de nuevo, yo no estaba trabajando realmente en JQuery como parte de mi
- 8:28trabajo, era más bien como que hacía aquello y en mi tiempo libre hacia listas de correo y arreglaba
- 8:34fallos y todo ese tipo de cosas que hay que hacer. Fue hasta mi último año en Mozilla, alrededor de
- 8:402010 o 2011, cuando por fin me dijeron "de acuerdo, puedes trabajar en JQuery tiempo
- 8:47completo" y entonces comencé a trabajar en él y fue genial porque lo que hice durante ese tiempo
- 8:52fue dedicarle mucho esfuerzo en asegurarme que hubiera la infraestructura para que, aunque yo no
- 8:59trabajara a diario en ella, siguiera existiendo. Y parte de esto fue establecer una organización
- 9:04sin fines de lucro y garantizar que hubiera suficiente gente trabajando en cada espacio
- 9:10de ella. De tal modo que, cuando me uní finalmente a Khan Academy, me bajé del proyecto de JQuery y
- 9:17todo ha seguido funcionando bien desde entonces. Y ahora yo soy un feliz usuario de JQuery.