„Niemand sagt anderen, was sie tun müssen“: Nicolò Ribaudo über die Entwicklung von Babel und mehr



Nicolò Ribaudo ist einer der Schlüsselentwickler von Babel, ein TC39-Gastexperte und auch ein Mathematikstudent.

Nicolò wird morgen bei HolyJS 2019 in Moskau auftreten. In Erwartung dessen sprachen Mitglieder des HolyJS-Programmkomitees Jewgeni Kot ( Bunopus ) und Dmitry Makhnev ( DmitryMakhnev ) mit ihm über die Entwicklung von Babel, die Aufgaben eines eingeladenen Experten, das Studium, den bevorstehenden Bericht über HolyJS ... und wie man es schafft, genug Schlaf zu bekommen.

Eugene: Beginnen wir mit einer einfachen Frage. Kannst du mir ein wenig über dich erzählen, was machst du?

Nicolò: Ich arbeite jetzt seit zwei Jahren an Babel. Ich studiere Mathematik, jetzt in meinem zweiten Jahr an der Universität. Das Programmieren und Lernen nimmt die meiste Zeit in Anspruch. Ich programmiere seit zehn Jahren und JavaScript ist meine Lieblingssprache. Ich denke, dass ich genau wegen JavaScript angefangen habe, zu Open Source beizutragen. Dies geschah vor ein paar Jahren.

Eugene: Jetzt arbeiten Sie im Babel-Kernteam, und das ist beeindruckend: Immerhin verwenden die meisten in JavaScript geschriebenen Produkte täglich Babel. Wie kommt es, dass du ins Team gekommen bist?

Nicolò: Ich habe angefangen, dazu beizutragen, weil ich es selbst benutzt habe und etwas für die Community tun wollte. Als ich zum ersten Mal in der Open Source Community auftrat, trug ich zuerst zu anderen Projekten bei und erfuhr dann von Babel, und er interessierte mich. Eigentlich gab es einen anderen, etwas egoistischen Grund: Ich wollte berühmt werden! Ich wollte an etwas arbeiten, das viele Leute kennen. Aber dann erkannte ich den wahren Grund, warum Leute an Open Source arbeiten, und arbeitete einfach weiter, weil es mir gefiel.

Eugene: Aber warum genau Babel? Es gibt viele verschiedene Open Source-Projekte auf der Welt.

Nicolò: Vor Babel habe ich mich in JSHint eingeschmuggelt, das gefällt mir auch. Dort habe ich viel über Parser gelernt. Deshalb habe ich Babel getroffen. Zuerst habe ich es nicht in einem Transformator gemacht, sondern in einem Parser. Darüber hinaus war ich mit diesem Projekt bereits vertraut und konnte es in meinen persönlichen Projekten ausprobieren. Daher schien es mir eine gute Idee zu sein, mit Babel umzugehen.

Eugene: Jetzt studierst du Mathematik und das ist eine ziemlich komplizierte Sache. Open Source ist auch nicht einfach zu schreiben. Wie schafft man es, all diese Dinge gleichzeitig zu kombinieren? Haben Sie 30 Stunden am Tag?

Nicolò: Letztes Jahr war es so schwer, ich habe 20 Stunden pro Woche gelernt und viel Freizeit gehabt. Jetzt ist es schwieriger, weil Sie 30 Stunden lang lernen müssen. Und ich möchte mindestens 20 Stunden pro Woche an Open Source-Projekten arbeiten. Dies ist abends und abends oder am Wochenende erforderlich.

Eugene: Schläfst du überhaupt?

Nicolò: Nach dem Mittagessen arbeite ich vielleicht drei oder vier Stunden. Ich versuche nicht zu recyceln. Aber manchmal ist es schwierig: Wenn Sie eine schwierige Aufgabe lösen und sich für den Prozess begeistern, müssen Sie sich zwingen, anzuhalten und einzuschlafen, damit Sie am nächsten Tag nicht einschlafen.

Eugene: Wird es irgendwie von Babel reguliert? Ich meine, gibt es eine Art Rückstand oder können Sie etwas tun, das Ihnen in den Sinn kommt? Wie funktioniert es

Nicolò: Wir haben keine strenge Prozessorganisation. Natürlich zeichnen wir Roadmaps, aber im Grunde entscheiden wir, was zu tun ist. Zum Beispiel wählen wir Aufgaben für die nächste Version aus, und dann kann jeder an einer von ihnen arbeiten.

