"Nadie les dice a los demás lo que deben hacer": Nicolò Ribaudo sobre el desarrollo de Babel y más



Nicolò Ribaudo es uno de los desarrolladores clave de Babel, un experto visitante de TC39 y también un estudiante de matemáticas.

Nicolò se presentará mañana en HolyJS 2019 Moscú. Y en previsión de esto, los miembros del comité del programa HolyJS Yevgeny Kot ( bunopus ) y Dmitry Makhnev ( DmitryMakhnev ) hablaron con él sobre el desarrollo de Babel, las tareas de un experto invitado, el estudio, el próximo informe sobre HolyJS ... y cómo lograr dormir lo suficiente.

Eugene: Comencemos con una pregunta simple. ¿Puedes contarme un poco sobre ti, qué estás haciendo?

Nicolò: Llevo dos años trabajando en Babel. Estoy estudiando matemáticas, ahora en mi segundo año en la universidad. La programación y el aprendizaje ocupan la mayor parte de mi tiempo; He estado programando durante diez años, y JavaScript es mi lenguaje favorito. Creo que comencé a contribuir al código abierto precisamente por JavaScript, esto sucedió hace unos años.

Eugene: Ahora trabajas en el equipo central de Babel, y esto es impresionante: después de todo, la mayoría de los productos escritos en JavaScript usan Babel todos los días. ¿Cómo llegaste al equipo?

Nicolò: Comencé a contribuir porque lo usé yo mismo y quería hacer algo por la comunidad. Cuando aparecí por primera vez en la comunidad de código abierto, primero contribuí a otros proyectos y luego me enteré de Babel, y él me interesó. En realidad, había otra razón, algo egoísta: ¡quería ser famoso! Quería trabajar en algo que mucha gente sabe. Pero luego me di cuenta de la verdadera razón por la que las personas están trabajando en código abierto, y seguí trabajando porque me gustaba.

Eugene: ¿Pero por qué exactamente Babel? Hay muchos proyectos de código abierto en el mundo.

Nicolò: Antes de Babel, me metí de contrabando en JSHint, también me gusta. Allí aprendí mucho sobre analizadores sintácticos. Por eso conocí a Babel. Al principio, no lo hice en un transformador, sino en un analizador. Además, ya estaba familiarizado con este proyecto y logré probarlo en mis proyectos personales y, por lo tanto, tratar con Babel parecía una buena idea.

Eugene: Ahora estás estudiando matemáticas, y esto es algo bastante complicado. El código abierto tampoco es fácil de escribir. ¿Cómo logras combinar todas estas cosas al mismo tiempo? ¿Tienes 30 horas en un día?

Nicolò: El año pasado fue muy duro, estudié 20 horas a la semana y tuve mucho tiempo libre. Ahora es más difícil, porque tienes que estudiar durante 30 horas. Y quiero trabajar en proyectos de código abierto durante al menos 20 horas a la semana. Se requiere hacer esto en las tardes y noches, o los fines de semana.

Eugene: ¿Incluso duermes?

Nicolò: Después del almuerzo, trabajo unas tres o cuatro horas. Intento no reciclar. Pero a veces es difícil: cuando resuelves una tarea difícil y te apasiona el proceso, tienes que obligarte a detenerte y dormir para no dormirte al día siguiente.

Eugene: ¿Está de alguna manera regulado por Babel? Quiero decir, ¿hay algún tipo de retraso o puedes hacer algo que se te ocurra? Como funciona

Nicolò: No tenemos una organización estricta del proceso. Por supuesto, dibujamos hojas de ruta, pero básicamente decidimos qué hacer. Por ejemplo, seleccionamos tareas para la próxima versión, y luego todos pueden trabajar en cualquiera de ellas.

Eugene: Siempre hay algunas tareas geniales y algo tedioso que nadie quiere hacer. ¿Cómo combinarlo? ¿Tiene algún gerente de producto, no sé, que le dirá qué hacer la próxima semana o mes?

Nicolò: Realizamos manifestaciones cada dos semanas, y durante estas manifestaciones, si hay tareas poco interesantes, generalmente decidimos juntos qué hacer con ellas. Por ejemplo, una de las tareas más aburridas es solucionar los errores: tenemos alrededor de 700 tickets abiertos, y muchos de ellos ya no son relevantes. Tal vez ya se han reparado en otro lugar, o el problema había en la configuración de un usuario específico. De todos modos, tratamos de clasificarlos una vez al mes o una vez cada dos semanas. Pero nadie les dice a los demás lo que tienen que hacer: nos encargamos de nosotros mismos.

