Entretien de la communauté Python avec Will McGugan – Real Python

By | mars 31, 2021

python pour débutant

Aujourd'hui, je suis rejoint par Will McGugan. Will est un développeur Python indépendant basé en Écosse et le créateur de la populaire bibliothèque Python Riche.

Dans cette interview, nous discutons des origines de Riche, ce que signifie la maintenance d’un package Python populaire, la création de moteurs d’échecs et l’amour de Will pour la photographie.

Ricky: Merci de m'avoir rejoint pour cette interview, Will. Je voudrais commencer de la même manière que nous le faisons avec tous nos invités: comment êtes-vous entré dans la programmation et quand avez-vous commencé à utiliser Python?

Tête de Will McGugan

Sera: Merci de m'avoir invité!

J'ai découvert la programmation en tant qu'enfant dans les années 80. Pour les jeunes lecteurs, c'était exactement comme Choses étranges, moins les monstres CGI. Nous avions un ordinateur ZX Spectrum + à l'époque. Les graphismes étaient scintillants et le son était minuscule, mais j'étais accro. À un moment donné, j'ai découvert que vous pouviez taper des éléments sur le clavier et – si vous le faisiez correctement – l'ordinateur ferait ce que vous lui aviez dit.

Avance rapide de quelques années, et je travaille dans l’industrie des jeux vidéo. Je suis en train de créer un moteur de jeu et je recherche un langage de script pour gérer les mécanismes du jeu tandis que C ++ s'occupe des graphismes et du gros du travail. C’est là que je suis tombé sur Python, la version 2.1, je pense.

Je ne le considérais pas comme un langage de programmation approprié à l’époque, probablement parce qu’il était trop facile à utiliser et que la programmation devrait être difficile, non? Malgré tout, je me suis retrouvé à revenir à Python pour des scripts et des outils, qui sont progressivement devenus plus sophistiqués.

Ma «grande pause» en Python s'est produite lorsque j'ai trouvé un emploi pour l'Internet Chess Club. Ils recherchaient un développeur Python pour créer une nouvelle interface d'échecs. Par chance, j'avais déjà écrit une partie d'échecs et j'avais hâte de mieux utiliser mes compétences en Python. Depuis lors, Python a été l’objet principal de ma carrière et je n’ai pas regardé en arrière.

Ricky: Vous êtes développeur indépendant Python depuis dix ans. Comment l'espace indépendant Python a-t-il changé au cours de la dernière décennie? Et augmente-t-il avec la popularité de Python?

Sera: Mon expérience a été en tant que pigiste travaillant à domicile. C’est assez courant de nos jours, mais quand j’ai commencé, c’était vraiment surprenant pour la plupart des gens. Si vous êtes un développeur expérimenté, vous n’avez probablement pas avoir besoin travailler plus dans un bureau.

Python est maintenant courant. Les grandes entreprises de technologie ont adopté Python, et il est passé du statut de deuxième langue que les gens utilisent pour augmenter la productivité à une compétence très demandée. Je suis assez chanceux pour avoir un contrat à long terme, mais il ne semble pas y avoir de pénurie de travail contractuel ces jours-ci.

Ricky: Les gens peuvent vous connaître en tant que créateur de Riche, la bibliothèque de plus en plus populaire pour le formatage de la sortie du terminal. Qu'est-ce qui vous a motivé à créer la bibliothèque et comment sa popularité croissante (avec plus de 619 000 téléchargements par mois) a-t-elle affecté le développement de Riche?

Sera: Riche a été longtemps en cours d'élaboration! À un moment donné en 2015, je travaillais sur Moya, une plateforme d'application web et mon projet parallèle à l'époque. Moya avait une application de ligne de commande qui pouvait générer une sortie de terminal sophistiquée.

La classe de console que j'ai implémentée là-bas s'est avérée être une version prototypique de Riche. Cette classe de console n’était pas si bien pensée – plus un dépotoir pour tout ce qui concernait les terminaux – mais il y avait de bonnes idées là-bas.

Après avoir arrêté de travailler sur Moya, J'avais l'intention de refaire cette uberconsole pour qu'elle puisse être utilisée dans d'autres projets. Chaque fois que j'ai eu du mal à lire une sortie mal formatée dans le terminal, j'aurais aimé qu'elle existe déjà.

Vers la fin de 2019, j'ai commencé à y travailler. La première chose qui s'est réunie était le texte riche, d'où vient le nom. J'avais une classe qui pouvait marquer des étendues de texte avec de la couleur et du style d'une manière similaire au HTML. Un grand nombre des autres fonctionnalités qui sont venues plus tard ont été construites sur cette fonctionnalité de base. Je l'ai utilisé pour implémenter la coloration syntaxique, les tableaux, le Markdown et autres.