Eugene: Es gibt immer einige coole Aufgaben und etwas Mühsames, das niemand tun möchte. Wie kombiniere ich es? Haben Sie einen Produktmanager, der Ihnen sagt, was Sie nächste Woche oder nächsten Monat tun sollen?

Nicolò: Wir veranstalten alle zwei Wochen Kundgebungen, und während dieser Kundgebungen entscheiden wir normalerweise gemeinsam, was mit ihnen zu tun ist, wenn es uninteressante Aufgaben gibt. Eine der langweiligsten Aufgaben ist beispielsweise die Behebung von Fehlern: Wir haben ungefähr 700 offene Tickets, von denen viele nicht mehr relevant sind. Möglicherweise wurden sie bereits an anderer Stelle repariert, oder das Problem bestand in der Konfiguration eines bestimmten Benutzers. Wie auch immer, wir versuchen sie einmal im Monat oder alle zwei Wochen zu untersuchen. Aber niemand sagt anderen, was sie tun müssen: Wir nehmen es auf uns.

Dmitry: Wirst du nach dem Abschluss Vollzeit an Babel arbeiten?

Nicolò: Wir versuchen jetzt zu verstehen, ob das Open Collective uns genug Geld bringt, damit dieses Jahr jemand aus dem Team Teilzeit für die Zahlung an Babel arbeiten kann. Da wir dem Projekt viel Zeit widmen, wäre es großartig, es als „echte“ Arbeit zu betrachten. Aber auch wenn Sie Babel nicht in einen solchen Job verwandeln können, würde ich nach dem Studium immer noch gerne an Open Source-Projekten arbeiten.

Eugene: Ich bin nicht mit diesem Schema vertraut, mit Open Collective ... Haben Sie irgendwelche Spenden und Geldsammlungen, und wie entscheidet das Team dann, wer in Vollzeit arbeiten wird?

Nicolò: Dies ist ein komplexes Thema, und wir diskutieren es normalerweise stundenlang, manchmal ohne Erfolg. Im Moment ist Henry die einzige Person, die Vollzeit arbeitet. Weil er die erste Gelegenheit hatte und weil er der Aufrechterhalter am längsten war. Aber jetzt versuchen wir zu verstehen, ob es noch Leute im Team gibt, die an Babel arbeiten wollen und können.

Der Versuch, ein solches von der Gemeinde finanziertes Projekt in Arbeit umzusetzen, ist mit Komplexität behaftet. Wenn Sie in einem regulären Unternehmen arbeiten, haben Sie immer das gleiche Gehalt und erhalten es garantiert. Aber wir sind auf Spenden angewiesen, und es stellt sich heraus, dass es schwierig ist, wichtige Entscheidungen im Leben zu treffen, wenn immer ein Risiko besteht. Daher ist es ziemlich schwierig, Leute zu finden, die Vollzeit oder sogar Teilzeit daran arbeiten wollen und denen wir vertrauen. Es gibt also keine Konkurrenz im Team in dieser Hinsicht. Das Hauptproblem besteht darin, Geld für diejenigen zu finden, die diese Art von Arbeit noch erledigen möchten.

Eugene: Nun, Sie haben Geld im Open Collective gesammelt, Sie haben verstanden, wer Vollzeit arbeiten wird, aber wie hoch wird das Gehalt sein? Wer entscheidet das?

Nicolò: Wir wissen es noch nicht. Dies ist schwer zu bestimmen, da wir verstehen müssen, wie viel wir zusammen bezahlen müssen. Und sie möchte nicht die Zeit im Auge behalten, daher ist der Stundensatz nicht geeignet. Sie können natürlich für das Ergebnis bezahlen, aber was tun mit langen Spielen oder mühsamen Aufgaben, die kein sofort klar erkennbares Ergebnis liefern? Zum Beispiel die Suche nach Fehlern oder die Hilfe für Leute in Slack. Wir möchten also irgendwie die Höhe des monatlichen Gehalts bestimmen, aber es ist sehr schwierig zu bestimmen, wie viel es sein soll. Da wir uns in verschiedenen Teilen der Welt befinden, wird sich außerdem herausstellen, dass das, was mir als Reichtum erscheint, für jemanden sehr wenig Geld ist. Also ist alles kompliziert.