Dmitry: ¿Trabajarás en Babel a tiempo completo después de la graduación?

Nicolò: Ahora estamos tratando de entender si Open Collective nos trae suficiente dinero para que este año alguien del equipo pueda comenzar a trabajar en Babel a tiempo parcial para el pago. Dado que dedicamos mucho tiempo al proyecto, sería genial considerarlo como un trabajo "real". Pero incluso si no puedes convertir a Babel en un trabajo así, después de la universidad todavía me gustaría trabajar en proyectos de código abierto.

Eugene: No estoy familiarizado con este esquema, con Open Collective ... ¿Tiene algún tipo de donaciones y acumulación de dinero, y luego cómo decide el equipo quién trabajará a tiempo completo?

Nicolò: Este es un tema complejo, y generalmente lo discutimos durante horas, a veces en vano. En este momento, Henry es la única persona que trabaja a tiempo completo. Porque tuvo la primera oportunidad y porque fue el mantenedor por más tiempo. Pero ahora estamos tratando de entender si todavía hay personas en el equipo que quieren y pueden trabajar en Babel.

Un intento de convertir un proyecto financiado por la comunidad en trabajo está lleno de complejidad. Si trabaja en una empresa regular, siempre tiene el mismo salario y tiene la garantía de recibirlo. Pero dependemos de las donaciones, y resulta que es difícil tomar decisiones importantes en la vida cuando siempre hay un riesgo. Por lo tanto, es bastante difícil encontrar personas que quieran trabajar en él a tiempo completo o incluso a tiempo parcial, y en quienes confiamos. Por lo tanto, no hay competencia en el equipo a este respecto. El principal problema es encontrar dinero para aquellos que todavía quieren hacer este tipo de trabajo.

Eugene: Bueno, recogiste dinero en Open Collective, entendiste quién trabajará a tiempo completo, pero ¿cuál será el salario? ¿Quién decide esto?

Nicolò: Aún no lo sabemos. Esto es difícil de determinar porque necesitamos entender cuánto debemos pagar juntos. Y ella no quiere hacer un seguimiento del tiempo, por lo que la tarifa por hora no es adecuada. Por supuesto, puede pagar por el resultado, pero ¿qué hacer con las tareas tediosas o de larga duración que no dan un resultado claramente visible al instante? Por ejemplo, clasificación de errores o ayudar a las personas en Slack. Por lo tanto, nos gustaría determinar de alguna manera el tamaño del salario mensual, pero es muy difícil determinar cuánto debería ser. Además, dado que estamos en diferentes partes del mundo, lo que me puede parecer riqueza resultará ser muy poco dinero para alguien. Entonces todo es complicado.

Eugene: Eso es! Entonces dijiste que después de la universidad vas a trabajar en código abierto y, mientras tanto, todos estos problemas financieros ... Por otro lado, hay muchas grandes empresas comerciales como Google y Apple, y pagan bien. ¿Qué opinas de ellos? Trabajar en una empresa tan súper internacional puede tener sus ventajas (y desventajas).

Nicolò: Estas no son cosas mutuamente excluyentes, porque hay muchas compañías con grandes proyectos de código abierto. Puede trabajar en una gran empresa y al mismo tiempo trabajar en código abierto. No sé si trabajaré en esto. Hasta ahora, no necesito mucho dinero, pero después de la universidad tendré que encontrar un trabajo.

Dmitry: Hasta donde yo sé, usted es un experto visitante en TC39. Me impresionó cuando Sergey Rubanov dijo que solo hay 20 de esas personas. ¿Puedes decirme cómo te metiste en este grupo?

Nicolò: El papel del experto invitado es para las personas que saben mucho en un campo específico, o ayudan con muchos prozolos, o ayudan a TC39 de la comunidad. Me convertí en un experto invitado a través de mi trabajo en Babel. Trabajó en todos los artículos relacionados con la clase (como decoradores o campos de clase). También necesito analizar muchas otras propuestas para su implementación en Babel y para ayudar a colaboradores externos a implementarlas.

Solo participé en el rally TC39 solo una vez, pero en el futuro estaría encantado de ayudar a TC39 con todo lo que pueda.

Dmitry: ¿Quieres convertirte en un delegado TC39 en el futuro?