Lorsque Riche a commencé à devenir populaire, le changement le plus évident était le volume de bogues et de demandes de fonctionnalités que je recevais la plupart du temps. j'ai réalisé que Riche n'était plus mon jouet. Les gens l'utilisaient dans leur travail quotidien, les développeurs avec les clients et les patrons et les délais. Je me sentais responsable de corriger rapidement les bogues et d'implémenter les fonctionnalités demandées par les gens. Pour être honnête, cela a commencé à ressembler moins à un projet amusant à pirater le soir qu'à un travail.

Il y a un certain sentiment de perte là-dedans.

Ce qui m'a permis de continuer, ce sont les retours positifs. Un certain nombre d'utilisateurs ont déclaré l'avoir trouvé amusement travailler avec. Je suis content d'avoir persévéré, car j'aime voir les façons créatives que les gens utilisent Riche dans leurs applications de ligne de commande.

Ricky: Vous avez récemment ajouté des tableaux de bord de terminal à Riche, comme htop, juste beaucoup plus beau! Est-ce une fonctionnalité que les gens demandaient? Et quels défis techniques rencontrez-vous dans sa mise en œuvre?

Sera: La fonctionnalité des tableaux de bord du terminal est apparue lorsque j'ai lu un tweet sur ghtop. C'était un projet lancé par Nat Friedman, le PDG de GitHub. Hamel Husain et Jeremy Howard ont utilisé Riche pour embellir la sortie de ghtop, et ça avait l'air super! Voyant ça, j'ai réalisé que Riche avait beaucoup de potentiel pour ces types d'interfaces.

Pour rendre ces interfaces de type htop plus faciles à implémenter, j'ai ajouté une classe de mise en page qui pourrait subdiviser l'écran du terminal en parties, chacune avec son propre contenu.

Le seul véritable obstacle technique était que Riche ne savait pas que la hauteur était une dimension. Sortie en Riche pouvait avoir une largeur mais supposait qu'il pouvait écrire autant de lignes que nécessaire puisque l'utilisateur pouvait faire défiler vers le haut pour le voir. Dans un affichage plein écran, vous ne pouvez pas faire défiler, j'ai donc dû limiter le contenu à une hauteur fixe. Heureusement, cela n’a pas été un si grand changement.

Ricky: Comment les gens peuvent-ils commencer à utiliser Riche, et s'ils l'utilisent déjà, comment peuvent-ils aider le projet à continuer à réussir?

Sera: Riche est super facile à démarrer. Un one-liner, à partir d'une impression d'importation enrichie, peut remplacer le intégré imprimer() avec un imprimer avec des super pouvoirs. Vous obtenez gratuitement un habillage de mots, une coloration syntaxique et une jolie impression. Il n’est pas beaucoup plus difficile d’imprimer des éléments tels que des tableaux, des panneaux et Markdown. Les détails se trouvent dans le README et la documentation, ainsi que de nombreux exemples dans le référentiel GitHub.

J'essaie actuellement des sponsors GitHub afin de garder le rythme avec Riche. Les premiers 200 £ par mois iront à une association caritative contre le cancer de l'intestin. Il existe de nombreuses façons non financières d'aider au projet. Les rapports de bogues et les suggestions de fonctionnalités sont toujours les bienvenus.

J'apprécierais également les traductions du README, qui est jusqu'à présent en cinq langues (y compris l'anglais). Si le README n'est pas dans votre langue maternelle, envisagez de soumettre un PR avec la traduction!

Ricky: Maintenant, quelques dernières questions. Que faites-vous d'autre pendant votre temps libre? Quels autres passe-temps et intérêts avez-vous en dehors de Python et de la programmation?

Sera: Avant la pandémie, j'aimais beaucoup la photographie animalière. J'ai eu la chance de photographier des animaux incroyables tels que des ours, des dragons de Komodo et des orangs-outans dans leur habitat naturel. Lorsque le monde reviendra à la normale, j'aimerais faire beaucoup plus de cela.

Aujourd'hui, mes intérêts sont un peu plus proches de chez moi. J'aime cuisiner, surtout les recettes que j'ai vues sur YouTube. Dernièrement, j’ai essayé de maîtriser les plats de pâtes italiens classiques.

Ricky: Merci, Will, de m'avoir rejoint. Bonne chance avec Riche et son développement continu.


Si vous souhaitez contacter Will à propos de tout ce dont nous avons parlé aujourd'hui, vous pouvez le contacter sur Twitter. Vous aimeriez peut-être aussi commencer avec Riche.

S'il y a quelqu'un dans la communauté Python que vous aimeriez que je interviewe, laissez un commentaire ci-dessous ou contactez-moi sur Twitter. Bon codage!

[ad_2]