Eugene: Das war's! Sie sagten, dass Sie nach der Universität an Open Source arbeiten werden und in der Zwischenzeit an all diesen finanziellen Problemen ... Auf der anderen Seite gibt es viele große kommerzielle Unternehmen wie Google und Apple, und sie zahlen ziemlich gut. Was denkst du über sie? Die Arbeit in einem so international agierenden Unternehmen kann Vor- und Nachteile haben.

Nicolò: Das schließt sich nicht aus, denn es gibt viele Unternehmen mit großen Open Source-Projekten. Sie können in einem großen Unternehmen arbeiten und gleichzeitig an Open Source arbeiten. Ich weiß nicht, ob ich daran arbeiten werde. Bisher brauche ich nicht viel Geld, aber nach dem Studium muss ich einen Job finden.

Dmitry: Soweit ich weiß, sind Sie Gastexperte bei TC39. Ich war beeindruckt, als Sergey Rubanov sagte, dass es nur 20 solcher Leute gibt. Können Sie mir sagen, wie Sie in diese Gruppe gekommen sind?

Nicolò: Die Rolle des eingeladenen Experten ist für Leute, die entweder viel auf einem bestimmten Gebiet wissen oder mit vielen Prozolos helfen oder TC39 aus der Community helfen. Durch meine Arbeit bei Babel wurde ich Gastexperte. Er arbeitete an allen klassenbezogenen Gegenständen (wie Dekorateuren oder Klassenfeldern). Ich muss auch viele andere Vorschläge für ihre Umsetzung bei Babel analysieren und externen Mitwirkenden bei der Umsetzung helfen.

Ich habe nur einmal an der TC39-Rallye teilgenommen, aber in Zukunft würde ich gerne TC39 mit allem helfen, was ich kann.

Dmitry: Möchten Sie in Zukunft ein TC39-Delegierter werden?

Nicolò: Vielleicht. TC39 ist im Allgemeinen nicht für Einzelpersonen gedacht: Normalerweise müssen Sie für ein Unternehmen arbeiten, das sich TC39 anschließt. Aber wenn ich in einem solchen Unternehmen arbeite, würde ich gerne helfen und Delegierter werden.

Eugene: Warum denkst du, dass TC39 so wichtig ist? Warum willst du mit ihnen arbeiten?

Nicolò: Weil ich JavaScript liebe und sehr gerne bei der Entwicklung der Sprache helfe. Die Arbeit mit TC39 ist eine weitere Möglichkeit, JavaScript zu entwickeln. Wir müssen dies zum Wohle der Community tun und den Menschen zuhören, um JavaScript für alle noch besser zu machen.

Dmitry: Denken Sie, dass das Studium an einer Universität eine strenge Voraussetzung ist, um ein erfolgreicher Entwickler zu werden?

Nicolò: Das glaube ich nicht. Ich studiere keine Informatik und es ist unwahrscheinlich, dass ich das tue. Ich habe lange vor meinem Eintritt in die Universität programmiert. Ich bin zu den Babel-Entwicklern gekommen, als ich ein Schüler war. Ich kenne viele andere junge Leute, die ebenfalls keinen Universitätsabschluss in Informatik haben, aber bereits hervorragende Entwickler geworden sind und einen guten Job bekommen können.

Eugene: Trotzdem kann das Studium an einer Universität einige zusätzliche Vorteile bei der Arbeit bringen, oder? In einem Karriereplan oder so ähnlich. Übrigens, warum bist du in die Mathematik gegangen?

Nicolò: Ich stimme zu, dass die Universität etwas anderes geben kann, aber ich bin sicher, dass Sie ohne es ein erfolgreicher Entwickler sein können. Ich habe mich für Mathematik entschieden, weil es mir gefällt. Dies ist mein Lieblingsfach seit zehn Jahren. Ich habe diese Fakultät nicht gewählt, weil ich sie für die Arbeit brauche, sondern weil sie mir gefällt.

Wenn ich eine Universität nur nach meinen Wünschen wählen würde, würde ich wahrscheinlich die Informatik bevorzugen. Wenn Sie jedoch gerne studieren, ist eine Universität eine der besten Möglichkeiten.

