Aller au contenu principal

Plan de financement de Babel

· 10 min de lecture
Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

L'un des plus grands atouts du logiciel open source est d'être ouvert et gratuit pour toute contribution. Cela engendre aussi l'un de ses principaux défis : assurer une maintenance cohérente et durable.

Babel n'est pas une entreprise. Comme mentionné dans le billet 7.0.0, l'équipe entièrement bénévole de Babel (Henry excepté) a fait de son mieux pour piloter le projet et répondre aux attentes de la communauté. Nous sommes heureux d'avoir continué à publier des versions, mais même suivre les problèmes signalés est difficile à gérer, sans parler de nos intégrations avec d'autres outils, des nouvelles propositions et de notre impact sur l'écosystème.

En mars 2018, Henry a quitté son emploi pour travailler au financement de Babel. Après beaucoup d'efforts et avec le soutien de la communauté, l'équipe a pu financer Henry comme mainteneur à temps plein.

Cela a été une grande victoire pour l'équipe, mais nous constatons que ce n'est pas suffisant.

Nouveaux défis

Babel a parcouru un long chemin depuis ses origines sous le nom "6to5", dépassant la simple adoption et implémentation de fonctionnalités JavaScript. Il est devenu un acteur clé de leur développement :

  • La popularité de Babel a augmenté de façon exponentielle, passant de 3M de téléchargements hebdomadaires en mars 2018 à 16M aujourd'hui.

  • Babel participe désormais au processus de normalisation du TC39 en assistant aux réunions et discussions. "Existe-t-il déjà un plugin Babel ?" est une question récurrente pour les nouvelles propositions.

  • Babel est tellement intégré dans l'infrastructure sous-jacente que la plupart des développeurs l'utilisent indirectement, notamment via des CLI comme create-react-app, des bundlers comme Parcel, des frameworks comme Next.js et de nombreuses bibliothèques npm.

L'adoption généralisée apporte de nouveaux défis, et l'équipe lutte avec les problèmes de maintenance et de pérennité. Le projet a dépassé les ressources disponibles, et nous souhaitons partager notre plan pour résoudre ce problème.

Plan de financement

Nous pensons que Babel bénéficierait grandement du financement de plusieurs personnes, et souhaitons assurer un financement pour trois membres supplémentaires : Nicolò, Jùnliàng et Kai comme mainteneurs à temps partiel.

Nous fixons un objectif de financement supplémentaire de $12 000/mois via Open Collective. Soit $4 000/mois par personne, correspondant à un salaire à temps partiel.

Après avoir examiné différentes approches - rémunération horaire des contributeurs, bourses pour des fonctionnalités, primes pour des corrections spécifiques - nous avons opté pour un revenu stable. Cela permet un travail de meilleure qualité (sans pression pour accélérer le développement), une planification de feuille de route plus complète, la possibilité de prendre des pauses/vacances, et moins de préoccupations financières.

Cela dit, nous continuerons à évaluer la situation et resterons ouverts/transparents sur d'éventuels ajustements.

Nous tenons à adresser un immense merci à nos sponsors Open Collective : Handshake, Airbnb, AMP, Facebook, trivago, Salesforce, Frontend Masters, RunKit, Webflow, Adobe, Coinbase, BitMEX, ainsi qu'à tous les autres donateurs !

Graphique des dons mensuels Open Collective pour Babel

Une précision importante : Actuellement, Open Collective affiche uniquement le montant annuel total des dons, ce qui correspond mieux à un modèle de subvention ponctuelle. Nous estimons qu'afficher le montant récurrent mensuel reflète plus fidèlement la santé financière de notre projet. L'équipe espère contribuer à résoudre cette problématique.

Comment vous pouvez aider

Vous pouvez soutenir financièrement Babel via notre Open Collective !

Notre équipe utilise Open Collective pour financer ses membres. Entreprises et particuliers peuvent faire des dons, ponctuels ou récurrents.

Pour toute question concernant le soutien financier à Babel, contactez-nous par email.

Si votre entreprise est située dans une ville où réside l'équipe principale, nous serions ravis de vous rencontrer !

  • Henry est basé à New York et sera dans la région de la baie de San Francisco du 4 au 15 novembre.

  • Nicolò est basé en Italie et sera à Moscou du 6 au 10 novembre.

  • Brian est basé à Houston, Texas.

  • Jùnliàng est basé en Ontario.

  • Kai est basé dans la région de New York.

L'équipe apprécierait d'entendre comment vous utilisez Babel ou comment vous souhaitez vous impliquer.

Nos objectifs

Nous publierons prochainement des articles détaillés sur ces sujets, mais voici les axes prioritaires :

  • Stabilité : Vérification via les tests officiels test262. Ce soutien améliore notre conformité aux spécifications, identifie les manques, et ajoute des tests complémentaires avec Babel et ses principales dépendances. La fiabilité est cruciale compte tenu de notre position dans l'écosystème.

  • Débogabilité : Amélioration des avertissements/erreurs de configuration et explication des sorties pour optimiser la taille du code. La complexité inhérente à un outil modulaire suivant des spécifications évolutives rend la simplicité d'usage difficile. Nous voulons rendre Babel plus accessible.

  • Support écosystémique : Aider les bibliothèques à publier du code ES2015+, permettre aux développeurs de cibler les nouveaux navigateurs en livrant moins de code (code source, node_modules, polyfills) tout en restant compatible avec tous les navigateurs.

  • Codemods : Nous souhaitons accorder plus d'importance à la transformation de code dans le sens inverse (appelée 5to6, Lebab), une idée puissante qui peut aider à éduquer la communauté. Cela faciliterait la transition entre les changements de propositions (ou si une proposition est abandonnée ou mise en attente) via un outil de mise à niveau.

