“Ninguém diz aos outros o que eles precisam fazer”: Nicolò Ribaudo sobre o desenvolvimento de Babel e mais



Nicolò Ribaudo é um dos principais desenvolvedores de Babel, um especialista visitante do TC39 e também um estudante de matemática.

Nicolò se apresentará amanhã no HolyJS 2019 Moscow. E, antecipando isso, os membros do comitê do programa HolyJS, Yevgeny Kot ( bunopus ) e Dmitry Makhnev ( DmitryMakhnev ) conversaram com ele sobre o desenvolvimento de Babel, as tarefas de um especialista convidado, os estudos, o próximo relatório sobre o HolyJS ... e como conseguir dormir o suficiente.

Eugene: Vamos começar com uma pergunta simples. Você pode me contar um pouco sobre você, o que você está fazendo?

Nicolò: Estou trabalhando em Babel há dois anos. Estou estudando matemática, agora no meu segundo ano na universidade. Programar e aprender ocupa a maior parte do meu tempo; Faço programação há dez anos e o JavaScript é minha linguagem favorita. Acho que comecei a contribuir para o código aberto justamente por causa do JavaScript, isso aconteceu alguns anos atrás.

Eugene: Agora você trabalha na equipe principal da Babel, e isso é impressionante: afinal, a maioria dos produtos escritos em JavaScript usa Babel todos os dias. Como você entrou no time?

Nicolò: Comecei a contribuir porque usei eu mesmo e queria fazer algo pela comunidade. Quando apareci pela primeira vez na comunidade de código aberto, contribuí com outros projetos e depois descobri sobre Babel, e ele me interessou. Na verdade, havia outra razão, um tanto egoísta: eu queria me tornar famoso! Eu queria trabalhar em algo que muitas pessoas sabem. Mas então eu percebi a verdadeira razão pela qual as pessoas estão trabalhando em código aberto, e apenas continuei a trabalhar porque eu gostei.

Eugene: Mas por que exatamente Babel? Existem muitos projetos de código aberto no mundo.

Nicolò: Antes de Babel, entrei para o JSHint, também gostei. Lá eu aprendi muito sobre analisadores. Por isso conheci Babel. No começo, não fiz isso em um transformador, mas em um analisador. Além disso, eu já estava familiarizado com esse projeto e consegui experimentá-lo em meus projetos pessoais, e, portanto, lidar com Babel parecia uma boa idéia.

Eugene: Agora você está estudando matemática, e isso é uma coisa bastante complicada. Código aberto também não é fácil de escrever. Como você consegue combinar todas essas coisas ao mesmo tempo? Você tem 30 horas por dia?

Nicolò: No ano passado, foi tão difícil que eu estudei 20 horas por semana e tinha muito tempo livre. Agora é mais difícil, porque você precisa estudar por 30 horas. E quero trabalhar em projetos de código aberto por pelo menos 20 horas por semana. É necessário fazer isso à noite e à noite, ou nos finais de semana.

Eugene: Você dorme?

Nicolò: Depois do almoço, trabalho talvez três ou quatro horas. Eu tento não reciclar. Mas, às vezes, é difícil: quando você resolve uma tarefa difícil e é apaixonado pelo processo, precisa se forçar a parar e dormir, para não adormecer no dia seguinte.

Eugene: De alguma forma, é regulado por Babel? Quero dizer, existe algum tipo de atraso ou você pode fazer qualquer coisa que vier à sua mente? Como isso funciona?

Nicolò: Não temos uma organização estrita de processos. Obviamente, desenhamos roteiros, mas basicamente decidimos o que fazer. Por exemplo, selecionamos tarefas para a próxima versão e todos podem trabalhar em qualquer uma delas.

Eugene: Sempre há algumas tarefas legais e algo entediante que ninguém quer fazer. Como combiná-lo? Você tem algum gerente de produto, não sei, que lhe dirá o que fazer na próxima semana ou mês?

Nicolò: Realizamos comícios a cada duas semanas e, durante esses comícios, se houver alguma tarefa desinteressante, geralmente decidimos juntos o que fazer com eles. Por exemplo, uma das tarefas mais chatas é solucionar problemas de bugs: temos cerca de 700 tickets abertos e muitos deles não são mais relevantes. Talvez eles já tenham sido reparados em outro lugar ou o problema ocorreu na configuração de um usuário específico. Enfim, tentamos separá-los uma vez por mês ou a cada duas semanas. Mas ninguém diz aos outros o que eles precisam fazer: nós assumimos isso.