Dmitry: Wenn Sie Mathematik so sehr mögen, dass Sie dafür an die Universität gegangen sind, warum sollten Sie dann JavaScript als die Hauptsprache wählen, in die Sie investieren und die Sie verbessern möchten? Warum nehmen Sie nicht Haskell oder einige Sprachen für maschinelles Lernen und Data Science?

Eugene: Mathematik ist normalerweise mit maschinellem Lernen und anderen komplexen Dingen verbunden. Und die meisten Leute in meiner Umgebung betrachten JavaScript als etwas, das sich ausschließlich mit Front-End-Schaltflächen, Schaltflächen und Divs befasst, und dass all dies für Wissenschaftler und Mathematiker völlig ungeeignet ist.

Nicolò: Ich habe angefangen, in JavaScript zu programmieren, weil ich eine Tante habe, die Webentwicklung unterrichtet. Als ich Computer verstehen wollte, wandte ich mich an sie und JS war eine der von ihr vorgeschlagenen Sprachen. Mein erstes Programm war eine Browser-Erweiterung, ein Cheat für ein Online-Spiel, das ich damals spielte. Und JavaScript war die einzige Sprache, die mir dies ermöglichte.

Später habe ich Haskell ausprobiert und es hat mir gefallen. Ich mag es, dass er nah an Mathe ist. Aber ich habe es nie genug gelernt, um große Anwendungen darauf zu schreiben. Tatsächlich mag ich JavaScript, nur weil ich es zuerst gelernt habe und es daher am besten kenne.

Dmitry: Was denkst du über das Lösen alltäglicher Aufgaben in einer Programmiersprache selbst? Könnte dies als ein guter Weg angesehen werden, um Programmierung zu lehren?

Nicolò: Ich bin nicht sehr gut darin, Programmierung zu unterrichten. Die Schüler denken normalerweise darüber nach, wie sie etwas lernen können, und hoffen, dass die Lehrer sie unterrichten können :) Ich denke, wir bei Babel sind in einer guten Position, um Anfängern das Lernen von JavaScript zu erleichtern. Wenn wir zum Beispiel die Möglichkeit besprochen haben, JavaScript in andere menschliche Sprachen zu übersetzen, können Sie, wenn Sie zum Beispiel Russisch sind, "if" anstelle von "if" schreiben. Wir haben es nicht so gemacht und ich weiß nicht, ob wir es in Zukunft machen werden. Dies ist jedoch ein gutes Beispiel für das Absenken der Eingabeleiste.

Dmitry: Brauchen Mathematik einen modernen JavaScript-Entwickler?

Nicolò: Es hängt sehr davon ab, was Sie tun werden. Die meisten JavaScript-Anwendungen benötigen keine Mathematik, oder das Minimum wird dort benötigt. Wenn Sie sich mit Webdesign beschäftigen, kann es hilfreich sein, die Sinus- und Cosinuswerte zu verstehen. Ich denke, es gibt viele andere Sprachen, in denen Mathematik viel nützlicher ist: Zum Beispiel im maschinellen Lernen oder in den Datenwissenschaften, in denen JavaScript so gut wie nie verwendet wird, müssen Sie mehr über Mathematik wissen. Wenn Sie jedoch nur Server auf Node.js oder Clientanwendungen schreiben, ist es unwahrscheinlich, dass Sie dies benötigen.

Eugene: Womit lernst du? Nun, wir wissen bereits über die Universität Bescheid, aber vielleicht gibt es noch etwas anderes. Alle Podcasts, Videos, Mitaps, Artikel im Internet ...

Nicolò: Ich lese meistens Blogs oder nur Dokumentationen über Bibliotheken oder Sprachen. Ich habe nie wirklich Videos oder Podcasts verwendet, weil es mir schwerfällt, sie länger als eine Stunde anzuhören. Wie ich bereits sagte, hatte ich in meiner Kindheit eine Tante, die mir die Grundlagen des Programmierens beibrachte. Und dann fing ich an, mich selbst zu studieren. Früher waren auf meinem Smartphone Blog-Dienstanwendungen wie Medium installiert, aber dann habe ich sie gelöscht, weil ich zu viele Tutorials und Erklärungen zu neuen Chips gelesen habe, anstatt mich auf meine Aufgaben zu konzentrieren.

Eugene: Was ist mit Offline-Quellen wie Meetings und Konferenzen? Nimmst du an ihnen teil?

