尼科洛·里鲍多(NicolòRibaudo)是Babel的主要开发人员之一,是TC39访问专家,也是一名数学学生。
Nicolò 将于明天在HolyJS 2019莫斯科演出 。 因此,HolyJS程序委员会的叶夫根尼·科特 ( Yevgeny Kot )和德米特里·马赫涅夫 ( Dmitry Makhnev) ( DmitryMakhnev )的成员与他讨论了发展Babel,受邀专家的任务,研究,即将发布的有关HolyJS的报告...以及如何设法获得充足的睡眠。尤金:让我们从一个简单的问题开始。 你能告诉我一些关于你自己的事吗?
Nicolò:我从事Babel已有两年了。 我现在在大学的第二年,正在学习数学。 编程和学习占用了我的大部分时间; 我已经编程十年了,JavaScript是我最喜欢的语言。 我认为正是因为JavaScript,我才开始为开源做贡献,这是几年前发生的。
Eugene:现在您在Babel核心团队中工作,这给人留下了深刻的印象:毕竟,大多数用JavaScript编写的产品每天都在使用Babel。 您是如何加入团队的?
Nicolò:我开始为它做贡献是因为我自己使用它,并想为社区做点事情。 当我第一次出现在开源社区中时,我首先为其他项目做出了贡献,然后发现了有关Babel的内容,他对我很感兴趣。 实际上,还有另一个原因,有点自私:我想出名! 我想从事许多人都知道的事情。 但是后来我意识到了人们从事开源工作的真正原因,并且因为我喜欢它而继续工作。
尤金:但是为什么是通天塔? 世界上有许多各种各样的开源项目。
Nicolò:在Babel之前,我偷渡到JSHint,我也喜欢。 在那里我学到了很多关于解析器的知识。 这就是我遇见通天塔的原因。 起初,我不是在转换器中执行的,而是在解析器中执行的。 而且,我已经熟悉了这个项目,并设法在我的个人项目中进行尝试,因此与Babel打交道似乎是个好主意。
尤金:现在您正在学习数学,这是一件相当复杂的事情。 开源也不容易写。 您如何同时将所有这些东西组合在一起? 您一天有30个小时吗?
Nicolò:去年非常辛苦,我每周学习20个小时,并且有很多空闲时间。 现在变得更加困难,因为您必须学习30个小时。 我想每周至少从事20个小时的开源项目工作。 必须在晚上和晚上或周末执行此操作。
尤金:你甚至睡觉吗?
Nicolò:午餐后,我大概工作三四个小时。 我尽量不回收。 但是有时候这很困难:当您完成一项艰巨的任务并对流程充满热情时,您必须强迫自己停下来入睡,以便第二天就不会入睡。
尤金:它是否受到通天塔的管制? 我的意思是,是否存在某种积压,或者您能想到什么? 如何运作?
Nicolò:我们没有严格的流程组织。 当然,我们会绘制路线图,但是基本上我们会决定要做什么。 例如,我们为下一个版本选择任务,然后每个人都可以处理其中的任何任务。
尤金(Eugene):总有一些很酷的任务,而且乏味,没人想做。 如何结合呢? 您不知道有什么产品经理会告诉您下周或下个月要做什么吗?
Nicolò:我们每两周举行一次集会,在这些集会中,如果有任何有趣的任务,我们通常会共同决定如何处理它们。 例如,最无聊的任务之一是对错误进行故障排除:我们有大约700张公开票,其中许多不再相关。 也许它们已经在其他地方修复过,或者特定用户的配置存在问题。 无论如何,我们会尝试每月一次或每两周一次对它们进行分类。 但是没有人告诉别人他们需要做什么:我们把它放在自己身上。
德米特里:毕业后,您会全职从事Babel吗?
Nicolò:我们现在正在尝试了解开放集体是否为我们带来了足够的资金,以便今年团队中的某人可以开始兼职从事Babel的付款工作。 由于我们在该项目上花费了大量时间,因此将其视为“真实”工作将是一件很棒的事情。 但是,即使您无法将Babel变成这样的工作,大学毕业后我仍然想从事开源项目。
尤金(Eugene):我对Open Collective的这个计划不熟悉...您是否有任何形式的捐款和资金堆积,然后团队如何决定谁将全职工作?
Nicolò:这是一个复杂的话题,我们通常讨论几个小时,有时无济于事。 现在,亨利是唯一一个全职工作的人。 因为他拥有第一个机会,并且因为他是最长的维护者。 但是现在我们正在尝试了解团队中是否还有想要并且可以在Babel上工作的人。
将这样一个由社区资助的项目变成工作的尝试充满了复杂性。 如果您在一家正规公司工作,您总是有相同的薪水,并且可以保证得到。 但是我们依赖捐赠,事实证明,在总是有风险的情况下,很难做出重要的人生决定。 因此,很难找到想要全职甚至兼职从事这项工作并且得到我们信任的人。 因此,这方面团队中没有竞争。 主要的问题是为仍然想要从事此类工作的人找钱。
尤金:嗯,您在公开集体赛中集资,您知道谁将全职工作,但是薪水是多少? 谁来决定?
Nicolò:我们还不知道。 这很难确定,因为我们需要了解我们必须共同支付多少。 而且她不想跟踪时间,因此小时费率不合适。 当然,您可以为结果付费,但是对于长时间播放或无法立即获得清晰可见结果的繁琐任务,该怎么办呢? 例如,对错误进行分类或帮助Slack中的人员。 因此,我们想以某种方式确定月薪的大小,但是很难确定月薪的大小。 此外,由于我们位于世界的不同地区,所以对我来说,似乎富裕的钱对某人来说却很少。 因此,一切都很复杂。
尤金:就是这样! 您说过大学毕业后,您将从事开源工作,与此同时,所有这些财务问题……另一方面,还有许多大型商业公司,例如Google和Apple,他们的报酬非常好。 您如何看待他们? 在这样的超级国际公司工作可能会有其优点(和缺点)。
Nicolò:这些不是互斥的,因为有许多公司都有大型开源项目。 您可以在一家大公司工作,同时也可以在开源上工作。 我不知道我是否会工作。 到目前为止,我不需要很多钱,但是大学毕业后,我将不得不找到工作。
德米特里:据我所知,您是TC39的访问专家。 谢尔盖·鲁巴诺夫(Sergey Rubanov)说只有20个这样的人给我留下了深刻的印象,你能告诉我你是如何加入这个小组的吗?
Nicolò:受邀专家的作用是给那些在特定领域中广博的知识,或为许多原生动物提供帮助,或为社区中的TC39提供帮助的人们。 通过在Babel的工作,我成为了一名客座专家。 他从事所有与班级相关的项目(例如装饰器或班级领域)。 我还需要分析在Babel实施这些方案的其他建议,以帮助外部贡献者实施这些建议。
我只参加过一次TC39集会,但将来我很乐意尽全力帮助TC39。
德米特里:您想将来成为TC39代表吗?
尼科洛:也许吧。 TC39通常不适合单身人士:通常,您需要在加入TC39的公司工作。 但是,如果我在这样的公司工作,我将很乐意帮助并成为代表。
尤金:为什么您认为TC39如此重要? 您为什么要与他们合作?
Nicolò:因为我喜欢JavaScript,所以我非常喜欢帮助开发该语言。 使用TC39是帮助开发JavaScript的另一种方法。 为了社区,我们需要这样做,并听取人们的意见,以使JavaScript更好地适合所有人。
德米特里:您认为要成为一名成功的开发人员,在大学学习是一项严格的要求吗?
Nicolò:我不这么认为。 我不在学习计算机科学,因此不太可能这样做。 我很早就进入大学编程。 高中时,我加入了Babel开发人员。 我知道还有许多年轻人也没有计算机科学的大学学位,但是他们已经成为优秀的开发人员并且可以找到一份好工作。
尤金:不过,在大学学习可以在工作中带来一些额外的好处,对吗? 在职业规划之类的东西中。 顺便说一句,你为什么要去数学?
Nicolò:我同意大学可以提供其他帮助,但是我敢肯定,没有它,您可以成为一名成功的开发商。 我决定学习数学,因为我喜欢它。 这是我十年来最喜欢的学科。 我选择该系不是因为我需要工作,而是因为我喜欢它。
如果我仅根据需要选择一所大学,我可能会更喜欢计算机科学。 但是同时,如果您想学习,大学是最好的方法之一。
德米特里(Dmitry):如果您非常喜欢数学,以至上了大学,那么为什么选择JavaScript作为主要的语言投资并希望提高呢? 为什么不采用Haskell或某些机器学习和数据科学语言?
尤金(Eugene):数学通常与机器学习和其他复杂事物相关联。 在我所处的环境中,大多数人都认为JavaScript完全与前端按钮,按钮,div有关,而这完全不适合科学家和数学家使用。
Nicolò:我开始用JavaScript编程是因为我有一个姑姑在教Web开发。 当我想了解计算机时,我求助于她,而JS是她提出的语言之一。 我的第一个程序是浏览器扩展程序,这是我当时玩的在线游戏的作弊手段。 JavaScript是允许我执行此操作的唯一语言。
后来我尝试了Haskell,我喜欢它。 我喜欢他接近数学。 但是我从来没有学过足够的知识来编写大型应用程序。 因此,实际上,我喜欢JavaScript只是因为我首先开始学习它,因此我对它最了解。
德米特里:您如何看待自己用某种编程语言解决日常任务? 可以认为这是教授编程的好方法吗?
Nicolò:我不是很擅长编程。 学生通常会考虑如何学习一些东西,并希望老师可以教他们:)我认为Babel处于有利于使初学者更轻松地学习JavaScript的良好位置。 例如,一旦我们讨论了将JavaScript转换为其他人类语言的可能性-例如,如果您是俄语,则可以写成“ if”而不是“ if”。 我们没有这样做,而且我不知道我们将来是否会这样做。 但这是如何降低输入栏的一个很好的例子。
德米特里:数学需要现代的JavaScript开发人员吗?
Nicolò:这在很大程度上取决于您要做什么。 大多数JavaScript应用程序都不需要任何数学运算,或者那里至少需要数学运算。 如果您从事网页设计,那么了解正弦和余弦可能会派上用场。 我认为还有许多其他语言可以使数学更有用:例如,在机器学习或数据科学中,几乎从未使用过JavaScript,因此您需要了解有关数学的更多信息。 但是,如果仅在Node.js或客户端应用程序上编写服务器,则不太可能需要它。
尤金:你学习什么? 好吧,我们已经对大学有所了解,但是也许还有其他事情。 Internet上的任何播客,视频,mitaps,文章...
Nicolò:我主要阅读博客,或者只是阅读有关图书馆或语言的文档。 我从未真正使用过视频或播客,因为我很难听一个多小时。 正如我已经说过的,在我的童年时代,我有一个姨妈教我编程的基础知识。 然后我开始学习自己。 我曾经在智能手机上安装过类似Medium的博客服务应用程序,但是后来我删除了它们,因为我读了太多关于新芯片的教程和说明,而不是专心工作。
尤金(Eugene):关于会议和会议等离线资源呢? 你参加吗?
Nicolò:我对我所在城市的社区不是很熟悉。 我去过一次mitap。 几个月前,我参观了我的第一次会议。 我想与当地社区互动,但是当我上次尝试时,结果证明我是那里唯一的一个20岁以下的人。 我感觉不对劲。 但我稍后会再试,看看会发生什么。
尤金:您认为社区中存在年龄歧视吗? 我的意思是,每个20岁以下的人都被视为初级?
Nicolò:如果您看到的所有人
都比您大大约十岁,那会让您不舒服。 通常,年轻人不会与年龄更大的一代一起闲逛。 我认为这会随着时间的推移而改变,更容易沟通。 到目前为止,我一直与这个年龄的人保持密切联系,所以会议的情况完全不同。 但与此同时,我从未被禁止参加,他们也没有说我太年轻。 没有人按年龄质疑我的能力。
尤金(Eugene):很多这样的离线活动-会议,会议,讲习班-这不仅与获取新知识有关,而且还与网络有关。 您对网络的总体看法如何? 我的意思是,与人会面,建立联系,探索当地社区...
Nicolò:我认为网络很重要。 尤其是因为它使您可以找到兴趣相似的工作或人。 但是现在,我真的没有迫切需要在城市中寻找离线用户,因为我已经在忙于学习和工作Babel,而且我没有时间与新人们交流。 我还想在Babel中找到新的参与者,向人们表明,尽管这是一个受欢迎的项目,但任何人都可以在其中做出贡献。
尤金:您去过现场直播的Babel团队吗?
Nicolò:是的,我在柏林的JSConf遇到了团队的一部分。 这不是整个团队,而是积极贡献者的重要组成部分。 这是一次绝妙的经历,因为我以前只与这些人在线交流。 尽管我们有时会进行视频通话,但很高兴与他们见面。
德米特里:这是您第一次来俄罗斯。 您对这次旅行有什么期望?
Nicolò:好吧,当我旅行时,我尽量不要做任何假设或期望。 我认为,如果我不期望任何事,那么惊喜会变得更好! 而且,关于莫斯科,我只知道一件事-酒吧,我的朋友建议去参观。 但是,他不再住在莫斯科,一年前移居意大利。 也许这家酒吧就在他的故居旁边。 总的来说,没有期望,我想以崭新的面貌看待一切。
德米特里:我希望我们一起去那家酒吧。 顺便说一句,您对HolyJS有什么计划吗?
Nicolò:我希望与其他人见面会很高兴。 认识人们,与他们讨论Babel并试图引起人们的兴趣是最愉快的部分。 我认为任何会议都应该帮助人们团结起来。 从不是参与者的角度,而是从演讲者的角度,-我只是希望一切顺利。
德米特里:当然会过去,我们正在努力。
Nicolò将于11月8日在莫斯科HolyJS 2019上发表有关“ @ babel / how-to”的演讲。