Journal Interview de Mark Nudelman, auteur de less et mainteneur actif depuis 34 ans

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
49
26
juil.
2017

Bonjour,

Vous connaissez less, l’utilitaire à la ligne de commande pour visualiser des fichiers textes ?
article sur Wikipédia sur less

Eh bien, voilà une petite histoire sur less.

En voulant configurer aux petits oignons l’utilitaire less j’en suis arrivé à me demander comment définir les variables LESS_TERMCAP_* dans la configuration ~/.less avec l’utilitaire lesskey. Et j’ai trouvé que je n’étais pas le seul dans cette situation, avec une question similaire posée par Cyker : https://unix.stackexchange.com/328597.

J’ai donc relevé mes manches et avec l’aide de gdb-dashboard, et au bout de nombreuses heures, j’ai fini par cerner que les variables en internes représentant les valeurs de LESS_TERMCAP_* étaient initialisées avant le chargement de la configuration ~/.less. J’avais beau les configurer correctement dans ~/.less, mes paramètres de configuration LESS_TERMCAP_* ne pouvaient pas être pris en compte !

Je commence par expliquer ma trouvaille : https://unix.stackexchange.com/a/377221.

Et me vient l’idée de faire un rapport de bogue aux mainteneurs de less, dont je trouve rapidement la page Web : http://greenwoodsoftware.com/less/.

Je contacte son unique mainteneur, Mark Nudelman, qui est aussi son auteur originel depuis 34 ans ! Et commence une collaboration éphémère par courriel afin de trouver une bonne correction sans régression.

Ce fut pour moi un moment intense en émotions, où non seulement j’ai échangé avec l’auteur du (d’un des) logiciel(s) le(s) plus utilisé(s) de toute l’histoire de l’informatique, mais en plus, Mark Nudelman est un des rares développeurs à continuer de maintenir activement son logiciel après 34 ans d’évolutions de révolutions informatiques, c’est une légende !

Dans notre dernier échange, j’ai demandé timidement s’il serait d’accord d’accorder à LinuxFr.org un entretien. Et voici que Mark Nudelman vient tout juste de donner sa réponse :

Do you mind, if I ask you some questions to publish on LinuxFr.org?
I hope you agree for the interview.

Sure, it’s fine with me if you want to ask some questions. But if you ask details about the early days of less, I can’t guarantee that I’ll remember the details from over 30 years ago!

--Mark

Donc, c’est oui, Mark est partant.

Ce qui est incroyable, c’est qu’en parcourant le code source de less (et de lesskey) on retourne à l’informatique des années 80 et des années 90. Mark semble prendre soin de garder une compatibilité avec les vieux compilateurs et les vieux systèmes de ces années.

Il y a même des #if OS2 ! Mais il paraitrait que OS/2 soit encore apprécié et utilisé (disponible de nos jours sous le nom de eCS/2, mais là c’est une autre histoire).

Très récemment, Mark vient de migrer sur Git. Depuis très très longtemps, Mark utilisait RCS (RCS est aussi une histoire incroyable, publié en 1982, sa version 5.9.4 est sortie en 2015).