Nicolò: Quizás. TC39 generalmente no es para personas solteras: por lo general, debe trabajar para una empresa que se une a TC39. Pero si trabajo en una empresa así, estaría encantado de ayudar y convertirme en delegado.

Eugene: ¿Por qué crees que TC39 es tan importante? ¿Por qué quieres trabajar con ellos?

Nicolò: Porque amo JavaScript y realmente me gusta ayudar a desarrollar el lenguaje. Trabajar con TC39 es otra forma de ayudar a desarrollar JavaScript. Necesitamos hacer esto por el bien de la comunidad y escuchar a las personas para que JavaScript sea aún mejor para todos.

Dmitry: ¿Crees que estudiar en una universidad es un requisito estricto para convertirte en un desarrollador exitoso?

Nicolò: No lo creo. No estoy estudiando informática, y es poco probable que lo haga. Programé mucho antes de ingresar a la universidad. Me uní a los desarrolladores de Babel cuando era estudiante de secundaria. Conozco a muchos otros jóvenes que tampoco tienen un título universitario en informática, pero ya se han convertido en excelentes desarrolladores y pueden conseguir un buen trabajo.

Eugene: Sin embargo, estudiar en una universidad puede proporcionar algunos beneficios adicionales en el trabajo, ¿verdad? En un plan de carrera o algo así. Por cierto, ¿por qué fuiste a las matemáticas?

Nicolò: Estoy de acuerdo en que la universidad puede dar algo más, pero estoy seguro de que puedes ser un desarrollador exitoso sin él. Decidí estudiar matemáticas porque me gusta. Esta es mi materia favorita desde hace diez años. Elegí esta facultad no porque la necesite para el trabajo, sino porque me gusta.

Si escogiera una universidad únicamente por lo que necesitaba, probablemente preferiría la informática. Pero al mismo tiempo, si te gusta estudiar, una universidad es una de las mejores maneras.

Dmitry: Si te gustan tanto las matemáticas que fuiste a la universidad, ¿por qué elegir JavaScript como el idioma principal en el que inviertes y quieres mejorar? ¿Por qué no tomar Haskell o algunos lenguajes de aprendizaje automático y ciencia de datos?

Eugene: Las matemáticas generalmente se asocian con el aprendizaje automático y otras cosas complejas. Y la mayoría de las personas en mi entorno consideran que JavaScript es algo completamente relacionado con botones frontales, botones, divs, y que todo esto es completamente inadecuado para científicos y matemáticos.

Nicolò: Empecé a programar en JavaScript porque tengo una tía que enseña desarrollo web. Cuando quise entender las computadoras, recurrí a ella, y JS fue uno de los idiomas que ella propuso. Mi primer programa fue una extensión del navegador, un truco para un juego en línea que estaba jugando en ese momento. Y JavaScript fue el único lenguaje que me permitió hacer esto.

Más tarde probé Haskell y me gustó. Me gusta que esté cerca de las matemáticas. Pero nunca lo aprendí lo suficiente como para escribir aplicaciones grandes en él. Entonces, de hecho, me gusta JavaScript solo porque comencé a aprenderlo primero y, por lo tanto, lo sé mejor.

Dmitry: ¿Qué opinas sobre resolver las tareas cotidianas en algún lenguaje de programación? ¿Podría considerarse esto una buena forma de enseñar programación?

Nicolò: No soy muy bueno enseñando programación. Los estudiantes generalmente piensan en cómo aprender algo y esperan que los maestros puedan enseñarles :) Creo que en Babel estamos en una buena posición para facilitar el aprendizaje de JavaScript para los principiantes. Por ejemplo, una vez que discutimos la posibilidad de traducir JavaScript a otros idiomas humanos, entonces, por ejemplo, si usted es ruso, entonces podría escribir "si" en lugar de "si". No lo hicimos así, y no sé si lo haremos en el futuro. Pero este es un buen ejemplo de cómo bajar la barra de entrada.

Dmitry: ¿Las matemáticas necesitan un desarrollador de JavaScript moderno?

Nicolò: Depende mucho de lo que vayas a hacer. La mayoría de las aplicaciones de JavaScript no necesitan matemática, bueno, o se necesita el mínimo allí. Si está involucrado en el diseño web, comprender los senos y cosenos puede ser útil, eso es todo. Creo que hay muchos otros lenguajes donde las matemáticas son mucho más útiles: por ejemplo, en el aprendizaje automático o la ciencia de datos, donde JavaScript casi nunca se usa, necesita saber más sobre las matemáticas. Pero si solo escribe servidores en Node.js o aplicaciones cliente, es poco probable que lo necesite.

