Interview avec Andrew Kelley, créateur de Zig
(youtube.com)- Zig vise à être un langage système qui conserve les performances et le contrôle du C tout en réduisant les footguns et les faiblesses de débogage, avec une approche qui tient directement compte du CPU et de la mémoire
- Son principal facteur de différenciation est la toolchain : l’objectif est de pouvoir tout compiler avec un simple
zig build, vers n’importe quel OS et depuis n’importe quel OS, sans dépendances au système - Le report de la 1.0 est un choix destiné à ne pas promettre trop vite la rétrocompatibilité, et sa structure associative à but non lucratif 501(c)(3) lui permet de se concentrer sur des améliorations de long terme
- La Zig Software Foundation a enregistré 670 000 dollars de revenus en 2024 et dispose de plusieurs formes de soutien ; elle a aussi migré de GitHub vers Codeberg en donnant la priorité au fonctionnement de la CI
- Une politique no LLM, no AI s’applique aux issues et aux pull requests, les contributions IA étant vues comme ayant une valeur négative car elles nuisent au temps de revue et au mentorat
Les débuts de Zig et la conception du langage
-
Contexte de création
- Andrew Kelley explique avoir successivement essayé JavaScript, Go, Rust et C++ pour créer une station de travail audio numérique, mais avoir jugé que chacun avait ses limites pour offrir l’expérience utilisateur voulue
- Il estimait que JavaScript était trop haut niveau dans le navigateur pour exploiter pleinement les capacités de l’ordinateur
- Selon lui, Go interopérait mal avec les bibliothèques C et, pour des tâches temps réel comme l’audio, le garbage collector pouvait provoquer des glitches ou des sauts, ce qui le rendait inadapté
- Avec Rust, avant la 1.0, il trouvait difficile de satisfaire les règles du langage, et même de petits changements pouvaient déclencher une cascade d’erreurs de compilation ; après avoir passé un mois à ajuster le rendu des polices, il a eu le sentiment qu’il serait difficile d’aller plus loin
- Au départ, C++ s’est révélé productif, mais de petites fautes de frappe ou erreurs pouvaient mener à des bugs de corruption mémoire nécessitant des semaines de débogage ; même en “C style C++”, avec un compilateur C++ et un linker C, le problème des footguns restait présent
- Le point de départ de Zig était de refuser de compromettre l’expérience utilisateur en fonction de ce que la toolchain autorise, et de la définir à partir de ce que l’ordinateur peut fondamentalement faire
-
Pourquoi Zig peut remplacer C
- Zig est considéré comme meilleur que C car il améliore les défauts et les faiblesses du C sans renoncer à sa puissance
- D’autres tentatives de remplacement de C abandonnaient certains de ses atouts, alors que Zig entend tout permettre de ce que C permet, tout en réduisant les footguns et en améliorant la capacité de débogage
- Là où C ne propose pour les entiers signés qu’une sémantique favorable aux optimisations, et pour les entiers non signés qu’une sémantique de wraparound, Zig permet de choisir, pour les deux, entre wraparound et garantie d’absence d’overflow, ce qui le rendrait plus “C que C”
- Pour remplacer C, il faut pouvoir écrire du code réutilisable partout, que ce soit pour des noyaux de systèmes d’exploitation, des appareils embarqués, des jeux vidéo ou WebAssembly ; si Zig offre des capacités et une fiabilité au niveau du C, l’idée est que les développeurs choisiront l’option la plus performante et la moins sujette aux bugs
-
Différences avec Rust
- La différence fondamentale entre Rust et Zig réside dans le système de types
- En Rust, il faut décrire dans un métalangage des règles telles que la prise en charge de
clonepar les paramètres de fonction, les interfaces supportées ou les types pouvant être passés - Zig, lui, passe des types concrets ou des types génériques qui se comportent comme des templates C++ sans recourir à ce genre de mécanisme
- Il y a un compromis entre, d’un côté, les garanties plus nombreuses offertes par le système de types de Rust et, de l’autre, la plus grande simplicité du code Zig à la lecture
- Rust prolonge un style proche du RAII de C++, où des objets référencent d’autres objets et sont automatiquement détruits lorsque le nombre de références tombe à zéro
- Zig rend les allocateurs beaucoup plus explicites ; le comptage de références reste possible, mais il faut l’écrire explicitement
- Avec Zig, on utilise souvent des stratégies d’allocation mémoire adaptées à l’application : regrouper les allocations avec un arena allocator puis les libérer d’un coup, employer un allocateur généraliste dans une approche orientée objet, ou créer une approche hybride pour un besoin spécifique
- L’idée d’écrire du code en réfléchissant à ce que l’on veut que le CPU fasse, puis en le lui faisant exécuter tel quel, est jugée plus naturelle en Zig qu’en Rust
-
Fonction phare et toolchain
- La fonctionnalité phare de Zig, c’est sa toolchain
- Il s’agit d’une suite logicielle sans dépendances système, capable de fonctionner sur n’importe quel système d’exploitation et de compiler du code pour n’importe quel système cible
- La difficulté à bidouiller un projet peut se mesurer au nombre de paquets système à installer depuis le README, aux procédures différentes selon l’OS, au nombre de commandes à exécuter pour configurer l’environnement, ou encore au besoin de Docker ou d’un matériel particulier
- Le meilleur critère est une ligne, une dépendance, ça marche toujours pour tout le monde, et dans le README d’un projet Zig, l’étape de build devrait se résumer à
zig build
-
Règles du langage et interface IO
- La règle qui transforme les variables inutilisées en erreur de compilation permettrait de gagner du temps en détectant des bugs lors de refactorings à grande échelle, et le coût d’ajouter un commentaire pour ignorer une variable resterait faible
- Grâce au support éditeur de l’équipe ZLS, on peut, en activant l’option correspondante, ignorer automatiquement les variables inutilisées puis retirer cet ignorement lorsqu’elles sont de nouveau utilisées
- La nouvelle interface IO reader / IO writer est une abstraction conçue pour écrire une seule fois du code réutilisable, par exemple pour une bibliothèque de chargement d’images ou du code de sérialisation de formats de données
- L’objectif est d’accepter un reader pour les données consommées et un writer pour les données produites, de séparer cela sous forme de package, puis de réutiliser la même logique dans plusieurs applications
- Quand la lecture et l’écriture se font sous une couche d’abstraction, le compilateur peut avoir plus de mal à comprendre la logique et à l’optimiser, ce qui peut entraîner une perte de performances
- L’idée qu’inclure un buffer dans l’interface constitue le bon compromis est présentée comme le point d’équilibre permettant au compilateur de produire un bon code tout en conservant la réutilisabilité
Cas d’usage, 1.0, et la direction après LLVM
-
Cas d’usage concrets
- Zig est présenté comme un langage à utiliser lorsqu’on veut contrôler complètement l’ordinateur, tirer le maximum des performances et de l’utilisation mémoire, et créer une expérience utilisateur convaincante
- Ghostty est un émulateur de terminal créé par Mitchell Hashimoto, considéré comme un bon projet du point de vue de la qualité du code, de la gestion de la communauté et des tests de fuzzing
- TigerBeetle est une base de données de transactions financières qui, au lieu d’adopter une stratégie consistant à empiler de l’OLTP sur une base de données relationnelle comme PostgreSQL, a créé une base de données à usage spécifique, décrite comme « mille fois plus rapide » que cette stratégie
- TigerBeetle préalloue à l’exécution toute la mémoire qu’il utilisera ensuite et n’effectue aucune allocation dynamique, ce qui permet de garder une latence prévisible et constante
- Bun est un moteur JavaScript qui utilise JavaScriptCore et plusieurs bibliothèques C++, et son code de glue est écrit en Zig
- Il dit savoir que Bun a récemment été vendu à Anthropic, et estime que cela a conduit davantage de personnes à vouloir utiliser Zig pour l’IA
- Uber utilise Zigcc comme compilateur C pour cross-compiler avec le code C dont dépend son code Go, et l’emploie pour les builds ciblant ARM64
-
Pourquoi la 1.0 tarde
- Zig n’a toujours pas de 1.0 après 10 ans, mais la 1.0 est essentiellement une promesse de compatibilité ascendante, et sa signification diffère selon les projets
- Il compare avec Go, qui n’a pratiquement pas touché au langage pendant longtemps après la 1.0, et Rust, qui a apposé la 1.0 assez tôt mais a pu faire évoluer sensiblement le langage tout en préservant la compatibilité ascendante via les éditions
- La Zig Software Foundation n’est pas une startup mais une organisation à but non lucratif 501(c)(3), elle n’est donc soumise ni à la pression d’investisseurs, ni à une vente, ni à un plan de sortie, et peut prendre le temps d’améliorer le projet sur le long terme
- Au moment de publier la 1.0, ils veulent qu’elle soit un « produit d’amour sans compromis », sans rester piégés par de mauvaises décisions figées dans la précipitation
- À propos de « worse is better », il considère que l’expression elle-même n’a pas de sens sur le plan linguistique, et que Zig poursuit plutôt le more with less
- L’objectif est d’obtenir un grand bénéfice avec une fonctionnalité
comptimepeu complexe, et de viser une toolchain capable de compiler vers des systèmes d’exploitation et architectures complètement différents avec un seul drapeau - Il est certain que l’adoption augmentera fortement une fois la 1.0 sortie, mais l’objectif est de créer un langage pour les 50 prochaines années
- Il estime que les résultats de ces choix commenceront à se voir dans la prochaine release
0.16
-
Pourquoi s’éloigner de LLVM
- La raison de s’éloigner de LLVM est la conviction qu’il faut éviter une dépendance centrale pour un produit central
- Il prend l’exemple du jeu d’arcade compétitif à 10 joueurs Killer Queen, dont le développeur utilisait Unity pour le moteur physique, au point qu’un petit changement du moteur physique ou la correction d’un bug modifiait les sensations du jeu compétitif et empêchait toute mise à jour vers une nouvelle version d’Unity
- Il estime que c’était une erreur d’avoir une telle dépendance sur un produit central, et que Zig est en train de corriger cela vis-à-vis de LLVM
- LLVM est comparé à des « petites roues » : après plus de 10 ans à construire Zig, ils en savent davantage sur le développement de compilateurs et considèrent pouvoir désormais retirer les petites roues et rivaliser avec LLVM
- Avec son propre backend x86, la compilation incrémentale permet d’obtenir un nouveau binaire en moins de 50 ms après une modification, même sur de très grosses bases de code de plusieurs millions de lignes
-
Le nom et le parcours d’apprentissage
- Le nom Zig a été choisi alors qu’il cherchait un mot court donnant 0 résultat pour « Zig programming language », en affichant des mots aléatoires via un script Python
- La mascotte iguane est appelée « ziguana »
- Pour les débutants, il recommande vivement Ziglings
- Ziglings se compose d’une série d’exercices où du code presque fonctionnel contient un problème, et où l’on apprend de nouvelles fonctionnalités du langage en réparant des programmes cassés
- La transition de C vers Zig est particulièrement fluide, et tout ce qu’on peut faire en C peut aussi être fait en Zig, avec moins de footguns
- En C, lorsqu’une segmentation fault se produit, on n’obtient en général rien d’autre que « segmentation fault » et il faut s’en remettre à sa capacité à utiliser un débogueur, alors qu’en Zig on peut obtenir une stack trace complète pointant vers chaque ligne de code
- Savoir si Zig doit être appris comme premier langage de programmation dépend de chacun, mais il estime que c’est un bon langage pour ceux qui veulent apprendre comment fonctionne un ordinateur, car il permet d’apprendre le CPU et la mémoire
Fonctionnement de la fondation, gouvernance et choix de plateforme
-
Finances et structure du sponsoring
- En 2024, les revenus totaux de la Zig Software Foundation s’élèvent à 670 000 dollars
- Les revenus proviennent de sources variées, entre sponsors individuels et dons de plusieurs entreprises, dans une structure où aucun acteur unique ne peut imposer une orientation au développement
- Si un sponsor particulier exige « faites ceci », ils peuvent refuser, et il estime qu’ils peuvent survivre même si ce sponsor coupe les fonds
- Les sponsors ne peuvent influencer le projet que de la même manière que les autres, par exemple via le bug tracker, l’envoi de pull requests ou les discussions sur les canaux de développement, et il n’existe pas de canal secret séparé à haute priorité
- Le salaire annuel d’Andrew Kelley est de 154 000 dollars, fixé par le premier conseil d’administration sur la base du salaire médian d’un ingénieur logiciel senior dans la ville où l’association à but non lucratif a été créée
- La fondation compte 1 employé et environ 5 contractuels rémunérés à temps plein, et 91 % des revenus de l’année précédente ont été versés à des contractuels travaillant sur le projet
- À propos d’une offre sans condition de 100 millions de dollars, il répond qu’il pourrait l’accepter, mais ne l’utiliserait pas pour croître et la placerait à la banque afin de ne pas avoir à lever de fonds pendant 100 ans
- Il gère actuellement une équipe de 5 personnes, estime qu’au-delà de 10 cela pourrait devenir lourd, et précise qu’il n’a pas l’intention de devenir le gestionnaire d’une organisation de 100 personnes
-
501(c)(3) et transparence
- Il distingue le 501(c)(3) du 501(c)(6)
- Le 501(c)(6) est une business league, et la Rust Foundation est citée comme exemple d’une structure où des entreprises comme Amazon, Netflix, Microsoft et Meta font des dons parce qu’elles ont un intérêt commun dans le succès de Rust
- Le 501(c)(3) n’autorise pas le lobbying auprès du gouvernement et n’existe que pour sa déclaration de mission, et non pour les intérêts des entreprises
- Le billet de blog qui publie en détail les revenus et les dépenses n’est pas une obligation mais un choix de transparence volontaire, et il considère que cela aide aussi la confiance et la levée de fonds parce que les indicateurs sont bons
-
Pourquoi il a quitté GitHub et les réseaux sociaux
- Il a quitté Reddit et Twitter parce que publier sur ces sites devenait de moins en moins pertinent, comme publier sur Slashdot ou Digg, et parce qu’il voulait minimiser le temps consacré au marketing en tant qu’ingénieur logiciel
- Il estime qu’il vaut mieux investir dans les événements en présentiel et les meetups pour faire croître la communauté que dans des réseaux sociaux où l’algorithme contrôle ce qui est visible ou oblige à interagir avec des trolls
- Si le dépôt principal de Zig a été déplacé de GitHub vers Codeberg fin 2025, c’est parce que GitHub ne fournissait plus correctement les résultats d’intégration continue et que « ça ne marchait tout simplement pas »
- Après le passage à Codeberg, les serveurs d’intégration continue se sont remis à fonctionner
- Quitter GitHub Sponsors a été un choix difficile, car cela pouvait faire perdre une source de revenus, mais il a jugé que pour écrire du logiciel, la priorité absolue était que la CI fonctionne
- Après avoir quitté GitHub, il affirme que financièrement, « tout va parfaitement bien »
- Zig est un logiciel sous licence MIT, un don sans condition au monde du logiciel, et il considère aussi le sponsoring comme un don sans condition
- Il a choisi Codeberg parce que la plateforme est fondamentalement similaire à GitHub, ce qui rendait la transition facile, et parce qu’il s’agit d’une association à but non lucratif allemande
- Il estime qu’une forge logicielle n’est pas un outil marketing pour le projet et que les gens découvrent le langage non pas sur GitHub ou Codeberg, mais via des annonces, des meetups, des vidéos YouTube ou des groupes de meetup Zigday
-
BDFL et gouvernance à long terme
- Les projets logiciels doivent souvent choisir entre un contrôle hiérarchique et des procédures démocratiques, et beaucoup optent pour le modèle BDFL par souci de simplicité
- Lorsqu’une seule personne contrôle, cette personne a la responsabilité de tout comprendre et de porter une vision cohérente du projet
- Dans un comité, différents cas d’usage et visions pourtant valides peuvent entrer en conflit, et lorsqu’il n’existe pas de conception unique capable de satisfaire simultanément deux cas d’usage, le compromis peut mener à un produit moins bon
- Même si Andrew Kelley partait, il estime que du point de vue de l’ingénierie logicielle, ses collègues sont très compétents et peuvent continuer à faire tourner le projet
- Du point de vue politique de l’organisation et de la fondation, il reste encore du travail, et il estime qu’un leadership hiérarchique fort est encore nécessaire aujourd’hui pour résister à l’influence de l’argent, dans une logique où tout système traversé par des flux financiers finit par se corrompre
- Une manière de fonctionner où un seul leader fort contrôle tout n’est pas durable, donc à long terme, la démocratie est nécessaire, mais le défi consiste à la concevoir de façon à éviter qu’elle ne se corrompe avec le temps sous l’influence de l’argent
-
Critères de succès
- Le succès de Zig est déjà atteint selon un certain point de vue
- Le projet dispose de sources de revenus diversifiées, est financièrement indépendant d’un acteur unique, a des utilisateurs satisfaits qui continuent à l’utiliser, publie environ deux releases par an et continue de s’améliorer
- D’un autre point de vue, il souhaite une adoption plus large, et l’un des critères de réussite est d’atteindre un niveau d’adoption comparable à Go et Rust
- L’adoption commerciale est utile parce qu’elle permet de recevoir des dons d’entreprises, mais il faut aussi veiller à préserver la diversité de ces financements
- Il estime que si l’on crée quelque chose d’utile de manière générale, cela devient aussi utile aux entreprises, et que cela se voit aussi dans la manière dont des gens utilisent Zig pour l’IA
Politique IA, outils de développement et avenir de la programmation
-
Politique stricte no LLM, no AI contribution
- Zig applique une politique stricte de no LLM, no AI pour les issues et les pull requests
- Les contributions IA sont jugées « toujours aussi nulles » et, non seulement sans valeur, elles ont une valeur négative en monopolisant du temps de review
- Il y a actuellement plus de 200 pull requests ouvertes, et le temps de review est le principal goulot d’étranglement entre une petite équipe de développement et de nombreux contributeurs
- Il estime qu’un schéma récurrent apparaît avec les contributions générées par IA : après quelques cycles de review, le contributeur ne comprend pas le contenu, colle les retours de review dans un chat, puis reformule la réponse obtenue comme si c’était la sienne
- La raison centrale des code reviews et de l’accueil de contributions est le mentorat, avec pour objectif d’aider les contributeurs à devenir plus tard des membres de l’équipe principale ou des contributeurs plus précieux
- Le « contributor poker » est le processus consistant à décider dans qui investir un temps limité pour en faire de meilleurs programmeurs et contributeurs
- Les personnes qui utilisent l’IA relèvent, selon lui, toujours de la catégorie des contributeurs ponctuels à faible valeur d’investissement, qui n’apprennent pas et n’ont aucune chance de rejoindre l’équipe principale
- Le projet Zig est aussi un projet éducatif, et fournir encadrement et formation aux étudiants fait partie de sa mission
- Si l’on n’autorisait que les « bonnes AI PR », il faudrait des arbitres pour juger, alors qu’une interdiction totale est une politique plus facile à appliquer
- Il reconnaît que détecter si quelque chose a été généré par IA n’est pas toujours simple et que certaines contributions ont pu passer, mais qu’en reviewant beaucoup de pull requests, cela devient parfois évident car les réactions aux retours ne sont pas celles d’un humain
-
Licence MIT et entraînement de l’IA
- Le codebase de Zig est sous licence MIT et, pour les personnes peu familières avec les licences logicielles, cela se rapproche en pratique du domaine public
- On peut l’utiliser pour presque n’importe quel usage ; il faut reproduire la licence lorsqu’on copie le code ; il n’y a aucune garantie et Zig ne peut pas être tenu responsable en cas de problème
- Il y a une forme d’ironie à autoriser les grandes entreprises à utiliser le code de Zig pour l’entraînement de l’IA, tout en interdisant à l’IA de contribuer à Zig
- Il considère fermement Zig comme un cadeau inconditionnel au monde, et juge donc acceptable son usage pour l’entraînement de l’IA
- Il n’a pas personnellement beaucoup essayé de voir si les LLM avaient plus de mal avec le code Zig qu’avec Python ou JavaScript, mais Mitchell Hashimoto dit utiliser largement le coding avec IA sur Ghostty
- Une personne sous le pseudonyme
Rockera créé des outils pour faire mieux fonctionner l’IA avec Zig et dit avoir obtenu de bons résultats
-
Vibe coding et avenir de la programmation
- Lire ce que des gens ont résolu et appris en menant un projet sur la durée stimule l’imagination, pousse à réfléchir à ce qu’on pourrait construire soi-même, et transmet quelque chose tout en créant un lien émotionnel
- Il estime que les blogs de vibe coding du genre « j’ai essayé cette version de Claude ou telle version d’OpenAI et ça a marché étonnamment bien » n’inspirent pas
- Il insiste sur le fait que les standards de qualité logicielle ne devraient pas être « étonnamment peu de bugs », mais une perfection sans compromis
- Il dit avoir essayé le vibe coding lors d’un appel privé avec Richard Feldman, et trouve la technologie elle-même fondamentalement intéressante
- En revanche, il ressent un fort rejet face au fait qu’environ quatre entreprises l’exercent sous contrôle centralisé et disposent d’un contrôle total sur les modèles et leur comportement
- Il dit ne pas vouloir passer d’une façon d’écrire du code avec son propre ordinateur et sa propre électricité à une programmation fermée sur l’ordinateur de quelqu’un d’autre via le réseau, vendue sous forme d’abonnement mensuel
- Certaines personnes paient 300 dollars par mois, et il dit que ce type d’offre lui paraît complètement fou
- Il pense que, dans 10 ou 20 ans, les humains écriront toujours du code, que coder est amusant et qu’au minimum cela restera toujours un hobby
- Selon lui, les meilleures apps sur téléphone et ordinateur sont celles créées par des gens sur leur temps libre comme hobby, et le logiciel libre/open source ainsi que le désir d’être maître de ses propres appareils ne disparaîtront pas
-
Environnement d’édition et outils de refactoring
- Il faut un environnement de travail résilient permettant de continuer à éditer du code même quand la syntaxe de Zig change
- Des outils avancés comme tree-sitter ou les language servers supposent un arbre syntaxique stable ou un langage stable ; si le langage casse, ils peuvent casser aussi
- À titre personnel, pour écrire du Zig, il utilise le terminal et Vim plutôt qu’un environnement sophistiqué, et Vim résiste très bien au changement
- ZLS signifie Zig language server ; c’est une implémentation du Language Server Protocol pour Zig et un projet tiers non géré par la Zig Software Foundation
- Le site web de Zig recommande les produits JetBrains, mais Andrew Kelley dit ne jamais les avoir utilisés parce qu’ils sont closed source
- Il apprécie les outils de refactoring de haut niveau qu’offraient autrefois JetBrains ou Eclipse, comme l’extraction de fonction, la réorganisation des paramètres de fonction ou le renommage global
- À long terme, il souhaite un outil de refactoring de type langage de requête capable d’effectuer de gros changements à partir d’informations de type et d’autres indices
- Pour des tâches au périmètre clair, comme renommer une variable, si un outil fiable s’en charge, on peut avoir une confiance de 100 % dans le résultat au point de créer un commit sans même devoir le relire
- Si l’on demande la même chose à un outil d’IA, il faut malgré tout encore relire le code ; cela prend donc plus de temps et constitue un moins bon choix qu’un outil de refactoring fiable
Motivation personnelle et vision de l’open source
-
Motivation à continuer Zig et difficultés
- Le travail sur Zig part de son amour des ordinateurs et de sa volonté de faire en sorte qu’ils soient au service des gens
- Zig est présenté comme un cadeau optimiste : l’idée qu’un excellent langage de programmation et une excellente toolchain peuvent mener à ce résultat
- Satisfaire les utilisateurs et créer une expérience utilisateur puissante lui procure une grande satisfaction, et il compare la sensation de créer un bon logiciel à celle qu’un musicien ressent en se produisant sur scène
- La partie la plus difficile est la fiscalité et les tâches administratives nécessaires au fonctionnement de l’organisation à but non lucratif
- C’est indispensable pour fonctionner sans problème juridique et recevoir d’importants dons, mais c’est actuellement Andrew Kelley qui s’en charge
- Certains jours, il fait de la comptabilité ; d’autres, il programme, et il considère les jours de programmation comme les bons jours
- Le changement d’interface IO reader / IO writer dans Zig 0.15 est le résultat d’une recherche du meilleur compromis, de la conception d’une API, de tests et de comparaisons avec d’autres langages de programmation pour trouver de nouvelles solutions, mais il a ensuite fallu corriger la bibliothèque standard et les projets de l’écosystème pendant six mois
-
Burn-out et conseils
- Il considère que le burn-out survient lorsqu’on fournit beaucoup d’efforts sans voir suffisamment de récompense en retour
- Andrew Kelley estime être généralement protégé du burn-out, car malgré les gros efforts, il voit des récompenses comme des utilisateurs satisfaits, les releases de Zig, les release notes et les améliorations
- Les travaux dont la récompense est retardée de plusieurs mois, comme les changements d’IO, peuvent donner l’impression d’un burn-out, mais cela s’améliore quand la récompense finit par arriver
- Aux personnes qui traversent un burn-out, il conseille d’abord de faire de l’exercice, de dormir suffisamment et d’avoir une alimentation saine
- Si l’on déteste ce qu’on fait, ou si l’on a le sentiment que son entreprise ne fait rien de valable pour le monde alors qu’on doit quand même travailler dur, les conditions du burn-out sont réunies
- Dans ce cas, chercher un autre emploi ou emprunter la voie difficile qui consiste à créer sa propre activité, comme une startup, est une option ; et si l’on travaille dans une « entreprise sans âme », il conseille de rentrer chez soi à 17 h, de faire autre chose et de ne pas trop s’investir
-
Projets admirés et diversité des navigateurs
- Le premier projet qu’il admire est Linux
- Selon lui, un monde avec uniquement des systèmes d’exploitation propriétaires serait bien pire ; Linux a aussi été bénéfique pour l’économie, car il a permis non seulement aux développeurs du logiciel libre et open source, mais aussi à des pays et des entreprises du monde entier, de bâtir gratuitement leur activité
- Le deuxième est Blender, qu’il apprécie comme projet open source et organisation à but non lucratif qui est utilisé professionnellement et qui rivalise — et l’emporte — face à des entreprises disposant de beaucoup d’argent et de développeurs
- Le troisième est VLC ; il se souvient que lorsqu’il contribuait autrefois à FFmpeg, l’organisation VLC prenait en charge les frais de déplacement pour les VideoLAN Dev Days des personnes qui avaient contribué à VLC ou à des bibliothèques dont il dépend
- S’il utilise Firefox, c’est à cause de ses inquiétudes concernant la diversité des navigateurs
- Après l’arrêt d’Internet Explorer par Microsoft, les principaux navigateurs restants ne sont plus que Chromium, Safari et Firefox, et il estime que le fait que Chromium domine l’essentiel du marché pose problème pour le Web
- Ces derniers temps, il n’est pas satisfait de Mozilla et dit y voir beaucoup de corruption et des cas qui donnent l’impression d’un manque d’alignement avec les utilisateurs, alors même qu’il s’agit d’une organisation à but non lucratif
- Chromium dépend de Google, Safari d’Apple, Firefox semble en déclin, les alternatives manquent et il dit ne pas savoir quoi faire tant que les nouveaux projets de navigateurs n’auront pas mûri
-
Recommencerait-il Zig en revenant en 2015 ?
- Il répond que s’il revenait en 2015, il lancerait Zig sans hésiter
- Le jour où il a quitté OkCupid pour se consacrer à Zig à plein temps a été, au regard de la trajectoire qu’a ensuite prise sa vie, le meilleur jour de son existence
- Zig lui a apporté un profond sentiment d’accomplissement, de l’indépendance, une estime de soi et le sentiment de contribuer à la société
- Il a le sentiment d’être, fondamentalement, quelqu’un de difficile à employer ; pour être heureux, il devait devenir son propre patron, et c’est une fois dans cette situation qu’il a trouvé le bonheur
1 commentaires
Avis sur Lobste.rs
On ne peut pas vraiment reprocher à JetBrains d’avoir rendu l’interview plus sensationnaliste pour la faire devenir virale, mais au final les meilleures questions n’étaient pas celles sur Zig contre Rust, plutôt celles sur Zig en tant que projet porté par une organisation à but non lucratif, la durabilité et un travail fait avec amour
À mon avis, cela a très bien montré au monde le côté humain qui brûle discrètement derrière le projet
La vidéo semble viser bien davantage les personnes curieuses de Zig et celles qui s’intéressent à la gestion d’un projet que des gens qui utilisent déjà beaucoup Zig, et elle n’a fait qu’aborder sans les éviter des sujets que ce public est susceptible de connaître
L’intervieweur a aussi laissé les propos d’Andrew se révéler d’eux-mêmes au lieu d’attiser le feu, et pour ce type de format, c’était très réfléchi
Cela dit, j’ai quand même ri en voyant les mots qu’ils avaient décidé de mettre en sous-titres, car je ne sais pas combien de personnes peuvent s’intéresser à Zig sans savoir ce qu’est Linux ou la définition de l’abstraction
Globalement, j’ai eu une impression extrêmement positive, autant de la manière de présenter Zig que de l’équipe marketing de JetBrains
C’est essentiellement un outil pour consulter en ligne de commande la documentation de la bibliothèque standard Zig et des dépendances découvertes dans le graphe de build
Le fait de ne pas se précipiter vers la 1.0 est un cadrage séduisant, mais Zig a aussi de la chance d’avoir des utilisateurs prêts à accepter les secousses liées aux changements de l’écosystème
Pas le C++, juste le C
Je me demandais sans arrêt si je ferais mon prochain projet embarqué en Zig ou en Rust, et maintenant j’ai le sentiment que « le moment est venu »
Cette interview pourrait bien être le déclencheur décisif pour moi, et il y a là une tonalité d’ensemble qui résonne fortement
Elle traitait très bien d’un aspect qui relève des fonctionnalités centrales de Zig, donc d’un domaine où l’équipe doit avoir davantage de contrôle