Dmitry: Você estará trabalhando em Babel em tempo integral após a formatura?

Nicolò: Agora estamos tentando entender se o Open Collective nos dá dinheiro suficiente para que este ano alguém da equipe possa começar a trabalhar em Babel em meio período para pagamento. Como dedicamos muito tempo ao projeto, seria ótimo considerá-lo um trabalho "real". Mas mesmo que você não consiga transformar Babel em um emprego assim, depois da universidade, eu ainda gostaria de trabalhar em projetos de código aberto.

Eugene: Eu não estou familiarizado com esse esquema, com o Open Collective ... Você tem algum tipo de doação e dinheiro acumulado e, em seguida, como a equipe decide quem trabalhará em período integral?

Nicolò: Esse é um tópico complexo, e geralmente o discutimos por horas, às vezes sem sucesso. No momento, Henry é a única pessoa que trabalha em período integral. Porque ele teve a primeira oportunidade e porque ele foi o mantenedor por mais tempo. Mas agora estamos tentando entender se ainda há pessoas na equipe que querem e podem trabalhar em Babel.

Uma tentativa de transformar um projeto financiado pela comunidade em trabalho é repleta de complexidade. Se você trabalha em uma empresa regular, sempre tem o mesmo salário e está garantido para recebê-lo. Mas somos dependentes de doações, e é difícil tomar decisões importantes na vida quando há sempre um risco. Portanto, é bastante difícil encontrar pessoas que queiram trabalhar nele em período integral ou parcial e em quem confiamos. Portanto, não há competição na equipe nesse sentido. O principal problema é encontrar dinheiro para quem ainda quer fazer esse tipo de trabalho.

Eugene: Bem, você coletou dinheiro no Open Collective, você entendeu quem trabalhará em período integral, mas qual será o salário? Quem decide isso?

Nicolò: Ainda não sabemos. Isso é difícil de determinar porque precisamos entender quanto devemos pagar juntos. E ela não deseja acompanhar o tempo, portanto a taxa horária não é adequada. Você pode, é claro, pagar pelo resultado, mas o que fazer com tarefas demoradas ou com algumas tarefas tediosas que não dão um resultado instantaneamente claramente visível? Por exemplo, triagem de bugs ou ajuda as pessoas no Slack. Por isso, gostaríamos de determinar o tamanho do salário mensal, mas é muito difícil determinar quanto deve ser. Além disso, como estamos em diferentes partes do mundo, o que pode parecer riqueza para mim será muito pouco dinheiro para alguém. Então, tudo é complicado.

Eugene: É isso aí! Então você disse que, depois da universidade, trabalhará em código aberto e, enquanto isso - todos esses problemas financeiros ... Por outro lado, existem muitas grandes empresas comerciais como Google e Apple, e elas pagam bem. O que você acha deles? O trabalho em uma empresa tão internacional pode ter suas vantagens (e desvantagens).

Nicolò: Essas coisas não são mutuamente exclusivas, porque existem muitas empresas com grandes projetos de código aberto. Você pode trabalhar em uma grande empresa e, ao mesmo tempo, trabalhar em código aberto. Não sei se vou trabalhar nisso. Até agora, não preciso de muito dinheiro, mas depois da universidade terei que encontrar um emprego.

Dmitry: Até onde eu sei, você é um especialista visitante no TC39. Fiquei impressionado quando Sergey Rubanov disse que existem apenas 20 pessoas.Você pode me dizer como entrou nesse grupo?

Nicolò: O papel do especialista convidado é para pessoas que sabem muito em um campo específico, ou ajudam com muitos prozolos, ou ajudam o TC39 da comunidade. Tornei-me especialista convidado através do meu trabalho na Babel. Ele trabalhou em todos os itens relacionados à classe (como decoradores ou campos de classe). Também preciso analisar muitas outras proposições para sua implementação na Babel e para ajudar contribuidores externos a implementá-las.

Só participei do rally do TC39 apenas uma vez, mas no futuro ficaria feliz em ajudar o TC39 com tudo o que posso.

Dmitry: Você quer se tornar um delegado do TC39 no futuro?