Quelles questions avez‐vous envie de lui poser ?

  • # Super idée

    Posté par  . Évalué à 7.

    Merci pour ta communication avec Mark Nudelman.
    J'en profite pour proposer une question:
    - Comment ressent-il l’évolution des interactions avec les utilisateurs et contributeurs de less depuis ses débuts?

  • # Autre question

    Posté par  (site web personnel) . Évalué à -1.

    • est ce qu'il serait tenté par faire une version codée en Rust de less?
  • # Autre langage

    Posté par  (site web personnel) . Évalué à 5.

    A-t'il déjà été tenté de redévelopper less avec un langage plus moderne ? Et si oui, lequel ?

    Has he ever been tempted to redevelop less with a more modern language? And if so, which one?

    • [^] # Re: Autre langage

      Posté par  . Évalué à 4.

      Je cite le journal : « Mark semble prendre soin de garder une compatibilité avec les vieux compilateurs et les vieux systèmes de ces années. ». Du coup pour le langage plus moderne, faudra repasser, je ne pense pas que brainfuck ou go soient portés sur OS/2 !

      « Le pouvoir des Tripodes dépendait de la résignation des hommes à l'esclavage. » -- John Christopher

    • [^] # Re: Autre langage

      Posté par  . Évalué à 5.

      Tu veux dire un langage moderne tel que Cobol?

      -------------> [ ]

    • [^] # Re: Autre langage

      Posté par  (site web personnel) . Évalué à 1.

      A-t'il déjà été tenté de redévelopper less avec un langage plus moderne ?

      Par exemple, C11 ?

  • # ?

    Posté par  (Mastodon) . Évalué à 10.

    • Pourquoi a-t-il commencé à développer less ? Était-il insatisfait de more ?
    • Pourquoi avoir choisi une double licence ? Pourquoi la GPL-3 ?
    • Que pense-t-il de l'évolution du logiciel libre depuis 30 ans ?
    • Que pense-t-il de l'évolution des Unix depuis 30 ans ?
    • Compte-t-il continuer de maintenir less pendant encore 30 ans ?
    • [^] # Re: ?

      Posté par  (site web personnel) . Évalué à 5. Dernière modification le 26 juillet 2017 à 10:55.

      Pourquoi a-t-il commencé à développer less ? Était-il insatisfait de more ?

      Sans prétendre pouvoir répondre à la place de l'auteur, oui, c'est même sur la page wikipedia du projet : more ne permet(tait?) pas de remonter dans le flux.

    • [^] # Re: ?

      Posté par  (site web personnel) . Évalué à 10.

      • Comment ce fait-il qu'un logiciel comme less soit développé/maintenu par une seule personne ?
      • N'y a-t-il jamais eu quelqu'un d'autre pour l'épauler ?
      • Accepte-il les patchs facilement ?
      • Ne s'est-il jamais senti seul ?
      • Par rapport à la première version, qu'elles ont été les évolutions de less ?
      • Quel a été le bug le plus effrayant, le plus difficile à corriger ?

      « Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »

    • [^] # Re: ?

      Posté par  . Évalué à 2. Dernière modification le 26 juillet 2017 à 11:07.

      Pourquoi a-t-il commencé à développer less ? Était-il insatisfait de more ?

      La réponse se trouve sur son site : http://greenwoodsoftware.com/less/faq.html#history

    • [^] # Re: ?

      Posté par  . Évalué à 3.

      Pourquoi la GPL-3 ?

      Le README dit que less fait partie du projet GNU, et, sauf erreur de ma part, tous les projets liés à la FSF ont migré en GPL-3. Je pense que ça explique le choix de la GPL-3, mais ça serait toujours intéressant d'avoir son avis sur les licences libres, et la GPL en particulier.

  • # questions

    Posté par  (site web personnel) . Évalué à 10. Dernière modification le 26 juillet 2017 à 10:52.

    • quid de la "concurrence", more et most notamment
    • quels logiciels libres peu connus souhaiterait-il mettre en avant
    • déjà la version 487, et pourtant less paraît faussement simple, et pourtant la liste des demandes ne désemplit pas. Où est la complexité ? Quelles sont les évolutions envisagées (feuille de route) ? Quel est l'historique et quelle est la dette technique accumulée ? Referait-il techniquement des choses différemment maintenant ?
    • qui sont les autres contributeurs ? Y en a-t-il ? Pourquoi ? Comment ?
    • de quelle fonctionnalité de less est-il le plus fier ? Et le moins fier ?
    • y a-t-il des évolutions prévues liées aux écrans tactiles ? …
    • [^] # Re: questions

      Posté par  (site web personnel) . Évalué à 5. Dernière modification le 26 juillet 2017 à 11:29.

      Pour info, Mark en est déjà à la version 507, mais pas publiée.
      De nombreux tests sont nécessaires, et si d'autres rectifications sont nécessaires, cela incrémente d'autant le numéro de la version.

      On pourrait aussi lui demander d'où vient l'incrémentation des versions:

      • Archivage avec un numéro pour chaque tarball ?
      • Numéro de révision de l'outil RCS ?

      Et sa migration récente de RCS à Git:

      • Que pense-t'il de Git ?
      • Va t'il revenir en arrière pour RCS ?
      • Est-ce qu'il souhaite que son dépôt Git (source code de less) rejoigne une forge comme GitHub, GitLab… ?
      • Souhaite t'il préparer le terrain pour passer le relai ?

      Tests:

      • Comment arrive t'il à s'assurer qu'il n'y a pas de régressions avec les anciens compilateurs et anciens systèmes d'exploitation ?
      • Possède t'il toujours de vieux ordinateurs toujours en marche ?
      • A t'il des disquettes 8 pouces ? (juste par curiosité, rien à voir avec less)

      Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

    • [^] # Re: questions

      Posté par  . Évalué à 6.

      Où est la complexité ?

      Ce journal (et ses commentaires) répondent en partie à la question

  • # question

    Posté par  . Évalué à 10.

    a t'il pu voir un changement dans la manière de programmer au cours de ces 30 ans, est ce que c'etait mieux avant ?

    qu'elle a été sa première machine pour programmer ?

    lorsque linux est sorti a t'il était entousiasmé par cet unix ?

    qu'est ce que cela fait d'etre une légende ?

    et d'avoir rendu service a des millions de personne ?

    un port est prévu pour windows 10 ?

    comment gerer correctement un logiciel sur 30 ans ?

    a t'il deja perdu ses sources ?

    • [^] # Re: question

      Posté par  . Évalué à 8. Dernière modification le 26 juillet 2017 à 13:04.

      Que pense-t-il de l'arrivée de la concurrence sous la forme de systemd-lessd, écrit en C#, qui remplacera less dans toutes les distributions linux (sauf Slackware) à partir de 2019 ?

      « Le pouvoir des Tripodes dépendait de la résignation des hommes à l'esclavage. » -- John Christopher

      • [^] # Re: question

        Posté par  . Évalué à 5.

        Question sous-jacente:
        Les Trolls étaient-ils aussi gros qu'ils le sont aujourd'hui à l'époque où il a commencé?

        • [^] # Re: question

          Posté par  . Évalué à 4.

          Comment se fait-il que less ne contienne pas encore un éditeur de texte, un serveur mail, un jeu de démineur et un système d'init ?

          *splash!*

          • [^] # Re: question

            Posté par  . Évalué à 4.

            Parce que s'il faisait tout ça il s'appellerait Emacs! Ou Emin??

  • # Le nom du programme

    Posté par  (site web personnel) . Évalué à 7.

    A-t-il déjà eu des retours négatifs concernant le nom du programme? Avec l'apparition des moteurs de recherche, un nom aussi courant peut poser des problèmes pour trouver des informations précises.

    Avec le recul, est-ce qu'il ferait les choses différemment (implémentation, choix techniques, …)?

    A-t-il des conseils pour les jeunes programmeurs qui se lancent?

  • # Plateforme de construction

    Posté par  . Évalué à 10.

    Bonne idée.

    • Avec quel environnement code-t-il ? (éditeur, compilateur, autres outils…)
    • Comment s'assurer de la compatibilité avec d'autres architectures ?
    • Comment le travail avec les empaqueteurs se passe ?
    • Apprend-il toujours des nouveautés en codant ?
  • # Bug ouvert ?

    Posté par  . Évalué à 2.

    Qu'en est-il de la solution que tu proposes pour le chargement des variables LESS_TERMCAP_* ? Est-ce que Mark Nudelman considère son inclusion dans une prochaine version ? Je n'ai pas trouvé de ticket sur:
    http://greenwoodsoftware.com/less/bugs.html

    Merci en tout cas pour ton patch, j'ai toujours buté sur cette partie de configuration de less… et je n'aimais pas trop l'idée du wrapper pour définir ces variables.

    • [^] # Re: Bug ouvert ?

      Posté par  (site web personnel) . Évalué à 4.

      Salut Vroum,

      Attention la correction (patch) que j'ai proposé apporte son lot de régressions (j'ai honte du manque de tests de ma part). Mark est parti sur une autre façon de corriger ce problème et il m'a demandé de lui valider (là j'ai vérifié les changements et j'ai bien plus testé).

      La prochaine version contient plusieurs changements et du nettoyage. Au bout de 34 ans, le code source de less n'est toujours pas stable, il continue de s'améliorer se moderniser et de se complexifier ! Le diff entre la version stable actuelle et la prochaine est impressionnant pour un outil que l'on imagine ne plus bouger !

      Je ne sais pas quand Mark va mettre à jour les tickets sur son site web, ni quand est-ce que la nouvelle version sera publiée (cela peut être une idée de question). Mais ce qui est sûr c'est que la prochaine version de less permettra de lire les LESS_TERMCAP_* à partir du fichier de configuration ~/.less généré par lesskey.

      Pour les détails, lesskey génère un fichier de configuration binaire (par défaut c'est le fichier ~/.less mais cela peut être différent). less utilise par défaut le fichier ~/.less (mais peut aussi chercher un autre nom de fichier, prendre en compte la variable d'environnement LESS ou une option de la ligne de commande). Quand less charge ce fichier de configuration, le contenu est directement utilisé par un pointeur d'une liste de variable. A chaque fois que less a besoin d'une variable, il passe le nom de la variable à une fonction qui la cherche dans la liste. Cela permet à less de démarrer plus rapidement que s'il avait à décoder un fichier de configuration texte. De nos jours, ce gain est négligeable. Mais il y a une trentaine d'années…

      Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • # Trucs et Astuces :)

    Posté par  . Évalué à 0.

    Essaye de grappiller des trucs et astuces, stp.

    • [^] # Re: Trucs et Astuces :)

      Posté par  . Évalué à -6.

      Pour ce moinssage gratuit? je peux vous traiter de connards?

      Non mais je dis ça, je ne vois pas en quoi ma requête est déplacée.

      • [^] # Re: Trucs et Astuces :)

        Posté par  . Évalué à 3.

        Bah parce que « grapiller » quelque chose auprès de quelqu’un dont tu profites du travail tous les jours si, ça peut paraître un peu déplacé à certains.

        • [^] # Re: Trucs et Astuces :)

          Posté par  . Évalué à -5.

          Bah parce que « grapiller » quelque chose auprès de quelqu’un dont tu profites du travail tous les jours si,

          Attend, tu te lis un instant???

          … ça peut paraître un peu déplacé à certains.

          Tu te fouts de moi? Il se fout de moi?!

          Je te moinsse parce que tu dis vraiment n'importe quoi, c'en est indécent et non parce que tu m'aurais blessé dans mon être de beauf blanc d'une majorité qui opprime.

          • [^] # Re: Trucs et Astuces :)

            Posté par  . Évalué à 6.

            Grappiller:

            1. Littéraire. Cueillir (des fruits, des fleurs), les ramasser çà et là : Grappiller dans les champs.
            2. Faire un bénéfice, un profit, un gain illicites : Grappiller un peu d'argent en travaillant au noir.
            3. Prendre çà et là au hasard : Grappiller quelques idées dans ses lectures.

            Alors que la documentation de less ne laisse pas à désirer, me semble-t-il, et que je doute que tu aies déjà toi-même mis en pratique l’ensemble des « astuces » qui sont par exemple présentées ici : https://linuxfr.org/users/barmic/journaux/back-to-basics-avoir-un-excellent-pager-avec-less

            Avec ta formulation tu sous-entends que le mec (l’auteur de less), qui accepte de donner un peu de son temps, est en quelque sorte avare de conseils, et d’astuces comme tu dis. Il y a des questions beaucoup plus pertinentes, par exemple : « Avez-vous connaissance d’une utilisation particulièrement astucieuse de votre programme que vous n’aviez pas prévu ? »

            Tu te fouts de moi? Il se fout de moi?!

            Je t’explique juste pourquoi certains (dont je ne fais pas partie !) t’ont moinssé, puisque que tu dis que tu ne comprends pas.

            Je te moinsse parce que tu dis vraiment n'importe quoi, c'en est indécent et non parce que tu m'aurais blessé dans mon être de beauf blanc d'une majorité qui opprime.

            Je ne savais pas que que tu étais blanc.

            • [^] # Re: Trucs et Astuces :)

              Posté par  . Évalué à 2.

              Je ne savais pas que que tu étais blanc.

              Ca saute pourtant aux yeux quand tu regardes son avatar… il est blanc et noir avec un peu de jaune.

              Hop moi je sors

  • # Question vim

    Posté par  . Évalué à 2.

    Le logiciel a beaucoup de comportements proches de vim à l'utilisation, utilise-t-il une bibliothèque vim ou reproduit il simplement les comportements ?

    "Gentoo" is an ancient african word, meaning "Read the F*ckin' Manual". "Gentoo" also means "I am what I am because you all are freaky n3rdz"

    • [^] # Re: Question vim

      Posté par  (site web personnel) . Évalué à 10.

      Je suggère respectueusement que l’on évite de lui poser des questions dont la réponse se trouve en consultant le code source… less est un logiciel libre après tout.

      En l’occurence, aucune trace dans le code d’une quelconque « bibliothèque vim ». L’auteur ne cache pas que « les commandes sont basés sur vi et sur more », mais a implémenté lui-même les comportements en question.

    • [^] # Re: Question vim

      Posté par  . Évalué à 2.

      Comme?
      Pour moi, la principale caractéristique de vi, c'est le côté modal, je n'ai pas l'impression que less implémente un truc dans ce style?

  • # questions

    Posté par  (site web personnel) . Évalué à 5. Dernière modification le 27 juillet 2017 à 09:32.

    Quel logiciel auriez-vous aimé avoir écrit ?
    Which software do you wish you had written ?

    Quelle distribution utilisez-vous présentement et pourquoi ?
    Which distribution are you currently using and why ?

    Quel est le plus grand danger pour vous pour le logiciel libre aujourd'hui ?
    What is the main danger that faces free software today ?

  • # Modifications d'architecture

    Posté par  . Évalué à 9.

    • En 34 ans de maintenance, est-ce qu'il y a eu des changements nécessaires dans l'architecture du code ? Quelles étaient les raisons de ces changements et ont-ils été faciles à mettre en oeuvre ?
    • Est-ce que son implication dans le logiciel libre était connue dans son activité professionnelle et comment était-elle perçue ?
  • # et pendant ce temps-là

    Posté par  . Évalué à 5.

    34 ans c'est quasiment une vie professionnelle complète, un intervalle entre l'école et la retraite : s'il le souhaite, Mark Nudelman peut-il nous dire comment il a financé le temps de développement sur less, s'il a aimé ce qu'il a fait par ailleurs ?

    Mark Nudelman a-t-il eu des compagnons de développement à certains moments ? A-t-il été proche d'autres projets ?

  • # Sécurité

    Posté par  . Évalué à 2.

    Est-ce qu'il a déjà été approché par des services quelconques pour affaiblir la sécurité de son code ?

    • [^] # Re: Sécurité

      Posté par  . Évalué à 2.

      S'il est étasunien, il n'a pas le droit de le révéler. Ou du moins pas directement.

      • [^] # Re: Sécurité

        Posté par  . Évalué à 3.

        S'il répond "Non", alors c'est non (normalement).
        S'il répond "Je ne peux pas en parler", alors c'est oui.

        • [^] # Re: Sécurité

          Posté par  . Évalué à 6.

          Ou alors il peut dire un truc subtil du style I was approached by people who were interested about "less security"

          :P

          *splash!*

  • # Motivation

    Posté par  (site web personnel) . Évalué à 1.

    Comment fait-on pour rester motivé pendant plus de 30 ans à maintenir un logiciel ? Quel fut le moment de doute et découragement le plus important ? A l'inverse quel fut le moment le plus joyeux ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.