Et à long terme :

  • Proposal Advancement : Notre objectif est d'établir une boucle de retour d'information pour que les champions de propositions obtiennent une validation via des cas d'utilisation "réels" dans la communauté JavaScript. Cela ne pourra se produire que si le plugin est adopté, qu'il y a suffisamment de temps pour que les gens l'utilisent et en comprennent les implications, et qu'un flux de travail est en place pour dialoguer avec le comité TC39 et lui faire des retours. Nous souhaitons déterminer comment être au mieux une ressource pour que davantage de membres de la communauté comprennent le processus TC39 et s'impliquent dans l'amélioration de JavaScript dès la base. Cela nécessite que les plugins suivant les propositions soient créés en temps utile et maintenus, ce qui demande un effort considérable. C'est particulièrement vrai pour les plugins des propositions à un stade précoce, car ceux-ci nécessitent une maintenance continue au fur et à mesure que les propositions évoluent.

  • Éducation : En lien avec cela, nous aspirons à aider davantage de développeurs à comprendre les outils qu'ils utilisent. De nombreux outils et frameworks, particulièrement dans l'écosystème JavaScript, reposent sur des concepts fondamentaux similaires (comme les ASTs). Niveler les connaissances permet à plus de personnes de contribuer, de corriger des problèmes et d'apporter de nouvelles idées. Le développement de langages présente un seuil d'entrée élevé que notre projet peut aider à abaisser.

Comment les entreprises et les particuliers ont aidé par le passé

Nous savons qu'en tant que mainteneurs, nous devons faire la promotion de notre projet et de l'open source en général. Nos efforts jusqu'à présent ont consisté en :

  • Thinkmill a financé 3 mois de travail à temps partiel sur Babel pour Sebastian, le créateur de Babel, alors qu'il y était employé. Cela a été suivi par 3 mois de travail à temps partiel sur Babel chez Cloudflare. Puis près de 12 mois de travail à plein temps chez Facebook, qui ont inclus toute la version de Babel 6.

  • Adobe a financé 50% du travail de Henry sur Babel pendant son emploi chez eux.

  • Nous avons aidé des entreprises lors de hackathons internes orientés open source, notamment Condé Nast et Bloomberg, et organisé des ateliers sur l'open source et le développement de Babel dans des entreprises comme Netflix.

  • Interventions dans des entreprises comme Spotify/Facebook, meetups locaux, bootcamps, universités comme Berkeley, et participation à des événements Hacktoberfest.

Soutenir le projet ne se limite pas à des moyens financiers. Différentes entreprises ont autorisé leurs employés à implémenter certaines fonctionnalités spécifiques pendant leur temps de travail :

  • Les équipes de Bloomberg ont implémenté la prise en charge de différentes fonctionnalités de classes (comme les champs privés) et travaillent actuellement sur les tests automatiques des transformations de Babel en utilisant la suite de tests ECMAScript officielle (Test262).

  • Trivago, qui était également un sponsor de soutien de base, a implémenté la proposition d'application partielle.

  • RunKit a collaboré avec Nicolò en tant que contractant pour implémenter des espaces réservés syntaxiques dans @babel/template.

Le soutien représente en définitive une opportunité d'échanger et d'apprendre des mainteneurs, de fournir des retours concrets au projet et de construire une relation à long terme.

Nous obtenons de nombreuses idées précieuses grâce à nos relations avec les mainteneurs. C'est presque un substitut à l'embauche des meilleurs talents mondiaux, mais pour une durée limitée. Open Collective offre à une entreprise comme la nôtre un accès à un vivier de talents diversifié qu'il serait impossible de constituer en interne. - Guillermo Rauch

Vous souhaitez contribuer ? Découvrez comment dans la section Comment vous pouvez aider.

Conclusion

Dans un monde idéal, Babel ne serait même pas nécessaire. Cependant, en pratique, il existera toujours des écarts entre les propositions futures de JavaScript, le délai de mise en œuvre par les fournisseurs (après l'étape 3), les navigateurs pris en charge par un site donné, et les versions de Node.js compatibles pour une bibliothèque donnée. C'est dans cette fenêtre fonctionnelle qu'un outil comme Babel apporte une valeur significative.

Bien que nous soyons enthousiastes quant à l'avenir de Babel, l'équipe peine depuis longtemps à répondre aux exigences actuelles du projet. Atteindre nos objectifs de financement nous permettra non seulement de mieux répondre aux besoins actuels, mais aussi de préparer son avenir.

Nous espérons que vous nous rejoindrez pour soutenir cette communauté, que ce soit en sponsorisant l'équipe centrale ou en contribuant au projet.

Merci et nous espérons vous croiser, que ce soit en personne ou sur GitHub !