Nicolò: Talvez. O TC39 geralmente não é para pessoas solteiras: geralmente você precisa trabalhar para uma empresa que ingressa no TC39. Mas se eu trabalhar em uma empresa assim, ficaria feliz em ajudar e me tornar um delegado.

Eugene: Por que você acha que o TC39 é tão importante? Por que você quer trabalhar com eles?

Nicolò: Porque eu amo JavaScript e gosto muito de ajudar a desenvolver a linguagem. Trabalhar com o TC39 é outra maneira de ajudar a desenvolver JavaScript. Precisamos fazer isso em prol da comunidade e ouvir as pessoas para tornar o JavaScript ainda melhor para todos.

Dmitry: Você acha que estudar em uma universidade é um requisito estrito para se tornar um desenvolvedor de sucesso?

Nicolò: Eu acho que não. Não estou estudando ciência da computação e é improvável que faça isso. Programei muito antes de entrar na universidade. Entrei para os desenvolvedores da Babel quando eu era estudante do ensino médio. Conheço muitos outros jovens que também não possuem diploma universitário em ciência da computação, mas que já se tornaram excelentes desenvolvedores e podem conseguir um bom emprego.

Eugene: No entanto, estudar em uma universidade pode fornecer alguns benefícios adicionais no trabalho, certo? Em um plano de carreira ou algo assim. A propósito, por que você foi à matemática?

Nicolò: Eu concordo que a universidade pode dar outra coisa, mas tenho certeza de que você pode ser um desenvolvedor de sucesso sem ela. Eu decidi estudar matemática porque eu gosto. Esta é a minha matéria favorita desde dez anos. Escolhi essa faculdade não porque preciso dela para o trabalho, mas porque gosto dela.

Se eu escolhesse uma universidade apenas com o que precisava, provavelmente preferiria a ciência da computação. Mas, ao mesmo tempo, se você gosta de estudar, uma universidade é uma das melhores maneiras.

Dmitry: Se você gosta tanto de matemática que estudou na universidade, por que escolher o JavaScript como o idioma principal em que investe e deseja melhorar? Por que não tomar Haskell ou algumas linguagens de aprendizado de máquina e ciência de dados?

Eugene: A matemática geralmente está associada ao aprendizado de máquina e outras coisas complexas. E a maioria das pessoas no meu ambiente considera o JavaScript algo totalmente sobre botões, botões, divs e tudo isso é totalmente inadequado para cientistas e matemáticos.

Nicolò: Comecei a programar em JavaScript porque tenho uma tia que ensina desenvolvimento web. Quando eu queria entender computadores, me virei para ela, e JS era uma das linguagens que ela propôs. Meu primeiro programa foi uma extensão de navegador, um truque para um jogo online que eu estava jogando naquele momento. E o JavaScript foi a única linguagem que me permitiu fazer isso.

Mais tarde, tentei Haskell e gostei. Eu gosto que ele está perto de matemática. Mas nunca aprendi o suficiente para escrever grandes aplicativos nele. Então, de fato, gosto do JavaScript apenas porque comecei a aprendê-lo primeiro e, portanto, o conheço melhor.

Dmitry: O que você acha de resolver tarefas diárias em alguma linguagem de programação? Isso poderia ser considerado uma boa maneira de ensinar programação?

Nicolò: Eu não sou muito bom em ensinar programação. Os alunos geralmente pensam em como aprender algo e esperam que os professores possam ensiná-los :) Acho que estamos na Babel em uma boa posição para facilitar o aprendizado de JavaScript para iniciantes. Por exemplo, depois de discutirmos a possibilidade de traduzir JavaScript para outras línguas humanas - por exemplo, se você é russo, pode escrever "se" em vez de "se". Nós não fizemos assim, e não sei se faremos no futuro. Mas este é um bom exemplo de como abaixar a barra de entrada.

Dmitry: A matemática precisa de um desenvolvedor JavaScript moderno?

Nicolò: Depende muito do que você vai fazer. A maioria dos aplicativos JavaScript não precisa de matemática, ou o mínimo é necessário lá. Se você está envolvido em web design, entender os senos e os cossenos pode ser útil, só isso. Acho que existem muitas outras linguagens em que a matemática é muito mais útil: por exemplo, no aprendizado de máquina ou na ciência de dados, onde o JavaScript quase nunca é usado, você precisa saber mais sobre matemática. Mas se você acabou de escrever servidores no Node.js ou em aplicativos clientes, é improvável que precise disso.