Nicolò: Ich kenne die Gemeinde in meiner Stadt nicht sehr gut. Ich war ein- oder zweimal auf einer Mitap. Ich habe meine erste Konferenz vor ein paar Monaten besucht. Ich würde gerne mit der örtlichen Gemeinde interagieren, aber als ich es das letzte Mal versuchte, stellte sich heraus, dass ich der einzige dort war, der unter 20 Jahre alt war. Ich fühlte mich fehl am Platz. Aber ich werde es später noch einmal versuchen und sehen, was passiert.

Eugene: Glaubst du, es gibt Ageismus in der Gemeinde? Ich meine, jeder, der unter 20 ist, wird als Junior angesehen?

Nicolò: Wenn alle Leute, die Sie sehen, ungefähr zehn Jahre älter sind, fühlen Sie sich unwohl. Normalerweise treffen sich junge Leute nicht mit einer viel älteren Generation. Ich denke, das wird sich im Laufe der Zeit ändern und die Kommunikation wird einfacher. Bisher war ich immer Menschen in meinem Alter nahe, daher war die Situation bei den Treffen völlig anders. Gleichzeitig war mir die Teilnahme nie verboten und sie sagten nicht, dass ich zu jung sei. Niemand stellte meine Fähigkeiten nach Alter in Frage.

Eugene: Bei vielen solchen Offline-Veranstaltungen - Meetings, Konferenzen, Workshops - geht es nicht nur darum, neues Wissen zu erwerben, sondern auch um das Networking. Was halten Sie von Networking im Allgemeinen? Ich meine, Leute treffen, Verbindungen aufbauen, die lokale Gemeinschaft erkunden ...

Nicolò: Ich denke, Networking ist wichtig. Vor allem, weil Sie so Arbeit oder Menschen mit ähnlichen Interessen finden können. Aber im Moment habe ich nicht wirklich das dringende Bedürfnis, offline nach Leuten in meiner Stadt zu suchen, weil ich bereits mit dem Studieren und Arbeiten an Babel beschäftigt bin und einfach keine Zeit habe, mit neuen Leuten zu kommunizieren. Ich würde auch gerne neue Mitwirkende in Babel finden, um den Leuten zu zeigen, dass, obwohl dies ein beliebtes Projekt ist, jeder dort einen Beitrag leisten kann.

Eugene: Warst du live bei einem Babel-Team-Meeting?

Nicolò: Ja, ich habe einen Teil des Teams bei JSConf in Berlin getroffen. Dies war nicht das gesamte Team, sondern ein wesentlicher Teil der aktiven Mitwirkenden. Es war eine wundervolle Erfahrung, weil ich mit diesen Leuten nur online kommuniziert habe. Obwohl wir manchmal Videoanrufe tätigen, war es sehr schön, sie live zu treffen.

Dmitry: Dies ist Ihr erstes Mal in Russland. Was erwartest du von der Reise?

Nicolò: Nun, wenn ich reise, versuche ich keine Annahmen oder Erwartungen zu machen. Ich denke, wenn ich im Voraus nichts erwarte, wird die Überraschung viel besser! Und auch über Moskau weiß ich nur eines - die Bar, die mein Freund besuchen sollte. Er lebt jedoch nicht mehr in Moskau, er ist vor ungefähr einem Jahr nach Italien gezogen. Vielleicht ist diese Bar gleich neben seinem früheren Zuhause. Generell gibt es keine Erwartungen, ich möchte alles mit einem frischen Look betrachten.

Dmitry: Ich hoffe, wir besuchen diese Bar zusammen. Übrigens, haben Sie Pläne für HolyJS?

Nicolò: Ich erwarte viel Freude daran, Leute zu treffen. Menschen kennenzulernen, Babel mit ihnen zu besprechen und zu versuchen, Menschen zu interessieren, ist der angenehmste Teil. Ich denke, dass jede Konferenz den Menschen helfen sollte, sich zu vereinen. Und aus der Sicht nicht des Teilnehmers, sondern des Sprechers - nun, ich hoffe nur, dass alles gut geht.

Dmitry: Natürlich wird es vergehen, wir arbeiten daran.

Nicolò wird am 8. November auf der HolyJS 2019 in Moskau einen Vortrag über „@ babel / how-to“ halten.

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


All Articles