Eugene: ¿Con qué estudias? Bueno, ya sabemos sobre la universidad, pero tal vez hay algo más. Cualquier podcasts, videos, mitaps, artículos en Internet ...

Nicolò: Principalmente leo blogs o solo documentación sobre bibliotecas o idiomas. Realmente nunca he usado videos o podcasts porque me es difícil escucharlos por más de una hora. Como ya dije, en mi infancia tuve una tía que me enseñó los conceptos básicos de la programación. Y luego comencé a estudiarme a mí mismo. Solía ​​tener aplicaciones de servicios de blog como Medium instaladas en mi teléfono inteligente, pero luego las eliminé porque leí demasiados tutoriales y explicaciones de nuevos chips, en lugar de concentrarme en mis tareas.

Eugene: ¿Qué pasa con las fuentes fuera de línea como reuniones y conferencias? ¿Participas en ellos?

Nicolò: No estoy muy familiarizado con la comunidad en mi ciudad. He estado en un mitap una o dos veces. Visité mi primera conferencia hace solo unos meses. Me gustaría interactuar con la comunidad local, pero cuando lo intenté la última vez, resultó que yo era el único que tenía menos de 20 años. Me sentí fuera de lugar. Pero lo intentaré más tarde y veré qué sucede.

Eugene: ¿Crees que hay ageism en la comunidad? Quiero decir, ¿todos los menores de 20 años son vistos como junior?

Nicolò: Si todas las personas que ves son diez años mayores, te incomoda. Por lo general, los jóvenes no se juntan con una generación mucho mayor. Creo que esto cambiará con el tiempo, será más fácil comunicarse. Hasta ahora siempre he estado cerca de personas de mi edad, por lo que la situación en las reuniones fue completamente diferente. Pero al mismo tiempo, nunca se me prohibió participar y no dijeron que era demasiado joven. Nadie cuestionó mis habilidades por edad.

Eugene: Muchos de estos eventos fuera de línea (reuniones, conferencias, talleres) no se trata solo de adquirir nuevos conocimientos, sino también de establecer contactos. ¿Qué opinas de las redes en general? Quiero decir, conocer gente, construir conexiones, explorar la comunidad local ...

Nicolò: Creo que las redes son importantes. Especialmente porque te permite encontrar trabajo o personas de intereses similares. Pero en este momento no siento la necesidad urgente de buscar personas fuera de línea en mi ciudad, porque ya estoy ocupado estudiando y trabajando en Babel, y simplemente no tengo tiempo para comunicarme con gente nueva. También me gustaría encontrar nuevos colaboradores en Babel, para mostrarle a la gente que, aunque este es un proyecto popular, cualquiera puede contribuir allí.

Eugene: ¿Has estado en alguna reunión del equipo de Babel en vivo?

Nicolò: Sí, conocí a parte del equipo en JSConf en Berlín. Este no era todo el equipo, sino una parte importante de los contribuyentes activos. Fue una experiencia maravillosa, porque solía comunicarme con estas personas solo en línea. Aunque a veces hacemos videollamadas, fue muy agradable conocerlos en vivo.

Dmitry: Esta es tu primera vez en Rusia. ¿Algo que esperas del viaje?

Nicolò: Bueno, cuando viajo, trato de no hacer suposiciones o expectativas. Creo que si no espero nada por adelantado, ¡la sorpresa será mucho mejor! Y también, sobre Moscú, solo sé una cosa: el bar, que mi amigo me recomendó visitar. Sin embargo, ya no vive en Moscú, se mudó a Italia hace aproximadamente un año. Tal vez este bar está justo al lado de su antigua casa. En general, no hay expectativas, quiero ver todo con una mirada fresca.

Dmitry: Espero que visitemos ese bar juntos. Por cierto, ¿tienes algún plan para HolyJS?

Nicolò: Espero disfrutar mucho conociendo gente. Conocer a las personas, discutir Babel con ellas e intentar interesar a las personas es la parte más agradable. Creo que cualquier conferencia debería ayudar a las personas a unirse. Y desde el punto de vista no del participante, sino del orador, bueno, solo espero que todo salga bien.

Dmitry: Por supuesto que pasará, estamos trabajando en ello.

Nicolò dará una presentación sobre "@ babel / how-to" en HolyJS 2019 Moscú el 8 de noviembre.

Source: https://habr.com/ru/post/474722/


All Articles