Eugene: Com o que você estuda? Bem, nós já sabemos sobre a universidade, mas talvez haja algo mais. Quaisquer podcasts, vídeos, mitaps, artigos na Internet ...

Nicolò: Eu leio principalmente blogs ou apenas documentação em bibliotecas ou idiomas. Eu realmente nunca usei vídeos ou podcasts porque é difícil ouvi-los por mais de uma hora. Como eu já disse, na minha infância, tive uma tia que me ensinou o básico da programação. E então eu comecei a me estudar. Eu costumava ter aplicativos de serviços de blog como o Medium instalados no meu smartphone, mas os excluí porque li muitos tutoriais e explicações para novos chips, em vez de me concentrar em minhas tarefas.

Eugene: E as fontes offline, como reuniões e conferências? Você participa deles?

Nicolò: Eu não estou muito familiarizado com a comunidade na minha cidade. Estive em um mitap uma ou duas vezes. Eu visitei minha primeira conferência há apenas alguns meses. Eu gostaria de interagir com a comunidade local, mas quando tentei da última vez, descobri que eu era o único lá com menos de 20 anos de idade. Eu me senti deslocado. Mas vou tentar novamente mais tarde e ver o que acontece.

Eugene: Você acha que existe idade na comunidade? Quero dizer, todo mundo com menos de 20 anos é visto como júnior?

Nicolò: Se todas as pessoas que você vê cerca de dez anos mais velhas, você fica desconfortável. Geralmente, os jovens não saem com uma geração muito mais velha. Eu acho que isso vai mudar com o tempo, será mais fácil se comunicar. Até agora, eu sempre estive perto de pessoas da minha idade, então a situação nas reuniões era completamente diferente. Mas, ao mesmo tempo, nunca fui proibido de participar e eles não disseram que eu era jovem demais. Ninguém questionou minhas habilidades por idade.

Eugene: Muitos desses eventos offline - reuniões, conferências, workshops - não se trata apenas de adquirir novos conhecimentos, mas também de networking. O que você acha das redes em geral? Quero dizer, conhecer pessoas, construir conexões, explorar a comunidade local ...

Nicolò: Eu acho que o networking é importante. Especialmente porque permite encontrar trabalho ou pessoas de interesses semelhantes. No momento, não estou sentindo a necessidade urgente de procurar pessoas off-line na minha cidade, porque já estou ocupada estudando e trabalhando em Babel e não tenho tempo para me comunicar com novas pessoas. Eu também gostaria de encontrar novos colaboradores em Babel, para mostrar às pessoas que, embora este seja um projeto popular, qualquer um pode contribuir lá.

Eugene: Você já esteve em alguma reunião da equipe de Babel ao vivo?

Nicolò: Sim, conheci parte da equipe do JSConf em Berlim. Esta não era a equipe inteira, mas uma parte significativa dos colaboradores ativos. Foi uma experiência maravilhosa, porque eu costumava me comunicar com essas pessoas apenas online. Embora às vezes fazemos videochamadas, foi muito bom conhecê-las ao vivo.

Dmitry: Esta é sua primeira vez na Rússia. O que você espera da viagem?

Nicolò: Bem, quando viajo, tento não fazer suposições ou expectativas. Acho que, se não espero nada com antecedência, a surpresa será muito melhor! E também sobre Moscou, eu sei apenas uma coisa - o bar, que meu amigo aconselhou a visitar. No entanto, ele não vive mais em Moscou, ele se mudou para a Itália há um ano ou mais. Talvez este bar esteja ao lado de sua antiga casa. Em geral, não há expectativas, eu quero olhar para tudo com um novo visual.

Dmitry: Espero que visitemos esse bar juntos. A propósito, bem, você tem planos para o HolyJS?

Nicolò: Espero ter muito prazer em conhecer pessoas. Conhecer pessoas, discutir Babel com elas e tentar interessar as pessoas é a parte mais agradável. Eu acho que qualquer conferência deve ajudar as pessoas a se unirem. E do ponto de vista não do participante, mas do orador - bem, eu só espero que tudo corra bem.

Dmitry: Claro que vai passar, estamos trabalhando nisso.

Nicolò fará uma apresentação sobre “@ babel / how-to” no HolyJS 2019 Moscow em 8 de novembro.

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


All Articles